INSERT INTO `cp_filejs` (`id`,`app`,`path`,`modul`,`file_name`,`content`) VALUES ('344','3','u7/collector','auth','js/app.js----','//------------------------------------------ CORE ------------------------------------------//\r\nimport {\r\n getSessionUser,\r\n handleSignUp,\r\n updateAboutUserIds,\r\n updateContentIds,\r\n updateUsername,\r\n verifyUser\r\n} from \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'./api/auth.js\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\nimport store from \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'./store.js\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\nimport routes from \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'./routes.js\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n\r\nimport {\r\n displayProfile\r\n} from \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'./profile.js\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\nimport {\r\n getIDFromQrCode\r\n} from \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'./api/scanner.js\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\nimport {\r\n openModal,\r\n openQRModal\r\n} from \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'./qr.js\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\nimport {\r\n sendRNMessage\r\n} from \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'./api/consts.js\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n\r\n\r\nvar $ = Dom7\r\nvar userStore = store.getters.user\r\nvar notificationCountStore = store.getters.getNotifCount\r\nvar networkErrors = store.getters.checkPoorNetworkError\r\n\r\nvar toolbarEl = $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.footer\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')[0]\r\n\r\nvar app = new Framework7({\r\n initOnDeviceReady: true,\r\n view: {\r\n pushState: false,\r\n stackPages: true,\r\n xhrCache: true,\r\n preloadPreviousPage: true,\r\n // browserHistory: true,\r\n },\r\n notification: {\r\n title: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'OrganikFlok\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n closeTimeout: 10000,\r\n closeOnClick: true,\r\n icon: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n },\r\n toast: {\r\n closeTimeout: 3000,\r\n closeButton: true,\r\n },\r\n name: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'OrganikFlok\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n theme: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'ios\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n smartSelect: {\r\n closeOnSelect: true,\r\n },\r\n cache: true,\r\n el: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#app\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', // App root element\r\n on: {\r\n init: async function () {\r\n // toolbarEl.style.display = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'none\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n\r\n await store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'checkAuth\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n\r\n const isAuthenticated = store.getters.isAuthenticated.value\r\n\r\n if (!isAuthenticated) {\r\n this.views.main.router.navigate(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'/auth/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n } else {\r\n $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.init-loader\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').hide()\r\n $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.start-link\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').click();\r\n // toolbarEl.style.display = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'block\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n }\r\n\r\n const deeplink = getQueryParameter(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'deeplink\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n if (deeplink) {\r\n // check if deeplink has ?qr= query parameter\r\n // if it does, get the value of the qr parameter and redirect to the profile\r\n // ex; http://localhost:3000/?qr=123456\r\n const maybeQr = deeplink.split(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'?qr=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')[1]\r\n const deepqrCode = maybeQr ? maybeQr : null\r\n\r\n if (deepqrCode) {\r\n maybeRedirectToProfile(deepqrCode)\r\n return;\r\n }\r\n\r\n // check if url looks like https://mydrivelife.com/qr/8700279E\r\n // if it does, get the qr code and redirect to the profile\r\n const isDriveLifeUrl = deeplink.includes(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'mydrivelife.com/qr/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n if (isDriveLifeUrl) {\r\n const qrCode = deeplink.split(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').slice(-1)[0]\r\n maybeRedirectToProfile(qrCode)\r\n return;\r\n }\r\n\r\n // get the page from the deeplink and navigate to it\r\n // ex; http://localhost:3000/post-view/308\r\n // get the /post-view/308 and navigate to it\r\n let path = deeplink.split(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').slice(3).join(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n\r\n if (!path.startsWith(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')) {\r\n path = `/${path}`\r\n }\r\n\r\n this.views.main.router.navigate(path)\r\n // remove the query parameter from the URL\r\n window.history.pushState({}, document.title, window.location.pathname)\r\n }\r\n\r\n const qrCode = getQueryParameter(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'qr\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n if (qrCode) {\r\n maybeRedirectToProfile(qrCode)\r\n }\r\n },\r\n pageInit: function (page) {\r\n if (page.name === \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'profile\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\') {\r\n userStore.onUpdated((data) => {\r\n if (data && data.id && !data.external_refresh) {\r\n displayProfile(data, \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'profile\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'getMyGarage\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n }\r\n\r\n if (data && data.id && !data.refreshed) {\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'getMyPosts\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', {\r\n page: 1,\r\n clear: true\r\n })\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'getMyWastes\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', {\r\n page: 1,\r\n clear: true\r\n })\r\n }\r\n })\r\n }\r\n\r\n if (page.name === \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'discover\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\') {\r\n userStore.onUpdated((data) => {\r\n if (data && data.id && !data.refreshed) {\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'getTrendingEvents\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'getTrendingVenues\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'filterTrendingUsers\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'fetchEventCategories\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n }\r\n })\r\n }\r\n\r\n if (page.name === \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'signup-step2\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\') {\r\n const registerData = store.getters.getRegisterData.value\r\n\r\n const userNameEl = document.getElementsByName(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'username\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')[0]\r\n userNameEl.value = registerData.username\r\n }\r\n },\r\n },\r\n store: store,\r\n routes: routes,\r\n})\r\n\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'mousedown\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.toolbar-bottom a\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', function (e) {\r\n var targetHref = $(this).attr(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'href\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n var validTabs = [\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#view-social\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#view-discover\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#view-store\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#view-profile\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'];\r\n\r\n if ($(this).hasClass(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'tab-link-active\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\') && validTabs.includes(targetHref)) {\r\n var view = app.views.current;\r\n if (view.history.length > 1) {\r\n view.router.back(view.history[0], {\r\n force: true\r\n });\r\n }\r\n }\r\n});\r\n\r\nexport function showToast(message, type = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Message\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', position = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'bottom\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\') {\r\n app.toast.create({\r\n text: message,\r\n position: position,\r\n closeTimeout: 3000,\r\n }).open()\r\n}\r\n\r\nasync function maybeRedirectToProfile(qrCode) {\r\n var view = app.views.current\r\n\r\n try {\r\n $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.init-loader\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').show()\r\n const response = await getIDFromQrCode(qrCode)\r\n\r\n if (response && response.status === \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'error\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\') {\r\n throw new Error(response.message || \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Oops, Unable to find the profile linked to this QR code.\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n }\r\n\r\n const user = store.getters.user.value\r\n const id = response?.data?.linked_to;\r\n\r\n if (id) {\r\n if (user && user.id == id) {\r\n $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.view-profile-link\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').click()\r\n } else {\r\n view.router.navigate(`/profile-view/${id}`)\r\n }\r\n } else {\r\n openModal()\r\n setTimeout(() => {\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'setScannedData\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', {\r\n status: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'success\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n qr_code: qrCode,\r\n message: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'QR Code is not linked to any profile\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n available: true\r\n })\r\n }, 1000)\r\n }\r\n\r\n // remove the query parameter from the URL\r\n window.history.pushState({}, document.title, window.location.pathname)\r\n $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.init-loader\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').hide()\r\n } catch (error) {\r\n console.log(error);\r\n window.history.pushState({}, document.title, window.location.pathname)\r\n app.dialog.alert(error.message || \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Oops, Unable to find the profile linked to this QR code.\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.init-loader\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').hide()\r\n }\r\n}\r\n\r\n// Function to parse query parameters from the URL\r\nfunction getQueryParameter(name, url) {\r\n\r\n const urlParams = new URLSearchParams(url || window.location.search)\r\n return urlParams.get(name)\r\n}\r\n\r\nfunction isAndroid() {\r\n const toMatch = [\r\n /Android/i,\r\n // /webOS/i,\r\n // /iPhone/i,\r\n // /iPad/i,\r\n // /iPod/i,\r\n /BlackBerry/i,\r\n /Windows Phone/i,\r\n ];\r\n\r\n return toMatch.some((toMatchItem) => {\r\n return navigator.userAgent.match(toMatchItem);\r\n });\r\n}\r\n\r\nexport function onBackKeyDown() {\r\n // check if the device is an android device\r\n if (!isAndroid()) {\r\n return\r\n }\r\n\r\n var view = app.views.current\r\n\r\n var leftp = app.panel.left && app.panel.left.opened\r\n var rightp = app.panel.right && app.panel.right.opened\r\n\r\n window.ReactNativeWebView.postMessage(JSON.stringify({\r\n his: view.history,\r\n url: app.views.main.router.url,\r\n leftp,\r\n rightp\r\n }))\r\n\r\n if (leftp || rightp) {\r\n app.panel.close()\r\n return false\r\n } else if ($(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.modal-in\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').length > 0) {\r\n app.dialog.close()\r\n app.popup.close()\r\n return false\r\n } else if (view.history[0] == \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\') {\r\n window.ReactNativeWebView.postMessage(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'exit_app\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return true\r\n } else {\r\n if (view.history.length < 2) {\r\n $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.tab-link[href=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"#view-home\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').click()\r\n return\r\n }\r\n\r\n view.router.back()\r\n return false\r\n }\r\n}\r\n\r\nwindow.onAppBackKey = onBackKeyDown\r\n\r\nuserStore.onUpdated((data) => {\r\n if (data && data.id && !data.external_refresh && !data.refreshed) {\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'getPosts\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'getFollowingPosts\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'notificationCount\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'fetchNotifications\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n }\r\n})\r\n\r\nnotificationCountStore.onUpdated((data) => {\r\n document.querySelectorAll(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.notification-count\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').forEach((el) => {\r\n el.innerHTML = data\r\n el.style.display = data > 0 ? \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'flex\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' : \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'none\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n })\r\n})\r\n\r\nnetworkErrors.onUpdated((data) => {\r\n if (data) {\r\n app.dialog.alert(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Poor network connection. Please check your internet connection and try again.\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n }\r\n})\r\n\r\n// Action Sheet with Grid Layout\r\nvar actionSheet = app.actions.create({\r\n grid: true,\r\n buttons: [\r\n [{\r\n text: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n onClick: async function () {\r\n const user = await getSessionUser()\r\n if (user) {\r\n sendRNMessage({\r\n type: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"createPost\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\r\n user_id: user.id,\r\n page: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'create-post\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n })\r\n }\r\n }\r\n },\r\n {\r\n text: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n onClick: function () {\r\n openQRModal()\r\n }\r\n },\r\n {\r\n text: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n onClick: function () {\r\n app.views.main.router.navigate(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'/profile-garage-vehicle-add/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n }\r\n }\r\n ],\r\n ]\r\n});\r\n\r\n// Init slider\r\nnew Swiper(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.swiper-container\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', {\r\n pagination: {\r\n el: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.swiper-pagination\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n clickable: true,\r\n },\r\n})\r\n\r\n//Comments Popup\r\n// app.popup.create({\r\n// el: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.comments-popup\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n// swipeToClose: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'to-bottom\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n// })\r\n\r\n//Share Popup\r\napp.popup.create({\r\n el: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.share-popup\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n swipeToClose: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'to-bottom\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n})\r\n\r\n//Share Popup\r\napp.popup.create({\r\n el: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.edit-post-popup\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n swipeToClose: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'to-bottom\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n})\r\n\r\n\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'click\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#open-action-sheet\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', function () {\r\n actionSheet.open()\r\n})\r\n\r\n// Handle login form submission\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'submit\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.login-screen-content form\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', async function (e) {\r\n e.preventDefault()\r\n\r\n var username = $(this).find(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[name=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"username\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').val()\r\n var password = $(this).find(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[name=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"password\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').val()\r\n\r\n if (!username) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Username is required\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n if (!password) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Password is required\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n\r\n try {\r\n app.preloader.show()\r\n const response = await verifyUser({\r\n email: username,\r\n password\r\n })\r\n\r\n app.preloader.hide()\r\n\r\n if (!response || response.error) {\r\n app.dialog.alert(response.error || \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Login failed, please try again\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n if (response.success) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Login successful\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n await store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'login\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', {\r\n token: response.token\r\n })\r\n\r\n app.views.main.router.navigate(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.start-link\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').click();\r\n\r\n toolbarEl.style.display = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'block\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n return\r\n }\r\n } catch (error) {\r\n app.dialog.alert(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Login failed, please try again\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n }\r\n})\r\n\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'click\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.toggle-password\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', function () {\r\n var input = $(this).prev(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n if (input.attr(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'type\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\') === \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'password\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\') {\r\n input.attr(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'type\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'text\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n $(this).html(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n } else {\r\n input.attr(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'type\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'password\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n $(this).html(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n }\r\n})\r\n\r\n// Register forms\r\n// Step 1\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'submit\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'form#sign-up-step1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', async function (e) {\r\n e.preventDefault()\r\n\r\n var firstName = $(this).find(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[name=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"first_name\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').val().trim()\r\n var lastName = $(this).find(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[name=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"last_name\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').val().trim()\r\n var email = $(this).find(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[name=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"email\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').val().trim()\r\n var password = $(this).find(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[name=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"password\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').val().trim()\r\n var confirmPassword = $(this).find(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[name=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"confirm_password\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').val().trim()\r\n var agreeTerms = $(this).find(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[name=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"agree_terms\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').is(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\':checked\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n var agreePrivacy = $(this).find(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[name=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"agree_privacy\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').is(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\':checked\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n\r\n if (!firstName) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'First name is required\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n if (!lastName) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Last name is required\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n if (!email) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Email is required\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n var emailPattern = /^[^s@]+@[^s@]+.[^s@]+$/\r\n if (!emailPattern.test(email)) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Please enter a valid email address\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n if (!password) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Password is required\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n // Check if password has at least 8 characters\r\n if (password.length < 8) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Password must be at least 8 characters long.\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n // Check if password contains at least one lowercase letter\r\n if (!/[a-z]/.test(password)) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Password must contain at least one lowercase letter.\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n // Check if password contains at least one uppercase letter\r\n if (!/[A-Z]/.test(password)) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Password must contain at least one uppercase letter.\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n // Check if password contains at least one number\r\n if (!/d/.test(password)) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Password must contain at least one number.\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n if (password.length < 8) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Password must be at least 8 characters long\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n if (!confirmPassword) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Please confirm your password\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n if (password !== confirmPassword) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Passwords do not match\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n if (!agreeTerms) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'You must agree to the Terms & Conditions\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n if (!agreePrivacy) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'You must agree to the Privacy Policy\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n // add a loader to the login button\r\n var loginButton = $(this).find(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'button[type=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"submit\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')[0]\r\n loginButton.innerHTML = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n\r\n try {\r\n app.preloader.show()\r\n\r\n const response = await handleSignUp({\r\n full_name: `${firstName} ${lastName}`,\r\n email,\r\n password\r\n })\r\n\r\n app.preloader.hide()\r\n\r\n if (!response || !response.success) {\r\n app.dialog.alert(response.message || \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'An error occurred, please try again\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n loginButton.innerHTML = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Next\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n return\r\n }\r\n\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'setRegisterData\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', {\r\n email,\r\n password,\r\n user_id: response.user_id,\r\n username: response.username\r\n })\r\n app.views.main.router.navigate(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'/signup-step2/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n } catch (error) {\r\n console.log(error)\r\n app.dialog.alert(error.message || \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'An error occurred, please try again\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n loginButton.innerHTML = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Next\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n return\r\n }\r\n})\r\n\r\n// Step 2\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'submit\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'form#sign-up-step2\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', async function (e) {\r\n e.preventDefault()\r\n\r\n var username = $(this).find(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[name=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"username\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').val().trim()\r\n\r\n if (!username) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Username is required\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n // username can only have letters, numbers, and underscores\r\n var usernamePattern = /^[a-zA-Z0-9_]+$/\r\n if (!usernamePattern.test(username)) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Username can only contain letters, numbers, and underscores\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n // username must be at least 3 characters long\r\n if (username.length < 3) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Username must be at least 3 characters long\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n let registerData = store.getters.getRegisterData.value\r\n try {\r\n if (registerData.username !== username) {\r\n app.preloader.show()\r\n\r\n const response = await updateUsername(username, registerData.user_id)\r\n\r\n app.preloader.hide()\r\n\r\n if (!response || !response.success) {\r\n app.notification.create({\r\n titleRightText: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'now\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n subtitle: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Oops, something went wrong\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n text: error.message || \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Failed to update username\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n }).open()\r\n // app.dialog.alert(response.message || \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'An error occurred, please try again\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'setRegisterData\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', {\r\n ...registerData,\r\n username\r\n })\r\n }\r\n\r\n app.views.main.router.navigate(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'/signup-step3/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n } catch (error) {\r\n console.log(error);\r\n app.notification.create({\r\n titleRightText: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'now\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n subtitle: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Oops, something went wrong\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n text: error.message || \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Failed to update username\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n }).open()\r\n return\r\n }\r\n})\r\n\r\n// Step 3\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'submit\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#car-selection-form\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', async function (e) {\r\n e.preventDefault()\r\n\r\n // Get all checked checkboxes\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' values\r\n var selectedCarTypes = []\r\n $(this).find(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[name=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"car_type\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]:checked\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').each(function () {\r\n selectedCarTypes.push($(this).val())\r\n })\r\n\r\n // Check if at least one checkbox is selected\r\n if (selectedCarTypes.length === 0) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Please select at least one car type\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n // For demonstration, log the selected values to the console\r\n let registerData = store.getters.getRegisterData.value\r\n\r\n try {\r\n app.preloader.show()\r\n const response = await updateContentIds(selectedCarTypes, registerData.user_id)\r\n\r\n if (!response || !response.success) {\r\n app.dialog.alert(response.message || \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Oops, Unable to save your selection.\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n }\r\n\r\n app.preloader.hide()\r\n app.views.main.router.navigate(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'/signup-step4/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n } catch (error) {\r\n console.log(error)\r\n app.dialog.alert(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'An error occurred, please try again\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n // Redirect to the next step (this can be customized as needed)\r\n app.views.main.router.navigate(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'/signup-step4/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n})\r\n\r\n// Step 4\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'submit\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#interest-selection-form\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', async function (e) {\r\n e.preventDefault()\r\n\r\n // Get all checked checkboxes\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' values\r\n var selectedInterests = []\r\n $(this).find(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[name=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"interest\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]:checked\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').each(function () {\r\n selectedInterests.push($(this).val())\r\n })\r\n\r\n // Check if at least one checkbox is selected\r\n if (selectedInterests.length === 0) {\r\n showToast(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Please select at least one interest\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n let registerData = store.getters.getRegisterData.value\r\n\r\n try {\r\n app.preloader.show()\r\n const response = await updateAboutUserIds(selectedInterests, registerData.user_id)\r\n\r\n if (!response || !response.success) {\r\n app.dialog.alert(response.message || \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Oops, Unable to save your selection.\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n }\r\n\r\n app.preloader.hide()\r\n\r\n app.views.main.router.navigate(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'/signup-complete/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n } catch (error) {\r\n console.log(error)\r\n app.dialog.alert(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'An error occurred, please try again\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n})\r\n\r\n// Signup complete\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'click\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#signup-complete\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', async function (e) {\r\n const registerData = store.getters.getRegisterData.value\r\n\r\n if (!registerData || !registerData.user_id || !registerData.email || !registerData.password) {\r\n app.dialog.alert(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'An error occurred, please try again\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n return\r\n }\r\n\r\n try {\r\n app.preloader.show()\r\n\r\n const response = await verifyUser({\r\n email: registerData.email,\r\n password: registerData.password\r\n })\r\n\r\n app.preloader.hide()\r\n\r\n if (!response || response.error) {\r\n app.dialog.alert(response.error || \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Login failed, please try again\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n app.views.main.router.navigate(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'/auth/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n loginButton.innerHTML = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Next\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n return\r\n }\r\n\r\n if (response.success) {\r\n await store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'login\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', {\r\n token: response.token\r\n })\r\n app.views.main.router.navigate(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.start-link\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').click();\r\n\r\n toolbarEl.style.display = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'block\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n return\r\n }\r\n } catch (error) {\r\n app.dialog.alert(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Login failed, please try again\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n }\r\n})\r\n\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'page:afterin\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.page[data-name=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"auth\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', function (e) {\r\n toolbarEl.style.display = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'none\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n\r\n setTimeout(() => {\r\n $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.init-loader\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').hide()\r\n }, 300)\r\n});\r\n\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'page:afterin\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.page[data-name=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"signup-step1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', function (e) {\r\n app.popup.create({\r\n el: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.privacy-popup\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n swipeToClose: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'to-bottom\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n })\r\n});\r\n\r\n// logout-button\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'click\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.logout-button\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', async function (e) {\r\n app.dialog.close()\r\n app.popup.close()\r\n app.panel.close()\r\n\r\n await store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'logout\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n\r\n // reload page\r\n window.location.reload()\r\n // app.views.current.router.navigate(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'/auth/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n})\r\n\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'click\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.view-profile\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', function (e) {\r\n $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.view-profile-link\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').click()\r\n})\r\n\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'click\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#forgot-password\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', function (e) {\r\n // open the url in a new tab\r\n window.open($(this).attr(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'href\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'), \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'_blank\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n})\r\n\r\nexport default app');
Add Post
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n icon: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Scan QR Code
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n icon: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Add Vehicle
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n icon: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'