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.
 
 
 
 
 
 

103 lines
2.9 KiB

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