@solidxai/core-ui 0.1.5-beta.9 → 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.
Files changed (296) hide show
  1. package/dist/components/auth/AuthTabs.d.ts +14 -0
  2. package/dist/components/auth/AuthTabs.d.ts.map +1 -0
  3. package/dist/components/auth/AuthTabs.js +19 -0
  4. package/dist/components/auth/AuthTabs.js.map +1 -0
  5. package/dist/components/auth/AuthTabs.tsx +38 -0
  6. package/dist/components/auth/GoogleAuthChecking.d.ts.map +1 -1
  7. package/dist/components/auth/GoogleAuthChecking.js +10 -10
  8. package/dist/components/auth/GoogleAuthChecking.js.map +1 -1
  9. package/dist/components/auth/GoogleAuthChecking.tsx +8 -9
  10. package/dist/components/auth/SolidChangeForcePassword.d.ts.map +1 -1
  11. package/dist/components/auth/SolidChangeForcePassword.js +9 -10
  12. package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
  13. package/dist/components/auth/SolidChangeForcePassword.tsx +6 -9
  14. package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
  15. package/dist/components/auth/SolidForgotPassword.js +8 -8
  16. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  17. package/dist/components/auth/SolidForgotPassword.tsx +6 -8
  18. package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
  19. package/dist/components/auth/SolidInitialLoginOtp.js +57 -57
  20. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  21. package/dist/components/auth/SolidInitialLoginOtp.tsx +10 -11
  22. package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
  23. package/dist/components/auth/SolidInitiateRegisterOtp.js +57 -57
  24. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  25. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +10 -11
  26. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  27. package/dist/components/auth/SolidLogin.js +12 -12
  28. package/dist/components/auth/SolidLogin.js.map +1 -1
  29. package/dist/components/auth/SolidLogin.tsx +11 -16
  30. package/dist/components/auth/SolidRegister.d.ts.map +1 -1
  31. package/dist/components/auth/SolidRegister.js +19 -19
  32. package/dist/components/auth/SolidRegister.js.map +1 -1
  33. package/dist/components/auth/SolidRegister.tsx +18 -23
  34. package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
  35. package/dist/components/auth/SolidResetPassword.js +15 -15
  36. package/dist/components/auth/SolidResetPassword.js.map +1 -1
  37. package/dist/components/auth/SolidResetPassword.tsx +7 -8
  38. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  39. package/dist/components/common/GeneralSettings.js +87 -120
  40. package/dist/components/common/GeneralSettings.js.map +1 -1
  41. package/dist/components/common/GeneralSettings.tsx +12 -42
  42. package/dist/components/common/GlobalToast.d.ts +2 -0
  43. package/dist/components/common/GlobalToast.d.ts.map +1 -0
  44. package/dist/components/common/GlobalToast.js +25 -0
  45. package/dist/components/common/GlobalToast.js.map +1 -0
  46. package/dist/components/common/GlobalToast.tsx +25 -0
  47. package/dist/components/common/SolidErrorStatePage.d.ts +12 -0
  48. package/dist/components/common/SolidErrorStatePage.d.ts.map +1 -0
  49. package/dist/components/common/SolidErrorStatePage.js +16 -0
  50. package/dist/components/common/SolidErrorStatePage.js.map +1 -0
  51. package/dist/components/common/SolidErrorStatePage.tsx +55 -0
  52. package/dist/components/common/SolidExport.d.ts.map +1 -1
  53. package/dist/components/common/SolidExport.js +19 -31
  54. package/dist/components/common/SolidExport.js.map +1 -1
  55. package/dist/components/common/SolidExport.tsx +7 -19
  56. package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
  57. package/dist/components/common/SolidFormStepper.js +41 -41
  58. package/dist/components/common/SolidFormStepper.js.map +1 -1
  59. package/dist/components/common/SolidFormStepper.tsx +5 -6
  60. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
  61. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +9 -9
  62. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
  63. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +8 -9
  64. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  65. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +8 -8
  66. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  67. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +7 -9
  68. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.d.ts.map +1 -1
  69. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js +11 -11
  70. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js.map +1 -1
  71. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx +10 -11
  72. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
  73. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +9 -9
  74. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
  75. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +8 -9
  76. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
  77. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +7 -7
  78. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
  79. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +6 -7
  80. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  81. package/dist/components/core/common/SolidGlobalSearchElement.js +78 -21
  82. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  83. package/dist/components/core/common/SolidGlobalSearchElement.tsx +65 -10
  84. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
  85. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +6 -8
  86. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
  87. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +5 -9
  88. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.d.ts.map +1 -1
  89. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js +9 -11
  90. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js.map +1 -1
  91. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.tsx +5 -10
  92. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.d.ts.map +1 -1
  93. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js +5 -6
  94. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js.map +1 -1
  95. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.tsx +5 -8
  96. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.d.ts.map +1 -1
  97. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js +10 -12
  98. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js.map +1 -1
  99. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx +6 -11
  100. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
  101. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +11 -6
  102. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  103. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +13 -1
  104. package/dist/components/core/form/SolidFormUserViewLayout.d.ts.map +1 -1
  105. package/dist/components/core/form/SolidFormUserViewLayout.js +7 -8
  106. package/dist/components/core/form/SolidFormUserViewLayout.js.map +1 -1
  107. package/dist/components/core/form/SolidFormUserViewLayout.tsx +5 -7
  108. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  109. package/dist/components/core/form/SolidFormView.js +12 -21
  110. package/dist/components/core/form/SolidFormView.js.map +1 -1
  111. package/dist/components/core/form/SolidFormView.tsx +11 -33
  112. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  113. package/dist/components/core/form/fields/SolidMediaSingleField.js +22 -15
  114. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  115. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +14 -2
  116. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  117. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +37 -26
  118. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  119. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +38 -5
  120. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  121. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +11 -11
  122. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  123. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +9 -11
  124. package/dist/components/core/kanban/KanbanUserViewLayout.d.ts.map +1 -1
  125. package/dist/components/core/kanban/KanbanUserViewLayout.js +7 -8
  126. package/dist/components/core/kanban/KanbanUserViewLayout.js.map +1 -1
  127. package/dist/components/core/kanban/KanbanUserViewLayout.tsx +4 -6
  128. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  129. package/dist/components/core/kanban/SolidKanbanView.js +5 -7
  130. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  131. package/dist/components/core/kanban/SolidKanbanView.tsx +4 -9
  132. package/dist/components/core/list/PLAN.md +92 -0
  133. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.d.ts.map +1 -1
  134. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +13 -13
  135. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
  136. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +5 -6
  137. package/dist/components/core/list/SolidDataTable.d.ts +58 -0
  138. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -0
  139. package/dist/components/core/list/SolidDataTable.js +141 -0
  140. package/dist/components/core/list/SolidDataTable.js.map +1 -0
  141. package/dist/components/core/list/SolidDataTable.tsx +314 -0
  142. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  143. package/dist/components/core/list/SolidListView.js +20 -67
  144. package/dist/components/core/list/SolidListView.js.map +1 -1
  145. package/dist/components/core/list/SolidListView.tsx +9 -76
  146. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  147. package/dist/components/core/model/CreateModel.js +15 -25
  148. package/dist/components/core/model/CreateModel.js.map +1 -1
  149. package/dist/components/core/model/CreateModel.tsx +12 -32
  150. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  151. package/dist/components/core/model/FieldMetaData.js +6 -17
  152. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  153. package/dist/components/core/model/FieldMetaData.tsx +5 -26
  154. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  155. package/dist/components/core/model/ModelMetaData.js +48 -55
  156. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  157. package/dist/components/core/model/ModelMetaData.tsx +4 -22
  158. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  159. package/dist/components/core/module/CreateModule.js +42 -44
  160. package/dist/components/core/module/CreateModule.js.map +1 -1
  161. package/dist/components/core/module/CreateModule.tsx +13 -27
  162. package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
  163. package/dist/components/core/module/ModuleListViewData.js +11 -7
  164. package/dist/components/core/module/ModuleListViewData.js.map +1 -1
  165. package/dist/components/core/module/ModuleListViewData.tsx +10 -8
  166. package/dist/components/core/solid-ai/SolidAiChat.d.ts +3 -0
  167. package/dist/components/core/solid-ai/SolidAiChat.d.ts.map +1 -0
  168. package/dist/components/core/solid-ai/SolidAiChat.js +1043 -0
  169. package/dist/components/core/solid-ai/SolidAiChat.js.map +1 -0
  170. package/dist/components/core/solid-ai/SolidAiChat.module.css +1339 -0
  171. package/dist/components/core/solid-ai/SolidAiChat.tsx +1237 -0
  172. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  173. package/dist/components/core/tree/SolidTreeView.js +32 -69
  174. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  175. package/dist/components/core/tree/SolidTreeView.tsx +8 -47
  176. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  177. package/dist/components/core/users/CreateUser.js +24 -37
  178. package/dist/components/core/users/CreateUser.js.map +1 -1
  179. package/dist/components/core/users/CreateUser.tsx +8 -46
  180. package/dist/components/core/users/UserListView.d.ts.map +1 -1
  181. package/dist/components/core/users/UserListView.js +9 -16
  182. package/dist/components/core/users/UserListView.js.map +1 -1
  183. package/dist/components/core/users/UserListView.tsx +5 -21
  184. package/dist/components/layout/AdminLayout.d.ts.map +1 -1
  185. package/dist/components/layout/AdminLayout.js +4 -2
  186. package/dist/components/layout/AdminLayout.js.map +1 -1
  187. package/dist/components/layout/AdminLayout.tsx +4 -2
  188. package/dist/components/layout/AdminTopHeader.d.ts +2 -0
  189. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -0
  190. package/dist/components/layout/AdminTopHeader.js +80 -0
  191. package/dist/components/layout/AdminTopHeader.js.map +1 -0
  192. package/dist/components/layout/AdminTopHeader.tsx +165 -0
  193. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  194. package/dist/components/layout/AppSidebar.js +1 -2
  195. package/dist/components/layout/AppSidebar.js.map +1 -1
  196. package/dist/components/layout/AppSidebar.tsx +0 -2
  197. package/dist/components/layout/Layout.d.ts.map +1 -1
  198. package/dist/components/layout/Layout.js +2 -1
  199. package/dist/components/layout/Layout.js.map +1 -1
  200. package/dist/components/layout/Layout.tsx +2 -0
  201. package/dist/components/layout/SolidAiStudioLayout.d.ts +10 -0
  202. package/dist/components/layout/SolidAiStudioLayout.d.ts.map +1 -0
  203. package/dist/components/layout/SolidAiStudioLayout.js +159 -0
  204. package/dist/components/layout/SolidAiStudioLayout.js.map +1 -0
  205. package/dist/components/layout/SolidAiStudioLayout.tsx +333 -0
  206. package/dist/components/layout/navbar-one.d.ts.map +1 -1
  207. package/dist/components/layout/navbar-one.js +1 -2
  208. package/dist/components/layout/navbar-one.js.map +1 -1
  209. package/dist/components/layout/navbar-one.tsx +0 -2
  210. package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
  211. package/dist/components/layout/navbar-two-menu.js +50 -24
  212. package/dist/components/layout/navbar-two-menu.js.map +1 -1
  213. package/dist/components/layout/navbar-two-menu.tsx +48 -30
  214. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts +24 -0
  215. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -0
  216. package/dist/components/shad-cn-ui/SolidAutocomplete.js +224 -0
  217. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -0
  218. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +339 -0
  219. package/dist/components/shad-cn-ui/SolidButton.d.ts +14 -0
  220. package/dist/components/shad-cn-ui/SolidButton.d.ts.map +1 -0
  221. package/dist/components/shad-cn-ui/SolidButton.js +36 -0
  222. package/dist/components/shad-cn-ui/SolidButton.js.map +1 -0
  223. package/dist/components/shad-cn-ui/SolidButton.tsx +54 -0
  224. package/dist/components/shad-cn-ui/SolidInput.d.ts +5 -0
  225. package/dist/components/shad-cn-ui/SolidInput.d.ts.map +1 -0
  226. package/dist/components/shad-cn-ui/SolidInput.js +35 -0
  227. package/dist/components/shad-cn-ui/SolidInput.js.map +1 -0
  228. package/dist/components/shad-cn-ui/SolidInput.tsx +12 -0
  229. package/dist/components/shad-cn-ui/SolidNumberInput.d.ts +10 -0
  230. package/dist/components/shad-cn-ui/SolidNumberInput.d.ts.map +1 -0
  231. package/dist/components/shad-cn-ui/SolidNumberInput.js +33 -0
  232. package/dist/components/shad-cn-ui/SolidNumberInput.js.map +1 -0
  233. package/dist/components/shad-cn-ui/SolidNumberInput.tsx +24 -0
  234. package/dist/components/shad-cn-ui/SolidSelect.d.ts +16 -0
  235. package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -0
  236. package/dist/components/shad-cn-ui/SolidSelect.js +26 -0
  237. package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -0
  238. package/dist/components/shad-cn-ui/SolidSelect.tsx +65 -0
  239. package/dist/components/shad-cn-ui/SolidTabs.d.ts +18 -0
  240. package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -0
  241. package/dist/components/shad-cn-ui/SolidTabs.js +22 -0
  242. package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -0
  243. package/dist/components/shad-cn-ui/SolidTabs.tsx +73 -0
  244. package/dist/components/shad-cn-ui/index.d.ts +7 -0
  245. package/dist/components/shad-cn-ui/index.d.ts.map +1 -0
  246. package/dist/components/shad-cn-ui/index.js +7 -0
  247. package/dist/components/shad-cn-ui/index.js.map +1 -0
  248. package/dist/components/shad-cn-ui/index.ts +6 -0
  249. package/dist/helpers/studioSandbox.d.ts +31 -0
  250. package/dist/helpers/studioSandbox.d.ts.map +1 -0
  251. package/dist/helpers/studioSandbox.js +104 -0
  252. package/dist/helpers/studioSandbox.js.map +1 -0
  253. package/dist/helpers/studioSandbox.ts +117 -0
  254. package/dist/index.d.ts +4 -0
  255. package/dist/index.d.ts.map +1 -1
  256. package/dist/index.js +3 -0
  257. package/dist/index.js.map +1 -1
  258. package/dist/index.ts +4 -0
  259. package/dist/redux/features/solidStudioSlice.d.ts +9 -0
  260. package/dist/redux/features/solidStudioSlice.d.ts.map +1 -0
  261. package/dist/redux/features/solidStudioSlice.js +72 -0
  262. package/dist/redux/features/solidStudioSlice.js.map +1 -0
  263. package/dist/redux/features/solidStudioSlice.ts +78 -0
  264. package/dist/redux/features/toastSlice.d.ts +15 -0
  265. package/dist/redux/features/toastSlice.d.ts.map +1 -0
  266. package/dist/redux/features/toastSlice.js +20 -0
  267. package/dist/redux/features/toastSlice.js.map +1 -0
  268. package/dist/redux/features/toastSlice.ts +35 -0
  269. package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
  270. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  271. package/dist/redux/store/defaultStoreConfig.js +2 -1
  272. package/dist/redux/store/defaultStoreConfig.js.map +1 -1
  273. package/dist/redux/store/defaultStoreConfig.ts +2 -0
  274. package/dist/resources/images/errors/error-astronaut-404.png +0 -0
  275. package/dist/resources/shadcn-base.css +4171 -0
  276. package/dist/routes/SolidLayoutRegistry.d.ts +51 -0
  277. package/dist/routes/SolidLayoutRegistry.d.ts.map +1 -0
  278. package/dist/routes/SolidLayoutRegistry.js +108 -0
  279. package/dist/routes/SolidLayoutRegistry.js.map +1 -0
  280. package/dist/routes/SolidLayoutRegistry.tsx +157 -0
  281. package/dist/routes/guards/AdminGuard.d.ts +2 -0
  282. package/dist/routes/guards/AdminGuard.d.ts.map +1 -0
  283. package/dist/routes/guards/AdminGuard.js +16 -0
  284. package/dist/routes/guards/AdminGuard.js.map +1 -0
  285. package/dist/routes/guards/AdminGuard.tsx +17 -0
  286. package/dist/routes/pages/studio/StudioHomePage.d.ts +2 -0
  287. package/dist/routes/pages/studio/StudioHomePage.d.ts.map +1 -0
  288. package/dist/routes/pages/studio/StudioHomePage.js +22 -0
  289. package/dist/routes/pages/studio/StudioHomePage.js.map +1 -0
  290. package/dist/routes/pages/studio/StudioHomePage.tsx +106 -0
  291. package/dist/routes/pages/studio/StudioLandingPage.d.ts +2 -0
  292. package/dist/routes/pages/studio/StudioLandingPage.d.ts.map +1 -0
  293. package/dist/routes/pages/studio/StudioLandingPage.js +78 -0
  294. package/dist/routes/pages/studio/StudioLandingPage.js.map +1 -0
  295. package/dist/routes/pages/studio/StudioLandingPage.tsx +320 -0
  296. 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 { Toast } from "primereact/toast";
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 "../../helpers/showToast";
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 toast = useRef<Toast>(null);
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(toast, "error", ERROR_MESSAGES.ERROR, response.error)
54
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.ERROR, detail: response.error }))
56
55
  )
57
56
  } catch (err: any) {
58
- showToast(toast, "error", ERROR_MESSAGES.ERROR, err?.data ? err?.data?.message : ERROR_MESSAGES.SOMETHING_WRONG);
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,+CA4MzB,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
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 { Toast } from "primereact/toast";
47
- import { useEffect, useRef, useState } from "react";
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 "../../helpers/showToast";
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 toast = useRef(null);
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(toast, "success", ERROR_MESSAGES.OPT_RESEND, (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.message);
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(toast, "error", ERROR_MESSAGES.LOGIN_ERROR, response.error);
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(toast, "error", ERROR_MESSAGES.LOGIN_ERROR, ((_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);
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 (_jsxs(_Fragment, { children: [_jsx(Toast, { ref: toast }), _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
- showToast(toast, "error", ERROR_MESSAGES.INAVLID_OTP, response.error);
183
- setErrors({
184
- otp: ERROR_MESSAGES.INAVLID_OTP,
185
- });
186
- }
187
- else {
188
- localStorage.removeItem("resendOtpLogin_".concat(identifier));
189
- showToast(toast, "success", ERROR_MESSAGES.LOGIN_SUCCESS, 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
- showToast(toast, "error", ERROR_MESSAGES.LOGIN_ERROR, (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
- }
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
- }, 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
- } }) })] })] }));
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":"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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 { 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 { Toast } from "primereact/toast";
10
- import { useEffect, useRef, useState } from "react";
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 "../../helpers/showToast";
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 toast = useRef<Toast>(null);
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(toast, "success", ERROR_MESSAGES.OPT_RESEND, response?.data?.message);
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(toast, "error", ERROR_MESSAGES.LOGIN_ERROR, response.error);
121
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.LOGIN_ERROR, detail: response.error }));
122
122
  }
123
123
  } catch (err: any) {
124
- showToast(toast, "error", ERROR_MESSAGES.LOGIN_ERROR, err?.data?.message || ERROR_MESSAGES.SOMETHING_WRONG);
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(toast, "error", ERROR_MESSAGES.INAVLID_OTP, response.error);
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(toast, "success", ERROR_MESSAGES.LOGIN_SUCCESS, ERROR_MESSAGES.DASHBOARD_REDIRECTING);
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(toast, "error", ERROR_MESSAGES.LOGIN_ERROR, err?.data ? err?.data?.message : ERROR_MESSAGES.SOMETHING_WRONG);
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,+CA4L7B,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
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 { Toast } from "primereact/toast";
47
- import { useEffect, useRef, useState } from "react";
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 "../../helpers/showToast";
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 toast = useRef(null);
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(toast, "success", ERROR_MESSAGES.OPT_RESEND, (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.message);
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(toast, "error", ERROR_MESSAGES.LOGIN_ERROR, response.error);
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(toast, "error", ERROR_MESSAGES.LOGIN_ERROR, ((_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);
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 (_jsxs(_Fragment, { children: [_jsx(Toast, { ref: toast }), _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
- showToast(toast, "success", ERROR_MESSAGES.LOGIN_SUCCESSFULLY, "Login");
170
- router.push("/auth/login");
171
- }
172
- else {
173
- showToast(toast, "error", ERROR_MESSAGES.INAVLID_OTP, 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
- showToast(toast, "error", ERROR_MESSAGES.LOGIN_ERROR, (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
- }
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
- }, 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
- } }) })] })] }));
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