My SMM panel
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

102 line
2.8 KiB

  1. import RegisterForm from './register-area/register-form.vue'
  2. import '../scss/main.scss'
  3. import { createApp } from 'vue'
  4. let heroText = document.querySelectorAll(".landing-hero h2,.landing-hero p")
  5. let registerToggles = document.querySelectorAll(".register-btn, .register-area\
  6. .cancel-button, .services-cards button")
  7. let token = getCookie('XSRF-TOKEN')
  8. window.token = token
  9. const app = createApp(RegisterForm)
  10. // app.component('register-form', {
  11. // template: registerForm
  12. // })
  13. app.mount('#app')
  14. function getCookie(name) {
  15. var re = new RegExp(name + "=([^;]+)")
  16. var value = re.exec(document.cookie)
  17. return (value != null) ? unescape(value[1]) : null
  18. }
  19. function getToken() {
  20. fetch("/sanctum/csrf-cookie", {
  21. method: 'GET'
  22. }).then( () => {
  23. token = getCookie('XSRF-TOKEN')
  24. })
  25. }
  26. function checkPasswords() {
  27. let passInput = document.getElementById('register-password')
  28. let passInput2 = document.getElementById('confirm-password')
  29. if (passInput.value != passInput2.value) {
  30. passInput2.setCustomValidity('Passwords must be matching')
  31. } else {
  32. passInput2.setCustomValidity('');
  33. }
  34. }
  35. function login(event) {
  36. fetch("/login", {
  37. method: 'POST',
  38. headers: {'Content-Type': 'application/json',
  39. 'X-XSRF-TOKEN': token},
  40. body: JSON.stringify({"email":
  41. document.getElementById("login_email").value,
  42. "password": document.getElementById("login_password").value}),
  43. }).then(response => {
  44. console.log(response.json())
  45. console.log(response.ok)
  46. console.log(response.status)
  47. console.log(response.statusText)
  48. })
  49. event.preventDefault();
  50. }
  51. //Attempt to resend the verification link
  52. function resendLink(event) {
  53. console.log("clicked");
  54. event.preventDefault();
  55. }
  56. function toggleNav() {
  57. heroText.forEach(item => {
  58. item.classList.toggle("hidden")
  59. })
  60. document.querySelector("nav form.login").classList.toggle("active")
  61. this.classList.toggle("toggled")
  62. }
  63. if (!token) {getToken()}
  64. if (window.location.pathname == '/') {
  65. document.getElementById('nav_toggle').addEventListener('click', toggleNav)
  66. document.getElementById('login_form').addEventListener('submit', login)
  67. //Triggers for registration menu
  68. for (let i = 0; i < registerToggles.length; i++) {
  69. registerToggles[i].addEventListener("click", function() {
  70. document.querySelector(".register-area").classList.toggle("active")
  71. });
  72. }
  73. //FAQ collapsibles
  74. let cols = document.getElementsByClassName("collapsible");
  75. for (let i = 0; i < cols.length; i++) {
  76. cols[i].addEventListener("click", function() {
  77. this.classList.toggle("active");
  78. });
  79. }
  80. document.getElementById("register-password").oninput = checkPasswords
  81. document.getElementById("confirm-password").oninput = checkPasswords
  82. } else if (window.location.pathname == '/verify-email') {
  83. document.getElementById('resend_verification').addEventListener("click", resendLink)
  84. }