@solidxai/core-ui 0.1.5-beta.8 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/auth/AuthTabs.d.ts +14 -0
- package/dist/components/auth/AuthTabs.d.ts.map +1 -0
- package/dist/components/auth/AuthTabs.js +19 -0
- package/dist/components/auth/AuthTabs.js.map +1 -0
- package/dist/components/auth/AuthTabs.tsx +38 -0
- package/dist/components/auth/GoogleAuthChecking.d.ts.map +1 -1
- package/dist/components/auth/GoogleAuthChecking.js +10 -10
- package/dist/components/auth/GoogleAuthChecking.js.map +1 -1
- package/dist/components/auth/GoogleAuthChecking.tsx +8 -9
- package/dist/components/auth/SolidChangeForcePassword.d.ts.map +1 -1
- package/dist/components/auth/SolidChangeForcePassword.js +9 -10
- package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
- package/dist/components/auth/SolidChangeForcePassword.tsx +6 -9
- package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
- package/dist/components/auth/SolidForgotPassword.js +8 -8
- package/dist/components/auth/SolidForgotPassword.js.map +1 -1
- package/dist/components/auth/SolidForgotPassword.tsx +6 -8
- package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.js +57 -57
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.tsx +10 -11
- package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.js +57 -57
- package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.tsx +10 -11
- package/dist/components/auth/SolidLogin.d.ts.map +1 -1
- package/dist/components/auth/SolidLogin.js +12 -12
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +11 -16
- package/dist/components/auth/SolidRegister.d.ts.map +1 -1
- package/dist/components/auth/SolidRegister.js +19 -19
- package/dist/components/auth/SolidRegister.js.map +1 -1
- package/dist/components/auth/SolidRegister.tsx +18 -23
- package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
- package/dist/components/auth/SolidResetPassword.js +15 -15
- package/dist/components/auth/SolidResetPassword.js.map +1 -1
- package/dist/components/auth/SolidResetPassword.tsx +7 -8
- package/dist/components/common/GeneralSettings.d.ts.map +1 -1
- package/dist/components/common/GeneralSettings.js +87 -120
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +12 -42
- package/dist/components/common/GlobalToast.d.ts +2 -0
- package/dist/components/common/GlobalToast.d.ts.map +1 -0
- package/dist/components/common/GlobalToast.js +25 -0
- package/dist/components/common/GlobalToast.js.map +1 -0
- package/dist/components/common/GlobalToast.tsx +25 -0
- package/dist/components/common/SolidErrorStatePage.d.ts +12 -0
- package/dist/components/common/SolidErrorStatePage.d.ts.map +1 -0
- package/dist/components/common/SolidErrorStatePage.js +16 -0
- package/dist/components/common/SolidErrorStatePage.js.map +1 -0
- package/dist/components/common/SolidErrorStatePage.tsx +55 -0
- package/dist/components/common/SolidExport.d.ts.map +1 -1
- package/dist/components/common/SolidExport.js +19 -31
- package/dist/components/common/SolidExport.js.map +1 -1
- package/dist/components/common/SolidExport.tsx +7 -19
- package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
- package/dist/components/common/SolidFormStepper.js +41 -41
- package/dist/components/common/SolidFormStepper.js.map +1 -1
- package/dist/components/common/SolidFormStepper.tsx +5 -6
- package/dist/components/core/chatter/SolidChatterDateDivider.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatterDateDivider.js +4 -1
- package/dist/components/core/chatter/SolidChatterDateDivider.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterDateDivider.tsx +5 -1
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +9 -9
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +8 -9
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +8 -8
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +7 -9
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js +11 -11
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx +10 -11
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +9 -9
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +8 -9
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +7 -7
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +6 -7
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +78 -21
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +65 -10
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +6 -8
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +5 -9
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js +9 -11
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.tsx +5 -10
- package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js +5 -6
- package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.tsx +5 -8
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js +10 -12
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx +6 -11
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +11 -6
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +13 -1
- package/dist/components/core/form/SolidFormUserViewLayout.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormUserViewLayout.js +7 -8
- package/dist/components/core/form/SolidFormUserViewLayout.js.map +1 -1
- package/dist/components/core/form/SolidFormUserViewLayout.tsx +5 -7
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +12 -21
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +11 -33
- package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.js +22 -15
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.tsx +14 -2
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +37 -26
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +38 -5
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +11 -11
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +9 -11
- package/dist/components/core/kanban/KanbanUserViewLayout.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanUserViewLayout.js +7 -8
- package/dist/components/core/kanban/KanbanUserViewLayout.js.map +1 -1
- package/dist/components/core/kanban/KanbanUserViewLayout.tsx +4 -6
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +5 -7
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +4 -9
- package/dist/components/core/list/PLAN.md +92 -0
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.d.ts.map +1 -1
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +13 -13
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +5 -6
- package/dist/components/core/list/SolidDataTable.d.ts +58 -0
- package/dist/components/core/list/SolidDataTable.d.ts.map +1 -0
- package/dist/components/core/list/SolidDataTable.js +141 -0
- package/dist/components/core/list/SolidDataTable.js.map +1 -0
- package/dist/components/core/list/SolidDataTable.tsx +314 -0
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +20 -67
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +9 -76
- package/dist/components/core/model/CreateModel.d.ts.map +1 -1
- package/dist/components/core/model/CreateModel.js +15 -25
- package/dist/components/core/model/CreateModel.js.map +1 -1
- package/dist/components/core/model/CreateModel.tsx +12 -32
- package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +6 -17
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.tsx +5 -26
- package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
- package/dist/components/core/model/ModelMetaData.js +48 -55
- package/dist/components/core/model/ModelMetaData.js.map +1 -1
- package/dist/components/core/model/ModelMetaData.tsx +4 -22
- package/dist/components/core/module/CreateModule.d.ts.map +1 -1
- package/dist/components/core/module/CreateModule.js +42 -44
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/module/CreateModule.tsx +13 -27
- package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
- package/dist/components/core/module/ModuleListViewData.js +11 -7
- package/dist/components/core/module/ModuleListViewData.js.map +1 -1
- package/dist/components/core/module/ModuleListViewData.tsx +10 -8
- package/dist/components/core/solid-ai/SolidAiChat.d.ts +3 -0
- package/dist/components/core/solid-ai/SolidAiChat.d.ts.map +1 -0
- package/dist/components/core/solid-ai/SolidAiChat.js +1043 -0
- package/dist/components/core/solid-ai/SolidAiChat.js.map +1 -0
- package/dist/components/core/solid-ai/SolidAiChat.module.css +1339 -0
- package/dist/components/core/solid-ai/SolidAiChat.tsx +1237 -0
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +32 -69
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +8 -47
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +24 -37
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +8 -46
- package/dist/components/core/users/UserListView.d.ts.map +1 -1
- package/dist/components/core/users/UserListView.js +9 -16
- package/dist/components/core/users/UserListView.js.map +1 -1
- package/dist/components/core/users/UserListView.tsx +5 -21
- package/dist/components/layout/AdminLayout.d.ts.map +1 -1
- package/dist/components/layout/AdminLayout.js +4 -2
- package/dist/components/layout/AdminLayout.js.map +1 -1
- package/dist/components/layout/AdminLayout.tsx +4 -2
- package/dist/components/layout/AdminTopHeader.d.ts +2 -0
- package/dist/components/layout/AdminTopHeader.d.ts.map +1 -0
- package/dist/components/layout/AdminTopHeader.js +80 -0
- package/dist/components/layout/AdminTopHeader.js.map +1 -0
- package/dist/components/layout/AdminTopHeader.tsx +165 -0
- package/dist/components/layout/AppSidebar.d.ts.map +1 -1
- package/dist/components/layout/AppSidebar.js +1 -2
- package/dist/components/layout/AppSidebar.js.map +1 -1
- package/dist/components/layout/AppSidebar.tsx +0 -2
- package/dist/components/layout/Layout.d.ts.map +1 -1
- package/dist/components/layout/Layout.js +2 -1
- package/dist/components/layout/Layout.js.map +1 -1
- package/dist/components/layout/Layout.tsx +2 -0
- package/dist/components/layout/SolidAiStudioLayout.d.ts +10 -0
- package/dist/components/layout/SolidAiStudioLayout.d.ts.map +1 -0
- package/dist/components/layout/SolidAiStudioLayout.js +159 -0
- package/dist/components/layout/SolidAiStudioLayout.js.map +1 -0
- package/dist/components/layout/SolidAiStudioLayout.tsx +333 -0
- package/dist/components/layout/navbar-one.d.ts.map +1 -1
- package/dist/components/layout/navbar-one.js +1 -2
- package/dist/components/layout/navbar-one.js.map +1 -1
- package/dist/components/layout/navbar-one.tsx +0 -2
- package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
- package/dist/components/layout/navbar-two-menu.js +50 -24
- package/dist/components/layout/navbar-two-menu.js.map +1 -1
- package/dist/components/layout/navbar-two-menu.tsx +48 -30
- package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts +24 -0
- package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -0
- package/dist/components/shad-cn-ui/SolidAutocomplete.js +224 -0
- package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -0
- package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +339 -0
- package/dist/components/shad-cn-ui/SolidButton.d.ts +14 -0
- package/dist/components/shad-cn-ui/SolidButton.d.ts.map +1 -0
- package/dist/components/shad-cn-ui/SolidButton.js +36 -0
- package/dist/components/shad-cn-ui/SolidButton.js.map +1 -0
- package/dist/components/shad-cn-ui/SolidButton.tsx +54 -0
- package/dist/components/shad-cn-ui/SolidInput.d.ts +5 -0
- package/dist/components/shad-cn-ui/SolidInput.d.ts.map +1 -0
- package/dist/components/shad-cn-ui/SolidInput.js +35 -0
- package/dist/components/shad-cn-ui/SolidInput.js.map +1 -0
- package/dist/components/shad-cn-ui/SolidInput.tsx +12 -0
- package/dist/components/shad-cn-ui/SolidNumberInput.d.ts +10 -0
- package/dist/components/shad-cn-ui/SolidNumberInput.d.ts.map +1 -0
- package/dist/components/shad-cn-ui/SolidNumberInput.js +33 -0
- package/dist/components/shad-cn-ui/SolidNumberInput.js.map +1 -0
- package/dist/components/shad-cn-ui/SolidNumberInput.tsx +24 -0
- package/dist/components/shad-cn-ui/SolidSelect.d.ts +16 -0
- package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -0
- package/dist/components/shad-cn-ui/SolidSelect.js +26 -0
- package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -0
- package/dist/components/shad-cn-ui/SolidSelect.tsx +65 -0
- package/dist/components/shad-cn-ui/SolidTabs.d.ts +18 -0
- package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -0
- package/dist/components/shad-cn-ui/SolidTabs.js +22 -0
- package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -0
- package/dist/components/shad-cn-ui/SolidTabs.tsx +73 -0
- package/dist/components/shad-cn-ui/index.d.ts +7 -0
- package/dist/components/shad-cn-ui/index.d.ts.map +1 -0
- package/dist/components/shad-cn-ui/index.js +7 -0
- package/dist/components/shad-cn-ui/index.js.map +1 -0
- package/dist/components/shad-cn-ui/index.ts +6 -0
- package/dist/helpers/studioSandbox.d.ts +31 -0
- package/dist/helpers/studioSandbox.d.ts.map +1 -0
- package/dist/helpers/studioSandbox.js +104 -0
- package/dist/helpers/studioSandbox.js.map +1 -0
- package/dist/helpers/studioSandbox.ts +117 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/index.ts +4 -0
- package/dist/redux/features/solidStudioSlice.d.ts +9 -0
- package/dist/redux/features/solidStudioSlice.d.ts.map +1 -0
- package/dist/redux/features/solidStudioSlice.js +72 -0
- package/dist/redux/features/solidStudioSlice.js.map +1 -0
- package/dist/redux/features/solidStudioSlice.ts +78 -0
- package/dist/redux/features/toastSlice.d.ts +15 -0
- package/dist/redux/features/toastSlice.d.ts.map +1 -0
- package/dist/redux/features/toastSlice.js +20 -0
- package/dist/redux/features/toastSlice.js.map +1 -0
- package/dist/redux/features/toastSlice.ts +35 -0
- package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
- package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
- package/dist/redux/store/defaultStoreConfig.js +2 -1
- package/dist/redux/store/defaultStoreConfig.js.map +1 -1
- package/dist/redux/store/defaultStoreConfig.ts +2 -0
- package/dist/resources/images/errors/error-astronaut-404.png +0 -0
- package/dist/resources/shadcn-base.css +4171 -0
- package/dist/routes/SolidLayoutRegistry.d.ts +51 -0
- package/dist/routes/SolidLayoutRegistry.d.ts.map +1 -0
- package/dist/routes/SolidLayoutRegistry.js +108 -0
- package/dist/routes/SolidLayoutRegistry.js.map +1 -0
- package/dist/routes/SolidLayoutRegistry.tsx +157 -0
- package/dist/routes/guards/AdminGuard.d.ts +2 -0
- package/dist/routes/guards/AdminGuard.d.ts.map +1 -0
- package/dist/routes/guards/AdminGuard.js +16 -0
- package/dist/routes/guards/AdminGuard.js.map +1 -0
- package/dist/routes/guards/AdminGuard.tsx +17 -0
- package/dist/routes/pages/studio/StudioHomePage.d.ts +2 -0
- package/dist/routes/pages/studio/StudioHomePage.d.ts.map +1 -0
- package/dist/routes/pages/studio/StudioHomePage.js +22 -0
- package/dist/routes/pages/studio/StudioHomePage.js.map +1 -0
- package/dist/routes/pages/studio/StudioHomePage.tsx +106 -0
- package/dist/routes/pages/studio/StudioLandingPage.d.ts +2 -0
- package/dist/routes/pages/studio/StudioLandingPage.d.ts.map +1 -0
- package/dist/routes/pages/studio/StudioLandingPage.js +78 -0
- package/dist/routes/pages/studio/StudioLandingPage.js.map +1 -0
- package/dist/routes/pages/studio/StudioLandingPage.tsx +320 -0
- package/package.json +1 -1
|
@@ -4,15 +4,14 @@ import { useRouter } from "../../hooks/useRouter";
|
|
|
4
4
|
import { Button } from "primereact/button";
|
|
5
5
|
import { InputText } from "primereact/inputtext";
|
|
6
6
|
import { Message } from "primereact/message";
|
|
7
|
-
import {
|
|
8
|
-
import { useEffect, useRef } from "react";
|
|
7
|
+
import { useEffect } from "react";
|
|
9
8
|
import * as Yup from "yup";
|
|
10
|
-
import { useSelector } from "react-redux";
|
|
9
|
+
import { useDispatch, useSelector } from "react-redux";
|
|
11
10
|
import Image from "../common/Image";
|
|
12
11
|
import SolidLogo from '../../resources/images/SolidXLogo.svg'
|
|
13
12
|
import { ERROR_MESSAGES } from "../../constants/error-messages";
|
|
14
13
|
import { useLazyGetAuthSettingsQuery } from "../../redux/api/solidSettingsApi";
|
|
15
|
-
import showToast from "../../
|
|
14
|
+
import { showToast } from "../../redux/features/toastSlice";
|
|
16
15
|
|
|
17
16
|
const SolidForgotPassword = ({ signInValidatorLabel, signInValidatorPlaceholder }: any) => {
|
|
18
17
|
const [trigger, { data: solidSettingsData }] = useLazyGetAuthSettingsQuery()
|
|
@@ -21,7 +20,7 @@ const SolidForgotPassword = ({ signInValidatorLabel, signInValidatorPlaceholder
|
|
|
21
20
|
trigger("") // Fetch settings on mount
|
|
22
21
|
}, [trigger])
|
|
23
22
|
|
|
24
|
-
const
|
|
23
|
+
const dispatch = useDispatch();
|
|
25
24
|
const router = useRouter();
|
|
26
25
|
const [initiateChangePassword] = useInitiateChangePasswordMutation();
|
|
27
26
|
const validationSchema = Yup.object({
|
|
@@ -52,10 +51,10 @@ const SolidForgotPassword = ({ signInValidatorLabel, signInValidatorPlaceholder
|
|
|
52
51
|
const maskedEmail = maskEmail(email);
|
|
53
52
|
router.push(`/auth/initiate-forgot-password-thank-you?email=${maskedEmail}`)
|
|
54
53
|
} else (
|
|
55
|
-
showToast(
|
|
54
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.ERROR, detail: response.error }))
|
|
56
55
|
)
|
|
57
56
|
} catch (err: any) {
|
|
58
|
-
showToast(
|
|
57
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.ERROR, detail: err?.data ? err?.data?.message : ERROR_MESSAGES.SOMETHING_WRONG }));
|
|
59
58
|
}
|
|
60
59
|
},
|
|
61
60
|
});
|
|
@@ -65,7 +64,6 @@ const SolidForgotPassword = ({ signInValidatorLabel, signInValidatorPlaceholder
|
|
|
65
64
|
|
|
66
65
|
return (
|
|
67
66
|
<>
|
|
68
|
-
<Toast ref={toast} />
|
|
69
67
|
<div className={`auth-container ${solidSettingsData?.data?.authPagesLayout === 'center' ? 'center' : 'side'}`}>
|
|
70
68
|
{solidSettingsData?.data?.authPagesLayout === 'center' &&
|
|
71
69
|
<div className="flex justify-content-center">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidInitialLoginOtp.d.ts","sourceRoot":"","sources":["../../../src/components/auth/SolidInitialLoginOtp.tsx"],"names":[],"mappings":"AAmBA,QAAA,MAAM,oBAAoB,+
|
|
1
|
+
{"version":3,"file":"SolidInitialLoginOtp.d.ts","sourceRoot":"","sources":["../../../src/components/auth/SolidInitialLoginOtp.tsx"],"names":[],"mappings":"AAmBA,QAAA,MAAM,oBAAoB,+CA2MzB,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -43,15 +43,15 @@ import { useSearchParams } from "../../hooks/useSearchParams";
|
|
|
43
43
|
import { Button } from "primereact/button";
|
|
44
44
|
import { InputOtp } from "primereact/inputotp";
|
|
45
45
|
import { Message } from "primereact/message";
|
|
46
|
-
import {
|
|
47
|
-
import {
|
|
46
|
+
import { useEffect, useState } from "react";
|
|
47
|
+
import { useDispatch } from 'react-redux';
|
|
48
48
|
import * as Yup from "yup";
|
|
49
49
|
import SolidLogo from '../../resources/images/SolidXLogo.svg';
|
|
50
50
|
import { signInWithOtp } from "../../adapters/auth/index";
|
|
51
51
|
import { ERROR_MESSAGES } from "../../constants/error-messages";
|
|
52
52
|
import { useLazyGetAuthSettingsQuery } from "../../redux/api/solidSettingsApi";
|
|
53
53
|
import { env } from "../../adapters/env";
|
|
54
|
-
import showToast from "../../
|
|
54
|
+
import { showToast } from "../../redux/features/toastSlice";
|
|
55
55
|
var SolidInitialLoginOtp = function () {
|
|
56
56
|
var _a, _b, _c, _d, _e;
|
|
57
57
|
var searchParams = useSearchParams();
|
|
@@ -66,7 +66,7 @@ var SolidInitialLoginOtp = function () {
|
|
|
66
66
|
trigger(""); // Fetch settings on mount
|
|
67
67
|
}, [trigger]);
|
|
68
68
|
var initiateResendOTP = useInitateLoginMutation()[0];
|
|
69
|
-
var
|
|
69
|
+
var dispatch = useDispatch();
|
|
70
70
|
var router = useRouter();
|
|
71
71
|
var _g = useState(RESEND_OTP_TIMER), timeLeft = _g[0], setTimeLeft = _g[1];
|
|
72
72
|
var _h = useState(false), resendEnabled = _h[0], setResendEnabled = _h[1];
|
|
@@ -142,74 +142,74 @@ var SolidInitialLoginOtp = function () {
|
|
|
142
142
|
case 1:
|
|
143
143
|
response = _c.sent();
|
|
144
144
|
if ((response === null || response === void 0 ? void 0 : response.statusCode) === 200) {
|
|
145
|
-
showToast(
|
|
145
|
+
dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.OPT_RESEND, detail: (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.message }));
|
|
146
146
|
localStorage.setItem(RESEND_OTP_KEY, Date.now().toString());
|
|
147
147
|
setTimeLeft(RESEND_OTP_TIMER);
|
|
148
148
|
setResendEnabled(false);
|
|
149
149
|
}
|
|
150
150
|
else {
|
|
151
|
-
showToast(
|
|
151
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.LOGIN_ERROR, detail: response.error }));
|
|
152
152
|
}
|
|
153
153
|
return [3 /*break*/, 3];
|
|
154
154
|
case 2:
|
|
155
155
|
err_1 = _c.sent();
|
|
156
|
-
showToast(
|
|
156
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.LOGIN_ERROR, detail: ((_b = err_1 === null || err_1 === void 0 ? void 0 : err_1.data) === null || _b === void 0 ? void 0 : _b.message) || ERROR_MESSAGES.SOMETHING_WRONG }));
|
|
157
157
|
return [3 /*break*/, 3];
|
|
158
158
|
case 3: return [2 /*return*/];
|
|
159
159
|
}
|
|
160
160
|
});
|
|
161
161
|
}); };
|
|
162
|
-
return (
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
});
|
|
162
|
+
return (_jsx(_Fragment, { children: _jsxs("div", { className: "auth-container ".concat(((_a = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _a === void 0 ? void 0 : _a.authPagesLayout) === 'center' ? 'center' : 'side'), style: { minWidth: 480 }, children: [((_b = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _b === void 0 ? void 0 : _b.authPagesLayout) === 'center' &&
|
|
163
|
+
_jsx("div", { className: "flex justify-content-center", children: _jsx("div", { className: "solid-logo flex align-items-center ".concat((_c = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _c === void 0 ? void 0 : _c.appLogoPosition), children: _jsx(Image, { alt: "solid logo", src: ((_d = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _d === void 0 ? void 0 : _d.appLogo) || SolidLogo, className: "relative", fill: true }) }) }), _jsx("h2", { className: "solid-auth-title ".concat(((_e = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _e === void 0 ? void 0 : _e.authPagesLayout) === 'center' ? 'text-center mt-2 md:mt-4' : 'text-left'), children: "OTP Verification" }), _jsx("p", { className: "solid-auth-subtitle text-sm", children: "Please enter the OTP sent to your email to complete verification" }), _jsx(_Fragment, { children: _jsx(Formik, { initialValues: {
|
|
164
|
+
otp: "",
|
|
165
|
+
}, validationSchema: validationSchema, onSubmit: function (values, _a) {
|
|
166
|
+
var setSubmitting = _a.setSubmitting, setErrors = _a.setErrors;
|
|
167
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
168
|
+
var response, redirectUrl, err_2;
|
|
169
|
+
var _b;
|
|
170
|
+
return __generator(this, function (_c) {
|
|
171
|
+
switch (_c.label) {
|
|
172
|
+
case 0:
|
|
173
|
+
_c.trys.push([0, 2, 3, 4]);
|
|
174
|
+
return [4 /*yield*/, signInWithOtp({
|
|
175
|
+
type: type,
|
|
176
|
+
identifier: identifier,
|
|
177
|
+
otp: values.otp,
|
|
178
|
+
})];
|
|
179
|
+
case 1:
|
|
180
|
+
response = _c.sent();
|
|
181
|
+
if (response === null || response === void 0 ? void 0 : response.error) {
|
|
182
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.INAVLID_OTP, detail: response.error }));
|
|
183
|
+
setErrors({
|
|
184
|
+
otp: ERROR_MESSAGES.INAVLID_OTP,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
localStorage.removeItem("resendOtpLogin_".concat(identifier));
|
|
189
|
+
dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.LOGIN_SUCCESS, detail: ERROR_MESSAGES.DASHBOARD_REDIRECTING }));
|
|
190
|
+
redirectUrl = env("NEXT_PUBLIC_LOGIN_REDIRECT_URL") || "/admin";
|
|
191
|
+
router.push(redirectUrl);
|
|
192
|
+
}
|
|
193
|
+
return [3 /*break*/, 4];
|
|
194
|
+
case 2:
|
|
195
|
+
err_2 = _c.sent();
|
|
196
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.LOGIN_ERROR, detail: (err_2 === null || err_2 === void 0 ? void 0 : err_2.data) ? (_b = err_2 === null || err_2 === void 0 ? void 0 : err_2.data) === null || _b === void 0 ? void 0 : _b.message : ERROR_MESSAGES.SOMETHING_WRONG }));
|
|
197
|
+
return [3 /*break*/, 4];
|
|
198
|
+
case 3:
|
|
199
|
+
setSubmitting(false);
|
|
200
|
+
return [7 /*endfinally*/];
|
|
201
|
+
case 4: return [2 /*return*/];
|
|
202
|
+
}
|
|
204
203
|
});
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
204
|
+
});
|
|
205
|
+
}, children: function (formik) {
|
|
206
|
+
var _a;
|
|
207
|
+
return (_jsxs(Form, { children: [_jsxs("div", { className: "flex flex-column gap-2", children: [_jsx("label", { htmlFor: "otp", className: "solid-auth-input-label", children: "Enter OTP" }), _jsx(InputOtp, { value: formik.values.otp, onChange: function (e) { return formik.setFieldValue("otp", e.value); }, length: 6, style: { width: '100%' }, invalid: !!formik.errors.otp }), isFormFieldValid(formik, "otp") && (_jsx(Message, { className: "text-red-500 text-sm", severity: "error", text: (_a = formik.errors.otp) === null || _a === void 0 ? void 0 : _a.toString() })), _jsxs("div", { className: "flex align-items-center justify-content-between", children: [_jsx(Button, { type: "button", icon: 'pi pi-refresh', iconPos: "left", link: true, label: "Resend Code", className: "px-0 text-sm font-normal", onClick: handleResendOtp, disabled: !resendEnabled }), _jsx("p", { className: "m-0 text-sm text-color", children: resendEnabled
|
|
208
|
+
? "You can resend now"
|
|
209
|
+
: "Time left: ".concat(Math.floor(timeLeft / 60)
|
|
210
|
+
.toString()
|
|
211
|
+
.padStart(2, "0"), ":").concat((timeLeft % 60).toString().padStart(2, "0")) })] })] }), _jsxs("div", { className: "mt-4", children: [_jsx(Button, { type: "submit", className: "w-full font-light auth-submit-button", label: "Verify", disabled: formik.isSubmitting, loading: formik.isSubmitting }), _jsx(Button, { type: "button", label: "Back", className: "w-full auth-back-button text-center mt-1", link: true, onClick: function () { return (window.location.href = '/auth/login'); } })] })] }));
|
|
212
|
+
} }) })] }) }));
|
|
213
213
|
};
|
|
214
214
|
export default SolidInitialLoginOtp;
|
|
215
215
|
//# sourceMappingURL=SolidInitialLoginOtp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidInitialLoginOtp.js","sourceRoot":"","sources":["../../../src/components/auth/SolidInitialLoginOtp.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,SAAS,MAAM,uCAAuC,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAGhD,IAAM,oBAAoB,GAAG;;IACzB,IAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,IAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACtD,IAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC;IACjD,IAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5E,IAAM,cAAc,GAAG,yBAAkB,UAAU,CAAE,CAAC;IACtD,IAAM,oBAAoB,GAAG,UAAU,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,KAAK,CAAC,CAAC;IACtF,IAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;IACzD,IAAA,KAAyC,2BAA2B,EAAE,EAArE,OAAO,QAAA,EAAU,iBAAiB,aAAmC,CAAC;IAC7E,SAAS,CAAC;QACN,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC,0BAA0B;IAC1C,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEN,IAAA,iBAAiB,GAAI,uBAAuB,EAAE,GAA7B,CAA8B;IACtD,IAAM,KAAK,GAAG,MAAM,CAAQ,IAAI,CAAC,CAAC;IAClC,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IACrB,IAAA,KAA0B,QAAQ,CAAC,gBAAgB,CAAC,EAAnD,QAAQ,QAAA,EAAE,WAAW,QAA8B,CAAC;IACrD,IAAA,KAAoC,QAAQ,CAAC,KAAK,CAAC,EAAlD,aAAa,QAAA,EAAE,gBAAgB,QAAmB,CAAC;IAE1D,IAAM,cAAc,GAAG;QACnB,QAAQ,IAAI,EAAE;YACV,KAAK,QAAQ;gBACT,OAAO;oBACH,KAAK,EAAE,kBAAkB;oBACzB,QAAQ,EAAE,0EAA0E;iBACvF,CAAC;YACN,KAAK,OAAO,CAAC;YACb;gBACI,OAAO;oBACH,KAAK,EAAE,kBAAkB;oBACzB,QAAQ,EAAE,kEAAkE;iBAC/E,CAAC;SACT;IACL,CAAC,CAAC;IAEF,IAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,SAAS,CAAC;QAEN,mDAAmD;QACnD,IAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,EAAE;YACb,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC/D;QAED,IAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACpE,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3D,IAAM,SAAS,GAAG,gBAAgB,GAAG,OAAO,CAAC;QAE7C,IAAI,SAAS,GAAG,CAAC,EAAE;YACf,WAAW,CAAC,SAAS,CAAC,CAAC;YACvB,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC3B;aAAM;YACH,WAAW,CAAC,CAAC,CAAC,CAAC;YACf,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC1B;IACL,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,SAAS,CAAC;QACN,IAAI,aAAa,IAAI,QAAQ,IAAI,CAAC;YAAE,OAAO;QAE3C,IAAM,QAAQ,GAAG,WAAW,CAAC;YACzB,WAAW,CAAC,UAAC,IAAI;gBACb,IAAI,IAAI,IAAI,CAAC,EAAE;oBACX,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACxB,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBACvB,OAAO,CAAC,CAAC;iBACZ;gBACD,OAAO,IAAI,GAAG,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,OAAO,cAAM,OAAA,aAAa,CAAC,QAAQ,CAAC,EAAvB,CAAuB,CAAC;IACzC,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE9B,IAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC;QAChC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE;aACZ,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACnD,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KACtD,CAAC,CAAC;IAEH,IAAM,gBAAgB,GAAG,UAAC,MAAW,EAAE,SAAiB;QACpD,OAAA,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;IAArD,CAAqD,CAAC;IAG1D,IAAM,eAAe,GAAG;;;;;;;oBAEV,OAAO,GAAG;wBACZ,IAAI,EAAE,IAAI;wBACV,UAAU,EAAE,UAAU;qBACzB,CAAC;oBAEe,qBAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAApD,QAAQ,GAAG,SAAyC;oBAE1D,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,MAAK,GAAG,EAAE;wBAC9B,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,UAAU,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,OAAO,CAAC,CAAC;wBAChF,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;wBAC5D,WAAW,CAAC,gBAAgB,CAAC,CAAC;wBAC9B,gBAAgB,CAAC,KAAK,CAAC,CAAC;qBAC3B;yBAAM;wBACH,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;qBACzE;;;;oBAED,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,WAAW,EAAE,CAAA,MAAA,KAAG,aAAH,KAAG,uBAAH,KAAG,CAAE,IAAI,0CAAE,OAAO,KAAI,cAAc,CAAC,eAAe,CAAC,CAAC;;;;;SAEnH,CAAC;IAEF,OAAO,CACH,8BACI,KAAC,KAAK,IAAC,GAAG,EAAE,KAAK,GAAI,EACrB,eAAK,SAAS,EAAE,yBAAkB,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,MAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,aAClI,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,MAAK,QAAQ;wBAClD,cAAK,SAAS,EAAC,6BAA6B,YACxC,cAAK,SAAS,EAAE,6CAAsC,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,CAAE,YAC5F,KAAC,KAAK,IACF,GAAG,EAAC,YAAY,EAChB,GAAG,EAAE,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,OAAO,KAAI,SAAS,EAClD,SAAS,EAAC,UAAU,EACpB,IAAI,SACN,GACA,GACJ,EAEV,aAAI,SAAS,EAAE,2BAAoB,CAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,0CAAE,eAAe,MAAK,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,WAAW,CAAE,iCAAuB,EAC5J,YAAG,SAAS,EAAC,6BAA6B,iFAEtC,EACJ,4BACI,KAAC,MAAM,IACH,aAAa,EAAE;gCACX,GAAG,EAAE,EAAE;6BACV,EACD,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,UAAO,MAAM,EAAE,EAA4B;oCAA1B,aAAa,mBAAA,EAAE,SAAS,eAAA;;;;;;;;gDAE1B,qBAAM,aAAa,CAAC;wDACjC,IAAI,EAAE,IAAI;wDACV,UAAU,EAAE,UAAU;wDACtB,GAAG,EAAE,MAAM,CAAC,GAAG;qDAClB,CAAC,EAAA;;gDAJI,QAAQ,GAAG,SAIf;gDAEF,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,EAAE;oDACjB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;oDACtE,SAAS,CAAC;wDACN,GAAG,EAAE,cAAc,CAAC,WAAW;qDAClC,CAAC,CAAC;iDACN;qDAAM;oDACH,YAAY,CAAC,UAAU,CAAC,yBAAkB,UAAU,CAAE,CAAC,CAAC;oDACxD,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,aAAa,EAAE,cAAc,CAAC,qBAAqB,CAAC,CAAC;oDAC1F,WAAW,GAAG,GAAG,CAAC,gCAAgC,CAAC,IAAI,QAAQ,CAAC;oDACtE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iDAC5B;;;;gDAED,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,WAAW,EAAE,CAAA,KAAG,aAAH,KAAG,uBAAH,KAAG,CAAE,IAAI,EAAC,CAAC,CAAC,MAAA,KAAG,aAAH,KAAG,uBAAH,KAAG,CAAE,IAAI,0CAAE,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;;;gDAEvH,aAAa,CAAC,KAAK,CAAC,CAAC;;;;;;6BAE5B,YAEA,UAAC,MAAM;;gCAAK,OAAA,CACT,MAAC,IAAI,eACD,eAAK,SAAS,EAAC,wBAAwB,aACnC,gBAAO,OAAO,EAAC,KAAK,EAAC,SAAS,EAAC,wBAAwB,0BAAkB,EACzE,KAAC,QAAQ,IACL,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EACxB,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,EAApC,CAAoC,EACrD,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EACxB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAC9B,EACD,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAChC,KAAC,OAAO,IAAC,SAAS,EAAC,sBAAsB,EAAC,QAAQ,EAAC,OAAO,EAAC,IAAI,EAAE,MAAA,MAAM,CAAC,MAAM,CAAC,GAAG,0CAAE,QAAQ,EAAE,GAAI,CACrG,EACD,eAAK,SAAS,EAAC,iDAAiD,aAC5D,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,eAAe,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,QAAC,KAAK,EAAC,aAAa,EAAC,SAAS,EAAC,0BAA0B,EACnH,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,CAAC,aAAa,GAC1B,EACF,YAAG,SAAS,EAAC,wBAAwB,YAChC,aAAa;gEACV,CAAC,CAAC,oBAAoB;gEACtB,CAAC,CAAC,qBAAc,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;qEACpC,QAAQ,EAAE;qEACV,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,cAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAE,GAC1E,IACF,IACJ,EACN,eAAK,SAAS,EAAC,MAAM,aACjB,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,sCAAsC,EAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,YAAY,GAAI,EACrJ,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM,EAAC,SAAS,EAAC,0CAA0C,EAAC,IAAI,QAAC,OAAO,EAAE,cAAM,OAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC,EAAtC,CAAsC,GAAI,IACpJ,IACH,CACV,CAAA;6BAAA,GACI,GACV,IACD,IAMP,CACN,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC","sourcesContent":["import { useInitateLoginMutation } from \"../../redux/api/authApi\";\nimport { Form, Formik } from \"formik\";\nimport Image from \"../common/Image\";\nimport { useRouter } from \"../../hooks/useRouter\";\nimport { useSearchParams } from \"../../hooks/useSearchParams\";\nimport { Button } from \"primereact/button\";\nimport { InputOtp } from \"primereact/inputotp\";\nimport { Message } from \"primereact/message\";\nimport { Toast } from \"primereact/toast\";\nimport { useEffect, useRef, useState } from \"react\";\nimport * as Yup from \"yup\";\nimport SolidLogo from '../../resources/images/SolidXLogo.svg'\nimport { signInWithOtp } from \"../../adapters/auth/index\";\nimport { ERROR_MESSAGES } from \"../../constants/error-messages\";\nimport { useLazyGetAuthSettingsQuery } from \"../../redux/api/solidSettingsApi\";\nimport { env } from \"../../adapters/env\";\nimport showToast from \"../../helpers/showToast\";\n\n\nconst SolidInitialLoginOtp = () => {\n const searchParams = useSearchParams();\n const tempIdentifier = searchParams.get('identifier');\n const type = searchParams.get('type') || 'email';\n const identifier = tempIdentifier ? decodeURIComponent(tempIdentifier) : '';\n\n const RESEND_OTP_KEY = `resendOtpLogin_${identifier}`;\n const RESEND_OTP_TIMER_MIN = parseFloat(env(\"NEXT_PUBLIC_RESEND_OTP_TIMER\") || '0.5');\n const RESEND_OTP_TIMER = Math.round(RESEND_OTP_TIMER_MIN * 60);\n const [trigger, { data: solidSettingsData }] = useLazyGetAuthSettingsQuery();\n useEffect(() => {\n trigger(\"\") // Fetch settings on mount\n }, [trigger])\n\n const [initiateResendOTP] = useInitateLoginMutation();\n const toast = useRef<Toast>(null);\n const router = useRouter();\n const [timeLeft, setTimeLeft] = useState(RESEND_OTP_TIMER);\n const [resendEnabled, setResendEnabled] = useState(false);\n\n const getDisplayText = () => {\n switch (type) {\n case \"mobile\":\n return {\n title: \"OTP Verification\",\n subtitle: \"Please enter the OTP sent to your mobile number to complete verification\"\n };\n case \"email\":\n default:\n return {\n title: \"OTP Verification\",\n subtitle: \"Please enter the OTP sent to your email to complete verification\"\n };\n }\n };\n\n const displayText = getDisplayText();\n\n useEffect(() => {\n\n // Set timer if not already set (e.g., after login)\n const storedTime = localStorage.getItem(RESEND_OTP_KEY);\n if (!storedTime) {\n localStorage.setItem(RESEND_OTP_KEY, Date.now().toString());\n }\n\n const lastSent = storedTime ? parseInt(storedTime, 10) : Date.now();\n const elapsed = Math.floor((Date.now() - lastSent) / 1000);\n const remaining = RESEND_OTP_TIMER - elapsed;\n\n if (remaining > 0) {\n setTimeLeft(remaining);\n setResendEnabled(false);\n } else {\n setTimeLeft(0);\n setResendEnabled(true);\n }\n }, [identifier]);\n\n useEffect(() => {\n if (resendEnabled || timeLeft <= 0) return;\n\n const interval = setInterval(() => {\n setTimeLeft((prev) => {\n if (prev <= 1) {\n clearInterval(interval);\n setResendEnabled(true);\n return 0;\n }\n return prev - 1;\n });\n }, 1000);\n\n return () => clearInterval(interval);\n }, [resendEnabled, timeLeft]);\n\n const validationSchema = Yup.object({\n otp: Yup.string()\n .matches(/^\\d{6}$/, ERROR_MESSAGES.OTP_CHARACTER(6))\n .required(ERROR_MESSAGES.FIELD_REUQIRED('OTP')),\n });\n\n const isFormFieldValid = (formik: any, fieldName: string) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n\n const handleResendOtp = async () => {\n try {\n const payload = {\n type: type,\n identifier: identifier,\n };\n\n const response = await initiateResendOTP(payload).unwrap();\n\n if (response?.statusCode === 200) {\n showToast(toast, \"success\", ERROR_MESSAGES.OPT_RESEND, response?.data?.message);\n localStorage.setItem(RESEND_OTP_KEY, Date.now().toString());\n setTimeLeft(RESEND_OTP_TIMER);\n setResendEnabled(false);\n } else {\n showToast(toast, \"error\", ERROR_MESSAGES.LOGIN_ERROR, response.error);\n }\n } catch (err: any) {\n showToast(toast, \"error\", ERROR_MESSAGES.LOGIN_ERROR, err?.data?.message || ERROR_MESSAGES.SOMETHING_WRONG);\n }\n };\n\n return (\n <>\n <Toast ref={toast} />\n <div className={`auth-container ${solidSettingsData?.data?.authPagesLayout === 'center' ? 'center' : 'side'}`} style={{ minWidth: 480 }}>\n {solidSettingsData?.data?.authPagesLayout === 'center' &&\n <div className=\"flex justify-content-center\">\n <div className={`solid-logo flex align-items-center ${solidSettingsData?.data?.appLogoPosition}`}>\n <Image\n alt=\"solid logo\"\n src={solidSettingsData?.data?.appLogo || SolidLogo}\n className=\"relative\"\n fill\n />\n </div>\n </div>\n }\n <h2 className={`solid-auth-title ${solidSettingsData?.data?.authPagesLayout === 'center' ? 'text-center mt-2 md:mt-4' : 'text-left'}`}>OTP Verification</h2>\n <p className=\"solid-auth-subtitle text-sm\">\n Please enter the OTP sent to your email to complete verification\n </p>\n <>\n <Formik\n initialValues={{\n otp: \"\",\n }}\n validationSchema={validationSchema}\n onSubmit={async (values, { setSubmitting, setErrors }) => {\n try {\n const response = await signInWithOtp({\n type: type,\n identifier: identifier,\n otp: values.otp,\n });\n\n if (response?.error) {\n showToast(toast, \"error\", ERROR_MESSAGES.INAVLID_OTP, response.error);\n setErrors({\n otp: ERROR_MESSAGES.INAVLID_OTP,\n });\n } else {\n localStorage.removeItem(`resendOtpLogin_${identifier}`);\n showToast(toast, \"success\", ERROR_MESSAGES.LOGIN_SUCCESS, ERROR_MESSAGES.DASHBOARD_REDIRECTING);\n const redirectUrl = env(\"NEXT_PUBLIC_LOGIN_REDIRECT_URL\") || \"/admin\";\n router.push(redirectUrl);\n }\n } catch (err: any) {\n showToast(toast, \"error\", ERROR_MESSAGES.LOGIN_ERROR, err?.data ? err?.data?.message : ERROR_MESSAGES.SOMETHING_WRONG);\n } finally {\n setSubmitting(false);\n }\n }}\n >\n {(formik) => (\n <Form>\n <div className=\"flex flex-column gap-2\">\n <label htmlFor=\"otp\" className=\"solid-auth-input-label\">Enter OTP</label>\n <InputOtp\n value={formik.values.otp}\n onChange={(e) => formik.setFieldValue(\"otp\", e.value)}\n length={6}\n style={{ width: '100%' }}\n invalid={!!formik.errors.otp}\n />\n {isFormFieldValid(formik, \"otp\") && (\n <Message className=\"text-red-500 text-sm\" severity=\"error\" text={formik.errors.otp?.toString()} />\n )}\n <div className=\"flex align-items-center justify-content-between\">\n <Button type=\"button\" icon='pi pi-refresh' iconPos=\"left\" link label=\"Resend Code\" className=\"px-0 text-sm font-normal\"\n onClick={handleResendOtp}\n disabled={!resendEnabled}\n />\n <p className=\"m-0 text-sm text-color\">\n {resendEnabled\n ? \"You can resend now\"\n : `Time left: ${Math.floor(timeLeft / 60)\n .toString()\n .padStart(2, \"0\")}:${(timeLeft % 60).toString().padStart(2, \"0\")}`}\n </p>\n </div>\n </div>\n <div className=\"mt-4\">\n <Button type=\"submit\" className=\"w-full font-light auth-submit-button\" label=\"Verify\" disabled={formik.isSubmitting} loading={formik.isSubmitting} />\n <Button type=\"button\" label=\"Back\" className=\"w-full auth-back-button text-center mt-1\" link onClick={() => (window.location.href = '/auth/login')} />\n </div>\n </Form>\n )}\n </Formik>\n </>\n </div>\n {/* <div className=\"text-center mt-5\">\n <div className=\"text-sm text-400 secondary-dark-color\">\n {'<'} Back to <Link className=\"font-bold\" href=\"/auth/login\">Back</Link>\n </div>\n </div> */}\n </>\n );\n};\n\nexport default SolidInitialLoginOtp;\n"]}
|
|
1
|
+
{"version":3,"file":"SolidInitialLoginOtp.js","sourceRoot":"","sources":["../../../src/components/auth/SolidInitialLoginOtp.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useInitateLoginMutation } from \"../../redux/api/authApi\";\nimport { Form, Formik } from \"formik\";\nimport Image from \"../common/Image\";\nimport { useRouter } from \"../../hooks/useRouter\";\nimport { useSearchParams } from \"../../hooks/useSearchParams\";\nimport { Button } from \"primereact/button\";\nimport { InputOtp } from \"primereact/inputotp\";\nimport { Message } from \"primereact/message\";\nimport { useEffect, useState } from \"react\";\nimport { useDispatch } from 'react-redux';\nimport * as Yup from \"yup\";\nimport SolidLogo from '../../resources/images/SolidXLogo.svg'\nimport { signInWithOtp } from \"../../adapters/auth/index\";\nimport { ERROR_MESSAGES } from \"../../constants/error-messages\";\nimport { useLazyGetAuthSettingsQuery } from \"../../redux/api/solidSettingsApi\";\nimport { env } from \"../../adapters/env\";\nimport { showToast } from \"../../redux/features/toastSlice\";\n\n\nconst SolidInitialLoginOtp = () => {\n const searchParams = useSearchParams();\n const tempIdentifier = searchParams.get('identifier');\n const type = searchParams.get('type') || 'email';\n const identifier = tempIdentifier ? decodeURIComponent(tempIdentifier) : '';\n\n const RESEND_OTP_KEY = `resendOtpLogin_${identifier}`;\n const RESEND_OTP_TIMER_MIN = parseFloat(env(\"NEXT_PUBLIC_RESEND_OTP_TIMER\") || '0.5');\n const RESEND_OTP_TIMER = Math.round(RESEND_OTP_TIMER_MIN * 60);\n const [trigger, { data: solidSettingsData }] = useLazyGetAuthSettingsQuery();\n useEffect(() => {\n trigger(\"\") // Fetch settings on mount\n }, [trigger])\n\n const [initiateResendOTP] = useInitateLoginMutation();\n const dispatch = useDispatch();\n const router = useRouter();\n const [timeLeft, setTimeLeft] = useState(RESEND_OTP_TIMER);\n const [resendEnabled, setResendEnabled] = useState(false);\n\n const getDisplayText = () => {\n switch (type) {\n case \"mobile\":\n return {\n title: \"OTP Verification\",\n subtitle: \"Please enter the OTP sent to your mobile number to complete verification\"\n };\n case \"email\":\n default:\n return {\n title: \"OTP Verification\",\n subtitle: \"Please enter the OTP sent to your email to complete verification\"\n };\n }\n };\n\n const displayText = getDisplayText();\n\n useEffect(() => {\n\n // Set timer if not already set (e.g., after login)\n const storedTime = localStorage.getItem(RESEND_OTP_KEY);\n if (!storedTime) {\n localStorage.setItem(RESEND_OTP_KEY, Date.now().toString());\n }\n\n const lastSent = storedTime ? parseInt(storedTime, 10) : Date.now();\n const elapsed = Math.floor((Date.now() - lastSent) / 1000);\n const remaining = RESEND_OTP_TIMER - elapsed;\n\n if (remaining > 0) {\n setTimeLeft(remaining);\n setResendEnabled(false);\n } else {\n setTimeLeft(0);\n setResendEnabled(true);\n }\n }, [identifier]);\n\n useEffect(() => {\n if (resendEnabled || timeLeft <= 0) return;\n\n const interval = setInterval(() => {\n setTimeLeft((prev) => {\n if (prev <= 1) {\n clearInterval(interval);\n setResendEnabled(true);\n return 0;\n }\n return prev - 1;\n });\n }, 1000);\n\n return () => clearInterval(interval);\n }, [resendEnabled, timeLeft]);\n\n const validationSchema = Yup.object({\n otp: Yup.string()\n .matches(/^\\d{6}$/, ERROR_MESSAGES.OTP_CHARACTER(6))\n .required(ERROR_MESSAGES.FIELD_REUQIRED('OTP')),\n });\n\n const isFormFieldValid = (formik: any, fieldName: string) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n\n const handleResendOtp = async () => {\n try {\n const payload = {\n type: type,\n identifier: identifier,\n };\n\n const response = await initiateResendOTP(payload).unwrap();\n\n if (response?.statusCode === 200) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.OPT_RESEND, detail: response?.data?.message }));\n localStorage.setItem(RESEND_OTP_KEY, Date.now().toString());\n setTimeLeft(RESEND_OTP_TIMER);\n setResendEnabled(false);\n } else {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.LOGIN_ERROR, detail: response.error }));\n }\n } catch (err: any) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.LOGIN_ERROR, detail: err?.data?.message || ERROR_MESSAGES.SOMETHING_WRONG }));\n }\n };\n\n return (\n <>\n <div className={`auth-container ${solidSettingsData?.data?.authPagesLayout === 'center' ? 'center' : 'side'}`} style={{ minWidth: 480 }}>\n {solidSettingsData?.data?.authPagesLayout === 'center' &&\n <div className=\"flex justify-content-center\">\n <div className={`solid-logo flex align-items-center ${solidSettingsData?.data?.appLogoPosition}`}>\n <Image\n alt=\"solid logo\"\n src={solidSettingsData?.data?.appLogo || SolidLogo}\n className=\"relative\"\n fill\n />\n </div>\n </div>\n }\n <h2 className={`solid-auth-title ${solidSettingsData?.data?.authPagesLayout === 'center' ? 'text-center mt-2 md:mt-4' : 'text-left'}`}>OTP Verification</h2>\n <p className=\"solid-auth-subtitle text-sm\">\n Please enter the OTP sent to your email to complete verification\n </p>\n <>\n <Formik\n initialValues={{\n otp: \"\",\n }}\n validationSchema={validationSchema}\n onSubmit={async (values, { setSubmitting, setErrors }) => {\n try {\n const response = await signInWithOtp({\n type: type,\n identifier: identifier,\n otp: values.otp,\n });\n\n if (response?.error) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.INAVLID_OTP, detail: response.error }));\n setErrors({\n otp: ERROR_MESSAGES.INAVLID_OTP,\n });\n } else {\n localStorage.removeItem(`resendOtpLogin_${identifier}`);\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.LOGIN_SUCCESS, detail: ERROR_MESSAGES.DASHBOARD_REDIRECTING }));\n const redirectUrl = env(\"NEXT_PUBLIC_LOGIN_REDIRECT_URL\") || \"/admin\";\n router.push(redirectUrl);\n }\n } catch (err: any) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.LOGIN_ERROR, detail: err?.data ? err?.data?.message : ERROR_MESSAGES.SOMETHING_WRONG }));\n } finally {\n setSubmitting(false);\n }\n }}\n >\n {(formik) => (\n <Form>\n <div className=\"flex flex-column gap-2\">\n <label htmlFor=\"otp\" className=\"solid-auth-input-label\">Enter OTP</label>\n <InputOtp\n value={formik.values.otp}\n onChange={(e) => formik.setFieldValue(\"otp\", e.value)}\n length={6}\n style={{ width: '100%' }}\n invalid={!!formik.errors.otp}\n />\n {isFormFieldValid(formik, \"otp\") && (\n <Message className=\"text-red-500 text-sm\" severity=\"error\" text={formik.errors.otp?.toString()} />\n )}\n <div className=\"flex align-items-center justify-content-between\">\n <Button type=\"button\" icon='pi pi-refresh' iconPos=\"left\" link label=\"Resend Code\" className=\"px-0 text-sm font-normal\"\n onClick={handleResendOtp}\n disabled={!resendEnabled}\n />\n <p className=\"m-0 text-sm text-color\">\n {resendEnabled\n ? \"You can resend now\"\n : `Time left: ${Math.floor(timeLeft / 60)\n .toString()\n .padStart(2, \"0\")}:${(timeLeft % 60).toString().padStart(2, \"0\")}`}\n </p>\n </div>\n </div>\n <div className=\"mt-4\">\n <Button type=\"submit\" className=\"w-full font-light auth-submit-button\" label=\"Verify\" disabled={formik.isSubmitting} loading={formik.isSubmitting} />\n <Button type=\"button\" label=\"Back\" className=\"w-full auth-back-button text-center mt-1\" link onClick={() => (window.location.href = '/auth/login')} />\n </div>\n </Form>\n )}\n </Formik>\n </>\n </div>\n {/* <div className=\"text-center mt-5\">\n <div className=\"text-sm text-400 secondary-dark-color\">\n {'<'} Back to <Link className=\"font-bold\" href=\"/auth/login\">Back</Link>\n </div>\n </div> */}\n </>\n );\n};\n\nexport default SolidInitialLoginOtp;\n"]}
|
|
@@ -6,15 +6,15 @@ import { useSearchParams } from "../../hooks/useSearchParams";
|
|
|
6
6
|
import { Button } from "primereact/button";
|
|
7
7
|
import { InputOtp } from "primereact/inputotp";
|
|
8
8
|
import { Message } from "primereact/message";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { useEffect, useState } from "react";
|
|
10
|
+
import { useDispatch } from 'react-redux';
|
|
11
11
|
import * as Yup from "yup";
|
|
12
12
|
import SolidLogo from '../../resources/images/SolidXLogo.svg'
|
|
13
13
|
import { signInWithOtp } from "../../adapters/auth/index";
|
|
14
14
|
import { ERROR_MESSAGES } from "../../constants/error-messages";
|
|
15
15
|
import { useLazyGetAuthSettingsQuery } from "../../redux/api/solidSettingsApi";
|
|
16
16
|
import { env } from "../../adapters/env";
|
|
17
|
-
import showToast from "../../
|
|
17
|
+
import { showToast } from "../../redux/features/toastSlice";
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
const SolidInitialLoginOtp = () => {
|
|
@@ -32,7 +32,7 @@ const SolidInitialLoginOtp = () => {
|
|
|
32
32
|
}, [trigger])
|
|
33
33
|
|
|
34
34
|
const [initiateResendOTP] = useInitateLoginMutation();
|
|
35
|
-
const
|
|
35
|
+
const dispatch = useDispatch();
|
|
36
36
|
const router = useRouter();
|
|
37
37
|
const [timeLeft, setTimeLeft] = useState(RESEND_OTP_TIMER);
|
|
38
38
|
const [resendEnabled, setResendEnabled] = useState(false);
|
|
@@ -113,21 +113,20 @@ const SolidInitialLoginOtp = () => {
|
|
|
113
113
|
const response = await initiateResendOTP(payload).unwrap();
|
|
114
114
|
|
|
115
115
|
if (response?.statusCode === 200) {
|
|
116
|
-
showToast(
|
|
116
|
+
dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.OPT_RESEND, detail: response?.data?.message }));
|
|
117
117
|
localStorage.setItem(RESEND_OTP_KEY, Date.now().toString());
|
|
118
118
|
setTimeLeft(RESEND_OTP_TIMER);
|
|
119
119
|
setResendEnabled(false);
|
|
120
120
|
} else {
|
|
121
|
-
showToast(
|
|
121
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.LOGIN_ERROR, detail: response.error }));
|
|
122
122
|
}
|
|
123
123
|
} catch (err: any) {
|
|
124
|
-
showToast(
|
|
124
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.LOGIN_ERROR, detail: err?.data?.message || ERROR_MESSAGES.SOMETHING_WRONG }));
|
|
125
125
|
}
|
|
126
126
|
};
|
|
127
127
|
|
|
128
128
|
return (
|
|
129
129
|
<>
|
|
130
|
-
<Toast ref={toast} />
|
|
131
130
|
<div className={`auth-container ${solidSettingsData?.data?.authPagesLayout === 'center' ? 'center' : 'side'}`} style={{ minWidth: 480 }}>
|
|
132
131
|
{solidSettingsData?.data?.authPagesLayout === 'center' &&
|
|
133
132
|
<div className="flex justify-content-center">
|
|
@@ -160,18 +159,18 @@ const SolidInitialLoginOtp = () => {
|
|
|
160
159
|
});
|
|
161
160
|
|
|
162
161
|
if (response?.error) {
|
|
163
|
-
showToast(
|
|
162
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.INAVLID_OTP, detail: response.error }));
|
|
164
163
|
setErrors({
|
|
165
164
|
otp: ERROR_MESSAGES.INAVLID_OTP,
|
|
166
165
|
});
|
|
167
166
|
} else {
|
|
168
167
|
localStorage.removeItem(`resendOtpLogin_${identifier}`);
|
|
169
|
-
showToast(
|
|
168
|
+
dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.LOGIN_SUCCESS, detail: ERROR_MESSAGES.DASHBOARD_REDIRECTING }));
|
|
170
169
|
const redirectUrl = env("NEXT_PUBLIC_LOGIN_REDIRECT_URL") || "/admin";
|
|
171
170
|
router.push(redirectUrl);
|
|
172
171
|
}
|
|
173
172
|
} catch (err: any) {
|
|
174
|
-
showToast(
|
|
173
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.LOGIN_ERROR, detail: err?.data ? err?.data?.message : ERROR_MESSAGES.SOMETHING_WRONG }));
|
|
175
174
|
} finally {
|
|
176
175
|
setSubmitting(false);
|
|
177
176
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidInitiateRegisterOtp.d.ts","sourceRoot":"","sources":["../../../src/components/auth/SolidInitiateRegisterOtp.tsx"],"names":[],"mappings":"AAiBA,QAAA,MAAM,wBAAwB,+
|
|
1
|
+
{"version":3,"file":"SolidInitiateRegisterOtp.d.ts","sourceRoot":"","sources":["../../../src/components/auth/SolidInitiateRegisterOtp.tsx"],"names":[],"mappings":"AAiBA,QAAA,MAAM,wBAAwB,+CA2L7B,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
|
|
@@ -43,14 +43,14 @@ import { useSearchParams } from "../../hooks/useSearchParams";
|
|
|
43
43
|
import { Button } from "primereact/button";
|
|
44
44
|
import { InputOtp } from "primereact/inputotp";
|
|
45
45
|
import { Message } from "primereact/message";
|
|
46
|
-
import {
|
|
47
|
-
import {
|
|
46
|
+
import { useEffect, useState } from "react";
|
|
47
|
+
import { useDispatch } from 'react-redux';
|
|
48
48
|
import * as Yup from "yup";
|
|
49
49
|
import SolidLogo from '../../resources/images/SolidXLogo.svg';
|
|
50
50
|
import { ERROR_MESSAGES } from "../../constants/error-messages";
|
|
51
51
|
import { useLazyGetAuthSettingsQuery } from "../../redux/api/solidSettingsApi";
|
|
52
52
|
import { env } from "../../adapters/env";
|
|
53
|
-
import showToast from "../../
|
|
53
|
+
import { showToast } from "../../redux/features/toastSlice";
|
|
54
54
|
var SolidInitiateRegisterOtp = function () {
|
|
55
55
|
var _a, _b, _c, _d, _e;
|
|
56
56
|
var searchParams = useSearchParams();
|
|
@@ -66,7 +66,7 @@ var SolidInitiateRegisterOtp = function () {
|
|
|
66
66
|
}, [trigger]);
|
|
67
67
|
var initiateResendOTP = useInitateRegisterMutation()[0];
|
|
68
68
|
var initiateOtpRegister = useConfirmOtpRegisterMutation()[0];
|
|
69
|
-
var
|
|
69
|
+
var dispatch = useDispatch();
|
|
70
70
|
var router = useRouter();
|
|
71
71
|
var _g = useState(RESEND_OTP_TIMER), timeLeft = _g[0], setTimeLeft = _g[1];
|
|
72
72
|
var _h = useState(false), resendEnabled = _h[0], setResendEnabled = _h[1];
|
|
@@ -127,74 +127,74 @@ var SolidInitiateRegisterOtp = function () {
|
|
|
127
127
|
case 1:
|
|
128
128
|
response = _c.sent();
|
|
129
129
|
if ((response === null || response === void 0 ? void 0 : response.statusCode) === 200) {
|
|
130
|
-
showToast(
|
|
130
|
+
dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.OPT_RESEND, detail: (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.message }));
|
|
131
131
|
localStorage.setItem(RESEND_OTP_KEY, Date.now().toString());
|
|
132
132
|
setTimeLeft(RESEND_OTP_TIMER);
|
|
133
133
|
setResendEnabled(false);
|
|
134
134
|
}
|
|
135
135
|
else {
|
|
136
|
-
showToast(
|
|
136
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.LOGIN_ERROR, detail: response.error }));
|
|
137
137
|
}
|
|
138
138
|
return [3 /*break*/, 3];
|
|
139
139
|
case 2:
|
|
140
140
|
err_1 = _c.sent();
|
|
141
|
-
showToast(
|
|
141
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.LOGIN_ERROR, detail: ((_b = err_1 === null || err_1 === void 0 ? void 0 : err_1.data) === null || _b === void 0 ? void 0 : _b.message) || ERROR_MESSAGES.SOMETHING_WRONG }));
|
|
142
142
|
return [3 /*break*/, 3];
|
|
143
143
|
case 3: return [2 /*return*/];
|
|
144
144
|
}
|
|
145
145
|
});
|
|
146
146
|
}); };
|
|
147
|
-
return (
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
});
|
|
147
|
+
return (_jsx(_Fragment, { children: _jsxs("div", { className: "auth-container ".concat(((_a = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _a === void 0 ? void 0 : _a.authPagesLayout) === 'center' ? 'center' : 'side'), style: { minWidth: 480 }, children: [((_b = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _b === void 0 ? void 0 : _b.authPagesLayout) === 'center' &&
|
|
148
|
+
_jsx("div", { className: "flex justify-content-center", children: _jsx("div", { className: "solid-logo flex align-items-center ".concat((_c = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _c === void 0 ? void 0 : _c.appLogoPosition), children: _jsx(Image, { alt: "solid logo", src: ((_d = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _d === void 0 ? void 0 : _d.appLogo) || SolidLogo, className: "relative", fill: true }) }) }), _jsx("h2", { className: "solid-auth-title ".concat(((_e = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _e === void 0 ? void 0 : _e.authPagesLayout) === 'center' ? 'text-center' : 'text-left'), children: "OTP Verification" }), _jsx("p", { className: "solid-auth-subtitle text-sm", children: "Please enter the OTP sent to your email to complete verification" }), _jsx(_Fragment, { children: _jsx(Formik, { initialValues: {
|
|
149
|
+
otp: "",
|
|
150
|
+
}, validationSchema: validationSchema, onSubmit: function (values, _a) {
|
|
151
|
+
var setSubmitting = _a.setSubmitting, setErrors = _a.setErrors;
|
|
152
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
153
|
+
var payload, response, err_2;
|
|
154
|
+
var _b;
|
|
155
|
+
return __generator(this, function (_c) {
|
|
156
|
+
switch (_c.label) {
|
|
157
|
+
case 0:
|
|
158
|
+
_c.trys.push([0, 2, 3, 4]);
|
|
159
|
+
payload = {
|
|
160
|
+
type: "email",
|
|
161
|
+
identifier: email,
|
|
162
|
+
otp: values.otp
|
|
163
|
+
};
|
|
164
|
+
return [4 /*yield*/, initiateOtpRegister(payload).unwrap()];
|
|
165
|
+
case 1:
|
|
166
|
+
response = _c.sent();
|
|
167
|
+
if ((response === null || response === void 0 ? void 0 : response.statusCode) === 200) {
|
|
168
|
+
localStorage.removeItem("resendOtpRegister_".concat(email));
|
|
169
|
+
dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.LOGIN_SUCCESSFULLY, detail: "Login" }));
|
|
170
|
+
router.push("/auth/login");
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.INAVLID_OTP, detail: response.error }));
|
|
174
|
+
setErrors({
|
|
175
|
+
otp: ERROR_MESSAGES.INAVLID_OTP,
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
return [3 /*break*/, 4];
|
|
179
|
+
case 2:
|
|
180
|
+
err_2 = _c.sent();
|
|
181
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.LOGIN_ERROR, detail: (err_2 === null || err_2 === void 0 ? void 0 : err_2.data) ? (_b = err_2 === null || err_2 === void 0 ? void 0 : err_2.data) === null || _b === void 0 ? void 0 : _b.message : ERROR_MESSAGES.SOMETHING_WRONG }));
|
|
182
|
+
return [3 /*break*/, 4];
|
|
183
|
+
case 3:
|
|
184
|
+
setSubmitting(false);
|
|
185
|
+
return [7 /*endfinally*/];
|
|
186
|
+
case 4: return [2 /*return*/];
|
|
187
|
+
}
|
|
189
188
|
});
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
189
|
+
});
|
|
190
|
+
}, children: function (formik) {
|
|
191
|
+
var _a;
|
|
192
|
+
return (_jsxs(Form, { children: [_jsxs("div", { className: "flex flex-column gap-2", children: [_jsx("label", { htmlFor: "otp", className: "solid-auth-input-label", children: "Enter OTP" }), _jsx(InputOtp, { value: formik.values.otp, onChange: function (e) { return formik.setFieldValue("otp", e.value); }, length: 6, style: { width: '100%' }, invalid: !!formik.errors.otp }), isFormFieldValid(formik, "otp") && (_jsx(Message, { className: "text-red-500 text-sm", severity: "error", text: (_a = formik.errors.otp) === null || _a === void 0 ? void 0 : _a.toString() })), _jsxs("div", { className: "flex align-items-center justify-content-between", children: [_jsx(Button, { type: "button", icon: 'pi pi-refresh', iconPos: "left", link: true, label: "Resend Code", className: "px-0 text-sm font-normal", onClick: handleResendOtp, disabled: !resendEnabled }), _jsx("p", { className: "m-0 text-sm text-color", children: resendEnabled
|
|
193
|
+
? "You can resend now"
|
|
194
|
+
: "Time left: ".concat(Math.floor(timeLeft / 60)
|
|
195
|
+
.toString()
|
|
196
|
+
.padStart(2, "0"), ":").concat((timeLeft % 60).toString().padStart(2, "0")) })] })] }), _jsxs("div", { className: "mt-4", children: [_jsx(Button, { type: "submit", className: "w-full font-light auth-submit-button", label: "Verify", disabled: formik.isSubmitting, loading: formik.isSubmitting }), _jsx(Button, { type: "button", label: "Back", className: "w-full auth-back-button text-center mt-1", link: true, onClick: function () { return (window.location.href = '/auth/login'); } })] })] }));
|
|
197
|
+
} }) })] }) }));
|
|
198
198
|
};
|
|
199
199
|
export default SolidInitiateRegisterOtp;
|
|
200
200
|
//# sourceMappingURL=SolidInitiateRegisterOtp.js.map
|