@churchapps/apphelper 0.4.12 → 0.4.18

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 (608) hide show
  1. package/dist/components/DisplayBox.js +12 -18
  2. package/dist/components/DisplayBox.js.map +1 -1
  3. package/dist/components/ErrorMessages.js +9 -46
  4. package/dist/components/ErrorMessages.js.map +1 -1
  5. package/dist/components/ExportLink.d.ts.map +1 -1
  6. package/dist/components/ExportLink.js +8 -10
  7. package/dist/components/ExportLink.js.map +1 -1
  8. package/dist/components/FloatingSupport.js +7 -14
  9. package/dist/components/FloatingSupport.js.map +1 -1
  10. package/dist/components/FormCardPayment.d.ts.map +1 -1
  11. package/dist/components/FormCardPayment.js +28 -64
  12. package/dist/components/FormCardPayment.js.map +1 -1
  13. package/dist/components/FormSubmissionEdit.d.ts.map +1 -1
  14. package/dist/components/FormSubmissionEdit.js +28 -66
  15. package/dist/components/FormSubmissionEdit.js.map +1 -1
  16. package/dist/components/HelpIcon.js +3 -7
  17. package/dist/components/HelpIcon.js.map +1 -1
  18. package/dist/components/ImageEditor.d.ts.map +1 -1
  19. package/dist/components/ImageEditor.js +13 -19
  20. package/dist/components/ImageEditor.js.map +1 -1
  21. package/dist/components/InputBox.d.ts.map +1 -1
  22. package/dist/components/InputBox.js +13 -15
  23. package/dist/components/InputBox.js.map +1 -1
  24. package/dist/components/Loading.d.ts +0 -1
  25. package/dist/components/Loading.d.ts.map +1 -1
  26. package/dist/components/Loading.js +52 -12
  27. package/dist/components/Loading.js.map +1 -1
  28. package/dist/components/PageHeader.d.ts +15 -0
  29. package/dist/components/PageHeader.d.ts.map +1 -0
  30. package/dist/components/PageHeader.js +41 -0
  31. package/dist/components/PageHeader.js.map +1 -0
  32. package/dist/components/PersonAvatar.d.ts +12 -0
  33. package/dist/components/PersonAvatar.d.ts.map +1 -0
  34. package/dist/components/PersonAvatar.js +55 -0
  35. package/dist/components/PersonAvatar.js.map +1 -0
  36. package/dist/components/QuestionEdit.js +20 -26
  37. package/dist/components/QuestionEdit.js.map +1 -1
  38. package/dist/components/SmallButton.js +9 -15
  39. package/dist/components/SmallButton.js.map +1 -1
  40. package/dist/components/SupportModal.d.ts.map +1 -1
  41. package/dist/components/SupportModal.js +5 -9
  42. package/dist/components/SupportModal.js.map +1 -1
  43. package/dist/components/TabPanel.js +5 -9
  44. package/dist/components/TabPanel.js.map +1 -1
  45. package/dist/components/header/Banner.js +3 -7
  46. package/dist/components/header/Banner.js.map +1 -1
  47. package/dist/components/header/PrimaryMenu.d.ts.map +1 -1
  48. package/dist/components/header/PrimaryMenu.js +30 -30
  49. package/dist/components/header/PrimaryMenu.js.map +1 -1
  50. package/dist/components/header/SecondaryMenu.js +6 -10
  51. package/dist/components/header/SecondaryMenu.js.map +1 -1
  52. package/dist/components/header/SecondaryMenuAlt.js +8 -15
  53. package/dist/components/header/SecondaryMenuAlt.js.map +1 -1
  54. package/dist/components/header/SiteHeader.d.ts +2 -1
  55. package/dist/components/header/SiteHeader.d.ts.map +1 -1
  56. package/dist/components/header/SiteHeader.js +109 -17
  57. package/dist/components/header/SiteHeader.js.map +1 -1
  58. package/dist/components/header/SupportDrawer.js +14 -18
  59. package/dist/components/header/SupportDrawer.js.map +1 -1
  60. package/dist/components/header/index.js +2 -7
  61. package/dist/components/header/index.js.map +1 -1
  62. package/dist/components/index.d.ts +2 -4
  63. package/dist/components/index.d.ts.map +1 -1
  64. package/dist/components/index.js +18 -52
  65. package/dist/components/index.js.map +1 -1
  66. package/dist/components/notes/AddNote.d.ts.map +1 -1
  67. package/dist/components/notes/AddNote.js +56 -54
  68. package/dist/components/notes/AddNote.js.map +1 -1
  69. package/dist/components/notes/Note.d.ts.map +1 -1
  70. package/dist/components/notes/Note.js +11 -15
  71. package/dist/components/notes/Note.js.map +1 -1
  72. package/dist/components/notes/Notes.d.ts.map +1 -1
  73. package/dist/components/notes/Notes.js +134 -40
  74. package/dist/components/notes/Notes.js.map +1 -1
  75. package/dist/components/notes/index.js +3 -9
  76. package/dist/components/notes/index.js.map +1 -1
  77. package/dist/components/wrapper/AppList.d.ts.map +1 -1
  78. package/dist/components/wrapper/AppList.js +7 -13
  79. package/dist/components/wrapper/AppList.js.map +1 -1
  80. package/dist/components/wrapper/ChurchList.d.ts.map +1 -1
  81. package/dist/components/wrapper/ChurchList.js +55 -21
  82. package/dist/components/wrapper/ChurchList.js.map +1 -1
  83. package/dist/components/wrapper/NavItem.js +11 -15
  84. package/dist/components/wrapper/NavItem.js.map +1 -1
  85. package/dist/components/wrapper/NewPrivateMessage.d.ts.map +1 -1
  86. package/dist/components/wrapper/NewPrivateMessage.js +38 -68
  87. package/dist/components/wrapper/NewPrivateMessage.js.map +1 -1
  88. package/dist/components/wrapper/Notifications.d.ts.map +1 -1
  89. package/dist/components/wrapper/Notifications.js +53 -57
  90. package/dist/components/wrapper/Notifications.js.map +1 -1
  91. package/dist/components/wrapper/PrivateMessageDetails.d.ts +1 -0
  92. package/dist/components/wrapper/PrivateMessageDetails.d.ts.map +1 -1
  93. package/dist/components/wrapper/PrivateMessageDetails.js +54 -9
  94. package/dist/components/wrapper/PrivateMessageDetails.js.map +1 -1
  95. package/dist/components/wrapper/PrivateMessages.d.ts.map +1 -1
  96. package/dist/components/wrapper/PrivateMessages.js +363 -78
  97. package/dist/components/wrapper/PrivateMessages.js.map +1 -1
  98. package/dist/components/wrapper/UserMenu.d.ts.map +1 -1
  99. package/dist/components/wrapper/UserMenu.js +182 -54
  100. package/dist/components/wrapper/UserMenu.js.map +1 -1
  101. package/dist/components/wrapper/index.d.ts +2 -1
  102. package/dist/components/wrapper/index.d.ts.map +1 -1
  103. package/dist/components/wrapper/index.js +8 -17
  104. package/dist/components/wrapper/index.js.map +1 -1
  105. package/dist/helpers/AnalyticsHelper.d.ts.map +1 -1
  106. package/dist/helpers/AnalyticsHelper.js +11 -19
  107. package/dist/helpers/AnalyticsHelper.js.map +1 -1
  108. package/dist/helpers/AppearanceHelper.js +1 -5
  109. package/dist/helpers/AppearanceHelper.js.map +1 -1
  110. package/dist/helpers/ArrayHelper.d.ts.map +1 -1
  111. package/dist/helpers/ArrayHelper.js +3 -8
  112. package/dist/helpers/ArrayHelper.js.map +1 -1
  113. package/dist/helpers/CurrencyHelper.js +1 -5
  114. package/dist/helpers/CurrencyHelper.js.map +1 -1
  115. package/dist/helpers/DateHelper.js +3 -7
  116. package/dist/helpers/DateHelper.js.map +1 -1
  117. package/dist/helpers/ErrorHelper.js +3 -7
  118. package/dist/helpers/ErrorHelper.js.map +1 -1
  119. package/dist/helpers/EventHelper.d.ts.map +1 -1
  120. package/dist/helpers/EventHelper.js +4 -11
  121. package/dist/helpers/EventHelper.js.map +1 -1
  122. package/dist/helpers/FileHelper.js +3 -10
  123. package/dist/helpers/FileHelper.js.map +1 -1
  124. package/dist/helpers/Locale.d.ts +1 -1
  125. package/dist/helpers/Locale.d.ts.map +1 -1
  126. package/dist/helpers/Locale.js +18 -20
  127. package/dist/helpers/Locale.js.map +1 -1
  128. package/dist/helpers/NotificationService.d.ts +56 -0
  129. package/dist/helpers/NotificationService.d.ts.map +1 -0
  130. package/dist/helpers/NotificationService.js +176 -0
  131. package/dist/helpers/NotificationService.js.map +1 -0
  132. package/dist/helpers/PersonHelper.d.ts.map +1 -1
  133. package/dist/helpers/PersonHelper.js +5 -9
  134. package/dist/helpers/PersonHelper.js.map +1 -1
  135. package/dist/helpers/SlugHelper.js +4 -11
  136. package/dist/helpers/SlugHelper.js.map +1 -1
  137. package/dist/helpers/SocketHelper.d.ts +12 -0
  138. package/dist/helpers/SocketHelper.d.ts.map +1 -1
  139. package/dist/helpers/SocketHelper.js +163 -44
  140. package/dist/helpers/SocketHelper.js.map +1 -1
  141. package/dist/helpers/UniqueIdHelper.js +1 -5
  142. package/dist/helpers/UniqueIdHelper.js.map +1 -1
  143. package/dist/helpers/UserHelper.js +8 -12
  144. package/dist/helpers/UserHelper.js.map +1 -1
  145. package/dist/helpers/createEmotionCache.js +3 -9
  146. package/dist/helpers/createEmotionCache.js.map +1 -1
  147. package/dist/helpers/index.d.ts +7 -16
  148. package/dist/helpers/index.d.ts.map +1 -1
  149. package/dist/helpers/index.js +10 -54
  150. package/dist/helpers/index.js.map +1 -1
  151. package/dist/hooks/index.d.ts +2 -0
  152. package/dist/hooks/index.d.ts.map +1 -1
  153. package/dist/hooks/index.js +2 -5
  154. package/dist/hooks/index.js.map +1 -1
  155. package/dist/hooks/useMountedState.js +5 -9
  156. package/dist/hooks/useMountedState.js.map +1 -1
  157. package/dist/hooks/useNotifications.d.ts +30 -0
  158. package/dist/hooks/useNotifications.d.ts.map +1 -0
  159. package/dist/hooks/useNotifications.js +79 -0
  160. package/dist/hooks/useNotifications.js.map +1 -0
  161. package/dist/index.d.ts +0 -3
  162. package/dist/index.d.ts.map +1 -1
  163. package/dist/index.js +3 -22
  164. package/dist/index.js.map +1 -1
  165. package/dist/public/css/styles.css +6 -2
  166. package/package.json +6 -28
  167. package/public/css/styles.css +6 -2
  168. package/src/components/ExportLink.tsx +12 -3
  169. package/src/components/FormCardPayment.tsx +4 -3
  170. package/src/components/FormSubmissionEdit.tsx +5 -6
  171. package/src/components/ImageEditor.tsx +15 -12
  172. package/src/components/InputBox.tsx +2 -1
  173. package/src/components/Loading.tsx +47 -1
  174. package/src/components/PageHeader.tsx +107 -0
  175. package/src/components/PersonAvatar.tsx +78 -0
  176. package/src/components/SupportModal.tsx +8 -3
  177. package/src/components/header/PrimaryMenu.tsx +85 -42
  178. package/src/components/header/SiteHeader.tsx +131 -8
  179. package/src/components/header/SupportDrawer.tsx +1 -1
  180. package/src/components/index.tsx +2 -5
  181. package/src/components/notes/AddNote.tsx +105 -19
  182. package/src/components/notes/Note.tsx +43 -22
  183. package/src/components/notes/Notes.tsx +160 -21
  184. package/src/components/wrapper/AppList.tsx +1 -4
  185. package/src/components/wrapper/ChurchList.tsx +45 -5
  186. package/src/components/wrapper/NewPrivateMessage.tsx +181 -44
  187. package/src/components/wrapper/Notifications.tsx +164 -29
  188. package/src/components/wrapper/PrivateMessageDetails.tsx +100 -13
  189. package/src/components/wrapper/PrivateMessages.tsx +539 -56
  190. package/src/components/wrapper/UserMenu.tsx +218 -38
  191. package/src/components/wrapper/index.tsx +3 -2
  192. package/src/helpers/AnalyticsHelper.ts +1 -2
  193. package/src/helpers/ArrayHelper.ts +0 -1
  194. package/src/helpers/ErrorHelper.ts +1 -1
  195. package/src/helpers/EventHelper.ts +0 -3
  196. package/src/helpers/Locale.ts +8 -3
  197. package/src/helpers/NotificationService.ts +211 -0
  198. package/src/helpers/PersonHelper.ts +1 -2
  199. package/src/helpers/SocketHelper.ts +184 -39
  200. package/src/helpers/UserHelper.ts +2 -2
  201. package/src/helpers/index.ts +46 -16
  202. package/src/hooks/index.ts +2 -0
  203. package/src/hooks/useNotifications.ts +94 -0
  204. package/src/index.ts +1 -4
  205. package/tsconfig.json +2 -2
  206. package/.eslintignore +0 -4
  207. package/.github/FUNDING.yml +0 -1
  208. package/.vscode/settings.json +0 -6
  209. package/CHUMS_COMPONENT_EXTRACTION_CANDIDATES.md +0 -210
  210. package/CLAUDE.md +0 -111
  211. package/COMPONENT_USAGE_REPORT.md +0 -322
  212. package/LICENSE +0 -21
  213. package/README.md +0 -24
  214. package/b1app-specific-components.md +0 -146
  215. package/component-usage-analysis.md +0 -169
  216. package/dist/components/markdownEditor/Editor.d.ts +0 -13
  217. package/dist/components/markdownEditor/Editor.d.ts.map +0 -1
  218. package/dist/components/markdownEditor/Editor.js +0 -92
  219. package/dist/components/markdownEditor/Editor.js.map +0 -1
  220. package/dist/components/markdownEditor/IconNamesList.d.ts +0 -3
  221. package/dist/components/markdownEditor/IconNamesList.d.ts.map +0 -1
  222. package/dist/components/markdownEditor/IconNamesList.js +0 -16
  223. package/dist/components/markdownEditor/IconNamesList.js.map +0 -1
  224. package/dist/components/markdownEditor/MarkdownEditor.d.ts +0 -10
  225. package/dist/components/markdownEditor/MarkdownEditor.d.ts.map +0 -1
  226. package/dist/components/markdownEditor/MarkdownEditor.js +0 -45
  227. package/dist/components/markdownEditor/MarkdownEditor.js.map +0 -1
  228. package/dist/components/markdownEditor/MarkdownModal.d.ts +0 -9
  229. package/dist/components/markdownEditor/MarkdownModal.d.ts.map +0 -1
  230. package/dist/components/markdownEditor/MarkdownModal.js +0 -24
  231. package/dist/components/markdownEditor/MarkdownModal.js.map +0 -1
  232. package/dist/components/markdownEditor/MarkdownPreview.d.ts +0 -9
  233. package/dist/components/markdownEditor/MarkdownPreview.d.ts.map +0 -1
  234. package/dist/components/markdownEditor/MarkdownPreview.js +0 -45
  235. package/dist/components/markdownEditor/MarkdownPreview.js.map +0 -1
  236. package/dist/components/markdownEditor/MarkdownPreviewLight.d.ts +0 -7
  237. package/dist/components/markdownEditor/MarkdownPreviewLight.d.ts.map +0 -1
  238. package/dist/components/markdownEditor/MarkdownPreviewLight.js +0 -53
  239. package/dist/components/markdownEditor/MarkdownPreviewLight.js.map +0 -1
  240. package/dist/components/markdownEditor/editor.css +0 -787
  241. package/dist/components/markdownEditor/images/emoji/1F600.png +0 -0
  242. package/dist/components/markdownEditor/images/emoji/1F641.png +0 -0
  243. package/dist/components/markdownEditor/images/emoji/1F642.png +0 -0
  244. package/dist/components/markdownEditor/images/emoji/2764.png +0 -0
  245. package/dist/components/markdownEditor/images/icons/arrow-clockwise.svg +0 -4
  246. package/dist/components/markdownEditor/images/icons/arrow-counterclockwise.svg +0 -4
  247. package/dist/components/markdownEditor/images/icons/chat-square-quote.svg +0 -4
  248. package/dist/components/markdownEditor/images/icons/chevron-down.svg +0 -3
  249. package/dist/components/markdownEditor/images/icons/code.svg +0 -3
  250. package/dist/components/markdownEditor/images/icons/journal-code.svg +0 -5
  251. package/dist/components/markdownEditor/images/icons/journal-text.svg +0 -5
  252. package/dist/components/markdownEditor/images/icons/justify.svg +0 -3
  253. package/dist/components/markdownEditor/images/icons/link.svg +0 -4
  254. package/dist/components/markdownEditor/images/icons/list-ol.svg +0 -4
  255. package/dist/components/markdownEditor/images/icons/list-ul.svg +0 -3
  256. package/dist/components/markdownEditor/images/icons/pencil-fill.svg +0 -3
  257. package/dist/components/markdownEditor/images/icons/text-center.svg +0 -3
  258. package/dist/components/markdownEditor/images/icons/text-left.svg +0 -3
  259. package/dist/components/markdownEditor/images/icons/text-paragraph.svg +0 -3
  260. package/dist/components/markdownEditor/images/icons/text-right.svg +0 -3
  261. package/dist/components/markdownEditor/images/icons/type-bold.svg +0 -3
  262. package/dist/components/markdownEditor/images/icons/type-h1.svg +0 -3
  263. package/dist/components/markdownEditor/images/icons/type-h2.svg +0 -3
  264. package/dist/components/markdownEditor/images/icons/type-h3.svg +0 -3
  265. package/dist/components/markdownEditor/images/icons/type-h4.svg +0 -13
  266. package/dist/components/markdownEditor/images/icons/type-italic.svg +0 -3
  267. package/dist/components/markdownEditor/images/icons/type-strikethrough.svg +0 -3
  268. package/dist/components/markdownEditor/images/icons/type-underline.svg +0 -3
  269. package/dist/components/markdownEditor/index.d.ts +0 -4
  270. package/dist/components/markdownEditor/index.d.ts.map +0 -1
  271. package/dist/components/markdownEditor/index.js +0 -10
  272. package/dist/components/markdownEditor/index.js.map +0 -1
  273. package/dist/components/markdownEditor/plugins/AutoLinkPlugin.d.ts +0 -2
  274. package/dist/components/markdownEditor/plugins/AutoLinkPlugin.d.ts.map +0 -1
  275. package/dist/components/markdownEditor/plugins/AutoLinkPlugin.js +0 -31
  276. package/dist/components/markdownEditor/plugins/AutoLinkPlugin.js.map +0 -1
  277. package/dist/components/markdownEditor/plugins/ControlledEditorPlugin.d.ts +0 -8
  278. package/dist/components/markdownEditor/plugins/ControlledEditorPlugin.d.ts.map +0 -1
  279. package/dist/components/markdownEditor/plugins/ControlledEditorPlugin.js +0 -19
  280. package/dist/components/markdownEditor/plugins/ControlledEditorPlugin.js.map +0 -1
  281. package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.d.ts +0 -6
  282. package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.d.ts.map +0 -1
  283. package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.js +0 -310
  284. package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.js.map +0 -1
  285. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.d.ts +0 -2
  286. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.d.ts.map +0 -1
  287. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.js +0 -19
  288. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.js.map +0 -1
  289. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.d.ts +0 -2
  290. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.d.ts.map +0 -1
  291. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.js +0 -21
  292. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.js.map +0 -1
  293. package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.d.ts +0 -2
  294. package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.d.ts.map +0 -1
  295. package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.js +0 -29
  296. package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.js.map +0 -1
  297. package/dist/components/markdownEditor/plugins/ListMaxIndentLevelPlugin.d.ts +0 -2
  298. package/dist/components/markdownEditor/plugins/ListMaxIndentLevelPlugin.d.ts.map +0 -1
  299. package/dist/components/markdownEditor/plugins/ListMaxIndentLevelPlugin.js +0 -45
  300. package/dist/components/markdownEditor/plugins/ListMaxIndentLevelPlugin.js.map +0 -1
  301. package/dist/components/markdownEditor/plugins/MarkdownTransformers.d.ts +0 -12
  302. package/dist/components/markdownEditor/plugins/MarkdownTransformers.d.ts.map +0 -1
  303. package/dist/components/markdownEditor/plugins/MarkdownTransformers.js +0 -85
  304. package/dist/components/markdownEditor/plugins/MarkdownTransformers.js.map +0 -1
  305. package/dist/components/markdownEditor/plugins/ReadOnlyPlugin.d.ts +0 -6
  306. package/dist/components/markdownEditor/plugins/ReadOnlyPlugin.d.ts.map +0 -1
  307. package/dist/components/markdownEditor/plugins/ReadOnlyPlugin.js +0 -12
  308. package/dist/components/markdownEditor/plugins/ReadOnlyPlugin.js.map +0 -1
  309. package/dist/components/markdownEditor/plugins/ToolbarPlugin.d.ts +0 -7
  310. package/dist/components/markdownEditor/plugins/ToolbarPlugin.d.ts.map +0 -1
  311. package/dist/components/markdownEditor/plugins/ToolbarPlugin.js +0 -282
  312. package/dist/components/markdownEditor/plugins/ToolbarPlugin.js.map +0 -1
  313. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.d.ts +0 -27
  314. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.d.ts.map +0 -1
  315. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.js +0 -158
  316. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.js.map +0 -1
  317. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodePlugin.d.ts +0 -4
  318. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodePlugin.d.ts.map +0 -1
  319. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodePlugin.js +0 -21
  320. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodePlugin.js.map +0 -1
  321. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodeTransformer.d.ts +0 -3
  322. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodeTransformer.d.ts.map +0 -1
  323. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodeTransformer.js +0 -71
  324. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodeTransformer.js.map +0 -1
  325. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.d.ts +0 -5
  326. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.d.ts.map +0 -1
  327. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.js +0 -190
  328. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.js.map +0 -1
  329. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.types.d.ts +0 -11
  330. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.types.d.ts.map +0 -1
  331. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.types.js +0 -3
  332. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.types.js.map +0 -1
  333. package/dist/components/markdownEditor/plugins/emoji/EmojiNode.d.ts +0 -24
  334. package/dist/components/markdownEditor/plugins/emoji/EmojiNode.d.ts.map +0 -1
  335. package/dist/components/markdownEditor/plugins/emoji/EmojiNode.js +0 -66
  336. package/dist/components/markdownEditor/plugins/emoji/EmojiNode.js.map +0 -1
  337. package/dist/components/markdownEditor/plugins/emoji/EmojiNodeTransform.d.ts +0 -4
  338. package/dist/components/markdownEditor/plugins/emoji/EmojiNodeTransform.d.ts.map +0 -1
  339. package/dist/components/markdownEditor/plugins/emoji/EmojiNodeTransform.js +0 -35
  340. package/dist/components/markdownEditor/plugins/emoji/EmojiNodeTransform.js.map +0 -1
  341. package/dist/components/markdownEditor/plugins/emoji/EmojiPickerPlugin.d.ts +0 -9
  342. package/dist/components/markdownEditor/plugins/emoji/EmojiPickerPlugin.d.ts.map +0 -1
  343. package/dist/components/markdownEditor/plugins/emoji/EmojiPickerPlugin.js +0 -103
  344. package/dist/components/markdownEditor/plugins/emoji/EmojiPickerPlugin.js.map +0 -1
  345. package/dist/components/markdownEditor/plugins/emoji/EmojisPlugin.d.ts +0 -10
  346. package/dist/components/markdownEditor/plugins/emoji/EmojisPlugin.d.ts.map +0 -1
  347. package/dist/components/markdownEditor/plugins/emoji/EmojisPlugin.js +0 -59
  348. package/dist/components/markdownEditor/plugins/emoji/EmojisPlugin.js.map +0 -1
  349. package/dist/components/markdownEditor/plugins/index.d.ts +0 -7
  350. package/dist/components/markdownEditor/plugins/index.d.ts.map +0 -1
  351. package/dist/components/markdownEditor/plugins/index.js +0 -16
  352. package/dist/components/markdownEditor/plugins/index.js.map +0 -1
  353. package/dist/components/markdownEditor/theme.d.ts +0 -66
  354. package/dist/components/markdownEditor/theme.d.ts.map +0 -1
  355. package/dist/components/markdownEditor/theme.js +0 -69
  356. package/dist/components/markdownEditor/theme.js.map +0 -1
  357. package/dist/components/reporting/ChartReport.d.ts +0 -8
  358. package/dist/components/reporting/ChartReport.d.ts.map +0 -1
  359. package/dist/components/reporting/ChartReport.js +0 -81
  360. package/dist/components/reporting/ChartReport.js.map +0 -1
  361. package/dist/components/reporting/ReportFilter.d.ts +0 -9
  362. package/dist/components/reporting/ReportFilter.d.ts.map +0 -1
  363. package/dist/components/reporting/ReportFilter.js +0 -52
  364. package/dist/components/reporting/ReportFilter.js.map +0 -1
  365. package/dist/components/reporting/ReportFilterField.d.ts +0 -9
  366. package/dist/components/reporting/ReportFilterField.d.ts.map +0 -1
  367. package/dist/components/reporting/ReportFilterField.js +0 -156
  368. package/dist/components/reporting/ReportFilterField.js.map +0 -1
  369. package/dist/components/reporting/ReportOutput.d.ts +0 -8
  370. package/dist/components/reporting/ReportOutput.d.ts.map +0 -1
  371. package/dist/components/reporting/ReportOutput.js +0 -177
  372. package/dist/components/reporting/ReportOutput.js.map +0 -1
  373. package/dist/components/reporting/ReportWithFilter.d.ts +0 -7
  374. package/dist/components/reporting/ReportWithFilter.d.ts.map +0 -1
  375. package/dist/components/reporting/ReportWithFilter.js +0 -65
  376. package/dist/components/reporting/ReportWithFilter.js.map +0 -1
  377. package/dist/components/reporting/TableReport.d.ts +0 -8
  378. package/dist/components/reporting/TableReport.d.ts.map +0 -1
  379. package/dist/components/reporting/TableReport.js +0 -30
  380. package/dist/components/reporting/TableReport.js.map +0 -1
  381. package/dist/components/reporting/TreeReport.d.ts +0 -8
  382. package/dist/components/reporting/TreeReport.d.ts.map +0 -1
  383. package/dist/components/reporting/TreeReport.js +0 -89
  384. package/dist/components/reporting/TreeReport.js.map +0 -1
  385. package/dist/components/reporting/index.d.ts +0 -5
  386. package/dist/components/reporting/index.d.ts.map +0 -1
  387. package/dist/components/reporting/index.js +0 -12
  388. package/dist/components/reporting/index.js.map +0 -1
  389. package/dist/components/wrapper/Drawers.d.ts +0 -5
  390. package/dist/components/wrapper/Drawers.d.ts.map +0 -1
  391. package/dist/components/wrapper/Drawers.js +0 -54
  392. package/dist/components/wrapper/Drawers.js.map +0 -1
  393. package/dist/components/wrapper/SiteWrapper.d.ts +0 -15
  394. package/dist/components/wrapper/SiteWrapper.d.ts.map +0 -1
  395. package/dist/components/wrapper/SiteWrapper.js +0 -60
  396. package/dist/components/wrapper/SiteWrapper.js.map +0 -1
  397. package/dist/components/wrapper/TabPanel.d.ts +0 -9
  398. package/dist/components/wrapper/TabPanel.d.ts.map +0 -1
  399. package/dist/components/wrapper/TabPanel.js +0 -20
  400. package/dist/components/wrapper/TabPanel.js.map +0 -1
  401. package/dist/donationComponents/components/BankForm.d.ts +0 -14
  402. package/dist/donationComponents/components/BankForm.d.ts.map +0 -1
  403. package/dist/donationComponents/components/BankForm.js +0 -126
  404. package/dist/donationComponents/components/BankForm.js.map +0 -1
  405. package/dist/donationComponents/components/CardForm.d.ts +0 -13
  406. package/dist/donationComponents/components/CardForm.d.ts.map +0 -1
  407. package/dist/donationComponents/components/CardForm.js +0 -122
  408. package/dist/donationComponents/components/CardForm.js.map +0 -1
  409. package/dist/donationComponents/components/DonationForm.d.ts +0 -15
  410. package/dist/donationComponents/components/DonationForm.d.ts.map +0 -1
  411. package/dist/donationComponents/components/DonationForm.js +0 -199
  412. package/dist/donationComponents/components/DonationForm.js.map +0 -1
  413. package/dist/donationComponents/components/FundDonation.d.ts +0 -12
  414. package/dist/donationComponents/components/FundDonation.d.ts.map +0 -1
  415. package/dist/donationComponents/components/FundDonation.js +0 -32
  416. package/dist/donationComponents/components/FundDonation.js.map +0 -1
  417. package/dist/donationComponents/components/FundDonations.d.ts +0 -11
  418. package/dist/donationComponents/components/FundDonations.d.ts.map +0 -1
  419. package/dist/donationComponents/components/FundDonations.js +0 -33
  420. package/dist/donationComponents/components/FundDonations.js.map +0 -1
  421. package/dist/donationComponents/components/NonAuthDonation.d.ts +0 -12
  422. package/dist/donationComponents/components/NonAuthDonation.d.ts.map +0 -1
  423. package/dist/donationComponents/components/NonAuthDonation.js +0 -27
  424. package/dist/donationComponents/components/NonAuthDonation.js.map +0 -1
  425. package/dist/donationComponents/components/NonAuthDonationInner.d.ts +0 -12
  426. package/dist/donationComponents/components/NonAuthDonationInner.d.ts.map +0 -1
  427. package/dist/donationComponents/components/NonAuthDonationInner.js +0 -277
  428. package/dist/donationComponents/components/NonAuthDonationInner.js.map +0 -1
  429. package/dist/donationComponents/components/PaymentMethods.d.ts +0 -14
  430. package/dist/donationComponents/components/PaymentMethods.d.ts.map +0 -1
  431. package/dist/donationComponents/components/PaymentMethods.js +0 -84
  432. package/dist/donationComponents/components/PaymentMethods.js.map +0 -1
  433. package/dist/donationComponents/components/RecurringDonations.d.ts +0 -10
  434. package/dist/donationComponents/components/RecurringDonations.d.ts.map +0 -1
  435. package/dist/donationComponents/components/RecurringDonations.js +0 -93
  436. package/dist/donationComponents/components/RecurringDonations.js.map +0 -1
  437. package/dist/donationComponents/components/RecurringDonationsEdit.d.ts +0 -11
  438. package/dist/donationComponents/components/RecurringDonationsEdit.d.ts.map +0 -1
  439. package/dist/donationComponents/components/RecurringDonationsEdit.js +0 -66
  440. package/dist/donationComponents/components/RecurringDonationsEdit.js.map +0 -1
  441. package/dist/donationComponents/components/index.d.ts +0 -11
  442. package/dist/donationComponents/components/index.d.ts.map +0 -1
  443. package/dist/donationComponents/components/index.js +0 -24
  444. package/dist/donationComponents/components/index.js.map +0 -1
  445. package/dist/donationComponents/index.d.ts +0 -3
  446. package/dist/donationComponents/index.d.ts.map +0 -1
  447. package/dist/donationComponents/index.js +0 -21
  448. package/dist/donationComponents/index.js.map +0 -1
  449. package/dist/donationComponents/modals/DonationPreviewModal.d.ts +0 -15
  450. package/dist/donationComponents/modals/DonationPreviewModal.d.ts.map +0 -1
  451. package/dist/donationComponents/modals/DonationPreviewModal.js +0 -33
  452. package/dist/donationComponents/modals/DonationPreviewModal.js.map +0 -1
  453. package/dist/helpers/ApiHelper.d.ts +0 -18
  454. package/dist/helpers/ApiHelper.d.ts.map +0 -1
  455. package/dist/helpers/ApiHelper.js +0 -123
  456. package/dist/helpers/ApiHelper.js.map +0 -1
  457. package/dist/helpers/CommonEnvironmentHelper.d.ts +0 -21
  458. package/dist/helpers/CommonEnvironmentHelper.d.ts.map +0 -1
  459. package/dist/helpers/CommonEnvironmentHelper.js +0 -100
  460. package/dist/helpers/CommonEnvironmentHelper.js.map +0 -1
  461. package/dist/helpers/DonationHelper.d.ts +0 -8
  462. package/dist/helpers/DonationHelper.d.ts.map +0 -1
  463. package/dist/helpers/DonationHelper.js +0 -33
  464. package/dist/helpers/DonationHelper.js.map +0 -1
  465. package/dist/helpers/ReportHelper.d.ts +0 -5
  466. package/dist/helpers/ReportHelper.d.ts.map +0 -1
  467. package/dist/helpers/ReportHelper.js +0 -37
  468. package/dist/helpers/ReportHelper.js.map +0 -1
  469. package/dist/pageComponents/LoginPage.d.ts +0 -25
  470. package/dist/pageComponents/LoginPage.d.ts.map +0 -1
  471. package/dist/pageComponents/LoginPage.js +0 -288
  472. package/dist/pageComponents/LoginPage.js.map +0 -1
  473. package/dist/pageComponents/LogoutPage.d.ts +0 -9
  474. package/dist/pageComponents/LogoutPage.d.ts.map +0 -1
  475. package/dist/pageComponents/LogoutPage.js +0 -37
  476. package/dist/pageComponents/LogoutPage.js.map +0 -1
  477. package/dist/pageComponents/components/Forgot.d.ts +0 -8
  478. package/dist/pageComponents/components/Forgot.d.ts.map +0 -1
  479. package/dist/pageComponents/components/Forgot.js +0 -53
  480. package/dist/pageComponents/components/Forgot.js.map +0 -1
  481. package/dist/pageComponents/components/Login.d.ts +0 -15
  482. package/dist/pageComponents/components/Login.d.ts.map +0 -1
  483. package/dist/pageComponents/components/Login.js +0 -73
  484. package/dist/pageComponents/components/Login.js.map +0 -1
  485. package/dist/pageComponents/components/LoginSetPassword.d.ts +0 -13
  486. package/dist/pageComponents/components/LoginSetPassword.d.ts.map +0 -1
  487. package/dist/pageComponents/components/LoginSetPassword.js +0 -112
  488. package/dist/pageComponents/components/LoginSetPassword.js.map +0 -1
  489. package/dist/pageComponents/components/Register.d.ts +0 -12
  490. package/dist/pageComponents/components/Register.d.ts.map +0 -1
  491. package/dist/pageComponents/components/Register.js +0 -95
  492. package/dist/pageComponents/components/Register.js.map +0 -1
  493. package/dist/pageComponents/components/SelectChurchModal.d.ts +0 -14
  494. package/dist/pageComponents/components/SelectChurchModal.d.ts.map +0 -1
  495. package/dist/pageComponents/components/SelectChurchModal.js +0 -37
  496. package/dist/pageComponents/components/SelectChurchModal.js.map +0 -1
  497. package/dist/pageComponents/components/SelectChurchRegister.d.ts +0 -11
  498. package/dist/pageComponents/components/SelectChurchRegister.d.ts.map +0 -1
  499. package/dist/pageComponents/components/SelectChurchRegister.js +0 -89
  500. package/dist/pageComponents/components/SelectChurchRegister.js.map +0 -1
  501. package/dist/pageComponents/components/SelectChurchSearch.d.ts +0 -10
  502. package/dist/pageComponents/components/SelectChurchSearch.d.ts.map +0 -1
  503. package/dist/pageComponents/components/SelectChurchSearch.js +0 -58
  504. package/dist/pageComponents/components/SelectChurchSearch.js.map +0 -1
  505. package/dist/pageComponents/components/SelectableChurch.d.ts +0 -9
  506. package/dist/pageComponents/components/SelectableChurch.d.ts.map +0 -1
  507. package/dist/pageComponents/components/SelectableChurch.js +0 -18
  508. package/dist/pageComponents/components/SelectableChurch.js.map +0 -1
  509. package/dist/pageComponents/index.d.ts +0 -4
  510. package/dist/pageComponents/index.d.ts.map +0 -1
  511. package/dist/pageComponents/index.js +0 -10
  512. package/dist/pageComponents/index.js.map +0 -1
  513. package/src/components/markdownEditor/Editor.tsx +0 -150
  514. package/src/components/markdownEditor/IconNamesList.ts +0 -14
  515. package/src/components/markdownEditor/MarkdownEditor.tsx +0 -18
  516. package/src/components/markdownEditor/MarkdownModal.tsx +0 -49
  517. package/src/components/markdownEditor/MarkdownPreview.tsx +0 -18
  518. package/src/components/markdownEditor/MarkdownPreviewLight.tsx +0 -53
  519. package/src/components/markdownEditor/editor.css +0 -787
  520. package/src/components/markdownEditor/images/emoji/1F600.png +0 -0
  521. package/src/components/markdownEditor/images/emoji/1F641.png +0 -0
  522. package/src/components/markdownEditor/images/emoji/1F642.png +0 -0
  523. package/src/components/markdownEditor/images/emoji/2764.png +0 -0
  524. package/src/components/markdownEditor/images/icons/arrow-clockwise.svg +0 -4
  525. package/src/components/markdownEditor/images/icons/arrow-counterclockwise.svg +0 -4
  526. package/src/components/markdownEditor/images/icons/chat-square-quote.svg +0 -4
  527. package/src/components/markdownEditor/images/icons/chevron-down.svg +0 -3
  528. package/src/components/markdownEditor/images/icons/code.svg +0 -3
  529. package/src/components/markdownEditor/images/icons/journal-code.svg +0 -5
  530. package/src/components/markdownEditor/images/icons/journal-text.svg +0 -5
  531. package/src/components/markdownEditor/images/icons/justify.svg +0 -3
  532. package/src/components/markdownEditor/images/icons/link.svg +0 -4
  533. package/src/components/markdownEditor/images/icons/list-ol.svg +0 -4
  534. package/src/components/markdownEditor/images/icons/list-ul.svg +0 -3
  535. package/src/components/markdownEditor/images/icons/pencil-fill.svg +0 -3
  536. package/src/components/markdownEditor/images/icons/text-center.svg +0 -3
  537. package/src/components/markdownEditor/images/icons/text-left.svg +0 -3
  538. package/src/components/markdownEditor/images/icons/text-paragraph.svg +0 -3
  539. package/src/components/markdownEditor/images/icons/text-right.svg +0 -3
  540. package/src/components/markdownEditor/images/icons/type-bold.svg +0 -3
  541. package/src/components/markdownEditor/images/icons/type-h1.svg +0 -3
  542. package/src/components/markdownEditor/images/icons/type-h2.svg +0 -3
  543. package/src/components/markdownEditor/images/icons/type-h3.svg +0 -3
  544. package/src/components/markdownEditor/images/icons/type-h4.svg +0 -13
  545. package/src/components/markdownEditor/images/icons/type-italic.svg +0 -3
  546. package/src/components/markdownEditor/images/icons/type-strikethrough.svg +0 -3
  547. package/src/components/markdownEditor/images/icons/type-underline.svg +0 -3
  548. package/src/components/markdownEditor/index.ts +0 -3
  549. package/src/components/markdownEditor/plugins/AutoLinkPlugin.tsx +0 -35
  550. package/src/components/markdownEditor/plugins/ControlledEditorPlugin.tsx +0 -24
  551. package/src/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.tsx +0 -445
  552. package/src/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.tsx +0 -17
  553. package/src/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.tsx +0 -17
  554. package/src/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.tsx +0 -33
  555. package/src/components/markdownEditor/plugins/ListMaxIndentLevelPlugin.tsx +0 -68
  556. package/src/components/markdownEditor/plugins/MarkdownTransformers.ts +0 -106
  557. package/src/components/markdownEditor/plugins/ReadOnlyPlugin.tsx +0 -15
  558. package/src/components/markdownEditor/plugins/ToolbarPlugin.tsx +0 -424
  559. package/src/components/markdownEditor/plugins/customLink/CustomLinkNode.tsx +0 -224
  560. package/src/components/markdownEditor/plugins/customLink/CustomLinkNodePlugin.tsx +0 -32
  561. package/src/components/markdownEditor/plugins/customLink/CustomLinkNodeTransformer.tsx +0 -102
  562. package/src/components/markdownEditor/plugins/customLink/FloatingLinkEditor.tsx +0 -270
  563. package/src/components/markdownEditor/plugins/customLink/FloatingLinkEditor.types.ts +0 -11
  564. package/src/components/markdownEditor/plugins/emoji/EmojiNode.tsx +0 -95
  565. package/src/components/markdownEditor/plugins/emoji/EmojiNodeTransform.ts +0 -41
  566. package/src/components/markdownEditor/plugins/emoji/EmojiPickerPlugin.tsx +0 -152
  567. package/src/components/markdownEditor/plugins/emoji/EmojisPlugin.tsx +0 -70
  568. package/src/components/markdownEditor/plugins/index.ts +0 -6
  569. package/src/components/markdownEditor/theme.ts +0 -65
  570. package/src/components/reporting/ChartReport.tsx +0 -89
  571. package/src/components/reporting/ReportFilter.tsx +0 -56
  572. package/src/components/reporting/ReportFilterField.tsx +0 -163
  573. package/src/components/reporting/ReportOutput.tsx +0 -168
  574. package/src/components/reporting/ReportWithFilter.tsx +0 -72
  575. package/src/components/reporting/TableReport.tsx +0 -44
  576. package/src/components/reporting/TreeReport.tsx +0 -103
  577. package/src/components/reporting/index.ts +0 -4
  578. package/src/components/wrapper/Drawers.tsx +0 -62
  579. package/src/components/wrapper/SiteWrapper.tsx +0 -99
  580. package/src/components/wrapper/TabPanel.tsx +0 -32
  581. package/src/donationComponents/components/BankForm.tsx +0 -163
  582. package/src/donationComponents/components/CardForm.tsx +0 -104
  583. package/src/donationComponents/components/DonationForm.tsx +0 -260
  584. package/src/donationComponents/components/FundDonation.tsx +0 -59
  585. package/src/donationComponents/components/FundDonations.tsx +0 -44
  586. package/src/donationComponents/components/NonAuthDonation.tsx +0 -34
  587. package/src/donationComponents/components/NonAuthDonationInner.tsx +0 -300
  588. package/src/donationComponents/components/PaymentMethods.tsx +0 -133
  589. package/src/donationComponents/components/RecurringDonations.tsx +0 -117
  590. package/src/donationComponents/components/RecurringDonationsEdit.tsx +0 -96
  591. package/src/donationComponents/components/index.tsx +0 -10
  592. package/src/donationComponents/index.ts +0 -2
  593. package/src/donationComponents/modals/DonationPreviewModal.tsx +0 -70
  594. package/src/helpers/ApiHelper.ts +0 -127
  595. package/src/helpers/CommonEnvironmentHelper.ts +0 -98
  596. package/src/helpers/DonationHelper.ts +0 -26
  597. package/src/helpers/ReportHelper.ts +0 -34
  598. package/src/pageComponents/LoginPage.tsx +0 -284
  599. package/src/pageComponents/LogoutPage.tsx +0 -43
  600. package/src/pageComponents/components/Forgot.tsx +0 -81
  601. package/src/pageComponents/components/Login.tsx +0 -62
  602. package/src/pageComponents/components/LoginSetPassword.tsx +0 -98
  603. package/src/pageComponents/components/Register.tsx +0 -103
  604. package/src/pageComponents/components/SelectChurchModal.tsx +0 -58
  605. package/src/pageComponents/components/SelectChurchRegister.tsx +0 -87
  606. package/src/pageComponents/components/SelectChurchSearch.tsx +0 -71
  607. package/src/pageComponents/components/SelectableChurch.tsx +0 -40
  608. package/src/pageComponents/index.ts +0 -3
@@ -1,43 +0,0 @@
1
- "use client";
2
-
3
- import React from "react";
4
- import { useCookies, CookiesProvider } from "react-cookie"
5
- import { ApiHelper, UserContextInterface } from "../helpers";
6
-
7
- interface Props { context?: UserContextInterface, handleRedirect?: (url: string) => void }
8
-
9
- const LogoutPageContent: React.FC<Props> = (props) => {
10
- const [, , removeCookie] = useCookies(["jwt", "email", "name", "lastChurchId"]);
11
-
12
- removeCookie("jwt");
13
- removeCookie("email");
14
- removeCookie("name");
15
- removeCookie("lastChurchId");
16
-
17
- ApiHelper.clearPermissions();
18
- props.context?.setUser(null);
19
- props.context?.setPerson(null);
20
- props.context?.setUserChurches(null);
21
- props.context?.setUserChurch(null);
22
-
23
- setTimeout(() => {
24
- // a must check for Nextjs
25
- if (typeof window !== "undefined") {
26
- // Use handleRedirect function if available, otherwise fallback to window.location
27
- if (props.handleRedirect) {
28
- props.handleRedirect("/");
29
- } else {
30
- window.location.href = "/";
31
- }
32
- }
33
- }, 300);
34
- return null;
35
- }
36
-
37
- export const LogoutPage: React.FC<Props> = (props) => {
38
- return (
39
- <CookiesProvider defaultSetOptions={{ path: '/' }}>
40
- <LogoutPageContent {...props} />
41
- </CookiesProvider>
42
- );
43
- }
@@ -1,81 +0,0 @@
1
- "use client";
2
-
3
- import React, { FormEventHandler } from "react";
4
- import { ApiHelper, Locale } from "../../helpers";
5
- import { ErrorMessages } from "../../components";
6
- import { ResetPasswordRequestInterface, ResetPasswordResponseInterface } from "@churchapps/helpers";
7
- import { Stack, TextField, Box, Typography } from "@mui/material";
8
- import LoadingButton from "@mui/lab/LoadingButton";
9
-
10
- interface Props {
11
- registerCallback: () => void,
12
- loginCallback: () => void
13
- }
14
-
15
- export const Forgot: React.FC<Props> = props => {
16
- const [errors, setErrors] = React.useState([]);
17
- const [successMessage, setSuccessMessage] = React.useState<React.ReactElement>(null);
18
- const [email, setEmail] = React.useState("");
19
- const [isSubmitting, setIsSubmitting] = React.useState(false);
20
-
21
- const handleChange = (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>) => {
22
- setEmail(e.target.value);
23
- }
24
-
25
- const validateEmail = (email: string) => (/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(.\w{2,3})+$/.test(email))
26
-
27
- const validate = () => {
28
- const result = [];
29
- if (!email) result.push(Locale.label("login.validate.email"));
30
- else if (!validateEmail(email)) result.push(Locale.label("login.validate.email"));
31
- setErrors(result);
32
- return result.length === 0;
33
- }
34
-
35
- const reset: FormEventHandler = (e) => {
36
- e.preventDefault();
37
- if (validate()) {
38
- setIsSubmitting(true);
39
- let req: ResetPasswordRequestInterface = { userEmail: email };
40
- ApiHelper.postAnonymous("/users/forgot", req, "MembershipApi").then((resp: ResetPasswordResponseInterface) => {
41
- if (resp.emailed) {
42
- setErrors([]);
43
- setSuccessMessage(
44
- <Typography textAlign="center" marginTop="35px">
45
- {Locale.label("login.resetSent")} <br /><br /><a href="about:blank" className="text-decoration" onClick={(e) => { e.preventDefault(); props.loginCallback(); }}>{Locale.label("login.goLogin")}</a>
46
- </Typography>
47
- );
48
- setEmail("");
49
- } else {
50
- setErrors(["We could not find an account with this email address"]);
51
- setSuccessMessage(<></>);
52
- }
53
- }).finally(() => { setIsSubmitting(false); });
54
- }
55
- }
56
-
57
- return (
58
- <Box id="loginBox" sx={{ backgroundColor: "#FFF", border: "1px solid #CCC", borderRadius: "5px", padding: "20px" }}>
59
- <Typography component="h2" sx={{ fontSize: "32px", fontWeight: 500, lineHeight: 1.2, margin: "0 0 8px 0" }}>{Locale.label("login.resetPassword")}</Typography>
60
-
61
- <form onSubmit={reset}>
62
- <p>{Locale.label("login.resetInstructions")}</p>
63
- <ErrorMessages errors={errors} />
64
- {successMessage}
65
- {!successMessage && (
66
- <>
67
- <TextField fullWidth autoFocus label={Locale.label("login.email")} aria-label="email" id="email" name="email" value={email} onChange={handleChange} placeholder={Locale.label("login.email")} onKeyDown={(e: React.KeyboardEvent<HTMLInputElement>) => e.key === "Enter" && reset} />
68
- <br />
69
- <Box sx={{ textAlign: "right", marginY: 1 }}>
70
- <a href="about:blank" className="text-decoration" onClick={(e) => { e.preventDefault(); props.registerCallback(); }}>{Locale.label("login.register")}</a> &nbsp; | &nbsp;
71
- <a href="about:blank" className="text-decoration" onClick={(e) => { e.preventDefault(); props.loginCallback(); }}>{Locale.label("login.login")}</a>&nbsp;
72
- </Box>
73
- <Stack direction="row" sx={{ marginTop: 1.5 }} spacing={1} justifyContent="flex-end">
74
- <LoadingButton loading={isSubmitting} variant="contained" type="submit" disabled={isSubmitting}>{Locale.label("login.reset")}</LoadingButton>
75
- </Stack>
76
- </>
77
- )}
78
- </form>
79
- </Box>
80
- );
81
- }
@@ -1,62 +0,0 @@
1
- "use client";
2
-
3
- import React, { useState } from "react";
4
- import { InputBox } from "../../components";
5
- import { TextField, Box, PaperProps, InputAdornment, IconButton, Icon } from "@mui/material";
6
- import { Locale } from "../../helpers/Locale";
7
-
8
- interface Props {
9
- //registerCallback: () => void,
10
- //loginCallback: () => void
11
- login: (data: any) => void,
12
- isSubmitting: boolean,
13
- setShowRegister: (showRegister: boolean) => void,
14
- setShowForgot: (showForgot: boolean) => void,
15
- setErrors: (errors: string[]) => void;
16
- mainContainerCssProps?: PaperProps;
17
- defaultEmail?: string;
18
- defaultPassword?: string;
19
- }
20
-
21
- export const Login: React.FC<Props> = ({ mainContainerCssProps = {}, ...props }) => {
22
- const [email, setEmail] = React.useState(props.defaultEmail || "");
23
- const [password, setPassword] = React.useState(props.defaultPassword || "");
24
- const [showPassword, setShowPassword] = useState(false);
25
-
26
- const validateEmail = (email: string) => (/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(.\w{2,3})+$/.test(email))
27
-
28
- const validate = () => {
29
- const result = [];
30
- if (!email) result.push(Locale.label("login.validate.email"));
31
- else if (!validateEmail(email)) result.push(Locale.label("login.validate.email"));
32
- if (!password) result.push(Locale.label("login.validate.password"));
33
- props.setErrors(result);
34
- return result.length === 0;
35
- }
36
-
37
- const submitLogin = () => {
38
- if (validate()) props.login({ email, password });
39
- }
40
-
41
- const getRegisterLink = () => (
42
- <><a href="about:blank" className="text-decoration" onClick={handleShowRegister}>{Locale.label("login.register")}</a> &nbsp; | &nbsp; </>
43
- )
44
-
45
- const handleShowRegister = (e: React.MouseEvent) => {
46
- e.preventDefault();
47
- props.setShowRegister(true);
48
- }
49
-
50
- return (
51
- <InputBox headerText={Locale.label("login.signInTitle")} saveFunction={submitLogin} saveButtonType="submit" saveText={props.isSubmitting ? Locale.label("common.pleaseWait") : Locale.label("login.signIn")} isSubmitting={props.isSubmitting} mainContainerCssProps={mainContainerCssProps}>
52
- <TextField fullWidth autoFocus name="email" type="email" label={Locale.label("login.email")} value={email} onChange={(e) => { e.preventDefault(); setEmail(e.target.value) }} />
53
- <TextField fullWidth name="email" type={showPassword ? "text" : "password"} label={Locale.label("login.password")} value={password} onChange={(e) => { e.preventDefault(); setPassword(e.target.value) }} InputProps={{
54
- endAdornment: (<InputAdornment position="end"><IconButton aria-label="toggle password visibility" onClick={() => { setShowPassword(!showPassword) }}>{showPassword ? <Icon>visibility</Icon> : <Icon>visibility_off</Icon>}</IconButton></InputAdornment>)
55
- }} />
56
- <Box sx={{ textAlign: "right", marginY: 1 }}>
57
- {getRegisterLink()}
58
- <a href="about:blank" className="text-decoration" onClick={(e) => { e.preventDefault(); props.setShowForgot(true); }}>{Locale.label("login.forgot")}</a>&nbsp;
59
- </Box>
60
- </InputBox>
61
- );
62
- }
@@ -1,98 +0,0 @@
1
- "use client";
2
-
3
- import React, { useState } from "react";
4
- import { InputBox } from "../../components";
5
- import { Icon, IconButton, InputAdornment, TextField, Typography } from "@mui/material";
6
- import { LoginResponseInterface, UserInterface } from "@churchapps/helpers";
7
- import { ApiHelper, Locale } from "../../helpers";
8
-
9
- interface Props {
10
- appName: string,
11
- appUrl: string,
12
- setErrors: (errors: string[]) => void,
13
- setShowForgot: (showForgot: boolean) => void,
14
- isSubmitting: boolean,
15
- auth: string,
16
- login: (data: any) => void,
17
- }
18
-
19
- export const LoginSetPassword: React.FC<Props> = props => {
20
- const [password, setPassword] = React.useState("");
21
- const [verifyPassword, setVerifyPassword] = React.useState("");
22
- const [user, setUser] = React.useState<UserInterface>(null);
23
- const [showPassword, setShowPassword] = useState(false);
24
- const [linkExpired, setLinkExpired] = React.useState(false);
25
-
26
- const validate = () => {
27
- const result = [];
28
- if (!password) result.push(Locale.label("login.validate.password"));
29
- else if (password.length < 8) result.push(Locale.label("login.validate.passwordLength"));
30
- else if (password !== verifyPassword) result.push(Locale.label("login.validate.passwordMatch"));
31
- props.setErrors(result);
32
- return result.length === 0;
33
- }
34
-
35
- const submitChangePassword = () => {
36
- if (linkExpired) {
37
- window.open("/login", "_blank");
38
- } else if (validate()) {
39
- submit();
40
- }
41
- }
42
-
43
- const loadUser = () => {
44
- ApiHelper.postAnonymous("/users/login", { authGuid: props.auth }, "MembershipApi").then((resp: LoginResponseInterface) => {
45
-
46
- console.log("RESPONSE", resp);
47
- if (resp.user) setUser(resp.user);
48
- else props.setShowForgot(true);
49
- }).catch(() => {
50
- props.setShowForgot(true);
51
- });
52
- }
53
-
54
- const submit = async () => {
55
- const resp = await ApiHelper.postAnonymous("/users/setPasswordGuid", { authGuid: props.auth, newPassword: password, appName: props.appName, appUrl: props.appUrl }, "MembershipApi");
56
- if (resp.success) props.login({ email: user.email, password });
57
- else props.setShowForgot(true);
58
- }
59
-
60
- React.useEffect(() => {
61
- //Get the timestamp from the URL
62
- const urlParams = new URLSearchParams(window.location.search);
63
- const timestampParam = urlParams.get("timestamp");
64
- if (timestampParam) {
65
- const linkTimestamp = parseInt(timestampParam, 10);
66
- const currentTime = Date.now();
67
-
68
- //Check if the link is expired (2 min)
69
- if (currentTime - linkTimestamp > 600000) {
70
- setLinkExpired(true);
71
- } else {
72
- loadUser();
73
- }
74
- } else {
75
- setLinkExpired(true); //No timestamp means link is invalid
76
- }
77
- }, []);
78
-
79
- return (
80
- <InputBox headerText={Locale.label("login.setPassword")} saveFunction={submitChangePassword} saveButtonType="submit" saveText={!linkExpired ? (props.isSubmitting || !user) ? Locale.label("common.pleaseWait") : Locale.label("login.signIn") : Locale.label("login.requestLink")} isSubmitting={props.isSubmitting}>
81
- {linkExpired ? (
82
- <>
83
- <Typography sx={{ color: "#c62828 !important", paddingBottom: 3 }}>{Locale.label("login.expiredLink")}</Typography>
84
- </>
85
- ) : (
86
- <>
87
- {user && <p style={{ marginTop: 0, marginBottom: 0 }}>{Locale.label("login.welcomeBack")} {user.firstName}.</p>}
88
- <TextField fullWidth name="password" type={showPassword ? "text" : "password"} label={Locale.label("login.setPassword")} value={password} onChange={(e) => { e.preventDefault(); setPassword(e.target.value) }} InputProps={{
89
- endAdornment: (<InputAdornment position="end"><IconButton aria-label="toggle password visibility" onClick={() => { setShowPassword(!showPassword) }}>{showPassword ? <Icon>visibility</Icon> : <Icon>visibility_off</Icon>}</IconButton></InputAdornment>)
90
- }} />
91
- <TextField fullWidth name="verifyPassword" type={showPassword ? "text" : "password"} label={Locale.label("login.verifyPassword")} value={verifyPassword} onChange={(e) => { e.preventDefault(); setVerifyPassword(e.target.value) }} InputProps={{
92
- endAdornment: (<InputAdornment position="end"><IconButton aria-label="toggle password visibility" onClick={() => { setShowPassword(!showPassword) }}>{showPassword ? <Icon>visibility</Icon> : <Icon>visibility_off</Icon>}</IconButton></InputAdornment>)
93
- }} />
94
- </>
95
- )}
96
- </InputBox>
97
- );
98
- }
@@ -1,103 +0,0 @@
1
- "use client";
2
-
3
- import React, { FormEventHandler } from "react";
4
- import { LoginResponseInterface, RegisterUserInterface, UserInterface } from "@churchapps/helpers";
5
- import { AnalyticsHelper, ApiHelper, Locale } from "../../helpers";
6
- import { ErrorMessages } from "../../components";
7
- import { Button, Stack, TextField, Link } from "@mui/material";
8
-
9
- interface Props {
10
- appName?: string,
11
- appUrl?: string,
12
- updateErrors: (errors: string[]) => void,
13
- loginCallback?: () => void
14
- userRegisteredCallback?: (user: UserInterface) => Promise<void>;
15
- }
16
-
17
- export const Register: React.FC<Props> = (props) => {
18
-
19
- const cleanAppUrl = () => {
20
- if (!props.appUrl) return null;
21
- else {
22
- const index = props.appUrl.indexOf("/", 9);
23
- if (index === -1) return props.appUrl;
24
- else return props.appUrl.substring(0, index);
25
- }
26
- }
27
-
28
- const [registered, setRegistered] = React.useState(false);
29
- const [user, setUser] = React.useState<RegisterUserInterface>({ firstName: "", lastName: "", email: "", appName: props.appName, appUrl: cleanAppUrl() });
30
- const [errors, setErrors] = React.useState([]);
31
- const [isSubmitting, setIsSubmitting] = React.useState(false);
32
-
33
- const handleRegisterErrors = (errors: string[]) => {
34
- props.updateErrors(errors)
35
- }
36
-
37
- const handleRegisterSuccess = (resp: LoginResponseInterface) => {
38
- setRegistered(true);
39
- AnalyticsHelper.logEvent("User", "Register");
40
- if (props.userRegisteredCallback) props.userRegisteredCallback(resp.user);
41
- }
42
-
43
- const validateEmail = (email: string) => (/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(.\w{2,3})+$/.test(email))
44
-
45
- const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
46
- const u = { ...user }
47
- switch (e.target.name) {
48
- case "firstName": u.firstName = e.target.value; break;
49
- case "lastName": u.lastName = e.target.value; break;
50
- case "email": u.email = e.target.value; break;
51
- }
52
- setUser(u);
53
- }
54
-
55
- const validate = () => {
56
- let errors = [];
57
- if (!user.email?.trim()) errors.push(Locale.label("login.validate.email"));
58
- else if (!validateEmail(user.email)) errors.push(Locale.label("login.validate.email"));
59
- if (!user.firstName?.trim()) errors.push(Locale.label("login.validate.firstName"));
60
- if (!user.lastName?.trim()) errors.push(Locale.label("login.validate.lastName"));
61
- setErrors(errors);
62
- return errors.length === 0;
63
- }
64
-
65
- const register: FormEventHandler = (e) => {
66
- e.preventDefault();
67
- props.updateErrors([])
68
- if (validate()) {
69
- setIsSubmitting(true);
70
- ApiHelper.postAnonymous("/users/register", user, "MembershipApi")
71
- .then((resp: any) => {
72
- if (resp.errors) handleRegisterErrors(resp.errors);
73
- else handleRegisterSuccess(resp);
74
- })
75
- .catch((e) => { props.updateErrors([e.toString()]); throw e; })
76
- .finally(() => {
77
- setIsSubmitting(false)
78
- });
79
- } else {
80
- e.preventDefault();
81
- }
82
- };
83
-
84
- const getForm = () => (<>
85
- <ErrorMessages errors={errors} />
86
- <form onSubmit={register}>
87
- <TextField fullWidth name="firstName" label="First Name" value={user.firstName} onChange={handleChange} />
88
- <TextField fullWidth name="lastName" label="Last Name" value={user.lastName} onChange={handleChange} />
89
- <TextField fullWidth type="email" name="email" label="Email" value={user.email} onChange={handleChange} />
90
- <br />
91
- <Stack direction="row" sx={{ marginTop: 1 }} spacing={1} justifyContent="end">
92
- {props.loginCallback && (<Button variant="text" onClick={(e) => { e.preventDefault(); props.loginCallback(); }}>{Locale.label("login.login")}</Button>)}
93
- <Button id="signInButton" variant="contained" disableElevation type="submit" disabled={isSubmitting} color="primary" onClick={register} sx={{ "&:focus": { outline: "none" } }}>
94
- {isSubmitting ? "Please wait..." : "Register"}
95
- </Button>
96
- </Stack>
97
- </form>
98
- </>)
99
-
100
- if (registered) return (<p>{Locale.label("login.registerThankYou")}</p>);
101
- else return getForm();
102
-
103
- };
@@ -1,58 +0,0 @@
1
- "use client";
2
-
3
- import React from "react";
4
- import { ChurchInterface, LoginUserChurchInterface } from "@churchapps/helpers";
5
- import { SelectChurchSearch } from "./SelectChurchSearch";
6
- import { SelectableChurch } from "./SelectableChurch";
7
- import { ErrorMessages } from "../../components"
8
- import { Dialog, DialogContent, DialogTitle, Icon, IconButton, Tooltip } from "@mui/material";
9
- import { Locale } from "../../helpers";
10
-
11
- interface Props {
12
- appName: string,
13
- show: boolean,
14
- userChurches?: LoginUserChurchInterface[],
15
- selectChurch: (churchId: string) => void,
16
- registeredChurchCallback?: (church: ChurchInterface) => void,
17
- errors?: string[],
18
- handleRedirect?: (url: string) => void
19
- }
20
-
21
- export const SelectChurchModal: React.FC<Props> = (props) => {
22
- const [showSearch, setShowSearch] = React.useState(false);
23
-
24
- const handleClose = () => {
25
- window.location.reload();
26
- }
27
-
28
- const getContents = () => {
29
- if (showSearch || props.userChurches?.length === 0) return <SelectChurchSearch selectChurch={props.selectChurch} registeredChurchCallback={props.registeredChurchCallback} appName={props.appName} />
30
- else return (<>
31
- {props.userChurches?.map(uc => (<SelectableChurch church={uc.church} selectChurch={props.selectChurch} key={uc.church.id} />))}
32
- <a href="about:blank" style={{ display: "block", textAlign: "center" }} onClick={(e) => { e.preventDefault(); setShowSearch(true); }}>{Locale.label("selectChurch.another")}</a>
33
- </>);
34
- }
35
-
36
- return (
37
- <Dialog open={props.show} onClose={handleClose}>
38
- <DialogTitle>{Locale.label("selectChurch.selectChurch")}
39
- </DialogTitle>
40
- <Tooltip title="Logout" arrow>
41
- <IconButton sx={{ position: "absolute", right: 8, top: 8 }} color="error" onClick={() => {
42
- // Use handleRedirect function if available, otherwise fallback to window.location
43
- if (props.handleRedirect) {
44
- props.handleRedirect("/logout");
45
- } else {
46
- window.location.href = "/logout";
47
- }
48
- }}>
49
- <Icon>logout</Icon>
50
- </IconButton>
51
- </Tooltip>
52
- <DialogContent sx={{ width: 500, maxWidth: "100%" }}>
53
- <ErrorMessages errors={props.errors} />
54
- {getContents()}
55
- </DialogContent>
56
- </Dialog>
57
- );
58
- };
@@ -1,87 +0,0 @@
1
- "use client";
2
-
3
- import React from "react";
4
- import { ApiHelper, Locale } from "../../helpers"
5
- import { ChurchInterface, RegisterChurchRequestInterface } from "@churchapps/helpers";
6
- import { ErrorMessages, InputBox } from "../../components"
7
- import { Grid, TextField } from "@mui/material";
8
-
9
- interface Props {
10
- initialChurchName: string,
11
- registeredChurchCallback?: (church: ChurchInterface) => void,
12
- selectChurch: (churchId: string) => void,
13
- appName: string
14
- }
15
-
16
- export const SelectChurchRegister: React.FC<Props> = (props) => {
17
- const suggestSubDomain = (name: string) => {
18
- let result = name.toLowerCase().replaceAll("christian", "").replaceAll("church", "").replaceAll(" ", "");
19
- return result;
20
- }
21
-
22
- const [church, setChurch] = React.useState<RegisterChurchRequestInterface>({ name: props.initialChurchName, appName: props.appName, subDomain: suggestSubDomain(props.initialChurchName) });
23
- const [errors, setErrors] = React.useState([]);
24
- const [isSubmitting, setIsSubmitting] = React.useState(false);
25
-
26
- const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
27
- const c = { ...church }
28
- switch (e.target.name) {
29
- case "churchName": c.name = e.target.value; break;
30
- case "subDomain": c.subDomain = e.target.value; break;
31
- case "address1": c.address1 = e.target.value; break;
32
- case "address2": c.address2 = e.target.value; break;
33
- case "city": c.city = e.target.value; break;
34
- case "state": c.state = e.target.value; break;
35
- case "zip": c.zip = e.target.value; break;
36
- case "country": c.country = e.target.value; break;
37
- }
38
- setChurch(c);
39
- }
40
-
41
- const validate = () => {
42
- let errors = [];
43
- if (!church.name?.trim()) errors.push(Locale.label("selectChurch.validate.name"));
44
- if (!church.address1?.trim()) errors.push(Locale.label("selectChurch.validate.address"));
45
- if (!church.city?.trim()) errors.push(Locale.label("selectChurch.validate.city"));
46
- if (!church.state?.trim()) errors.push(Locale.label("selectChurch.validate.state"));
47
- if (!church.zip?.trim()) errors.push(Locale.label("selectChurch.validate.zip"));
48
- if (!church.country?.trim()) errors.push(Locale.label("selectChurch.validate.country"));
49
- setErrors(errors);
50
- return errors.length === 0;
51
- }
52
-
53
- const handleSave = () => {
54
- if (validate()) {
55
- setIsSubmitting(true);
56
- const c = { ...church };
57
- if (!c.subDomain) c.subDomain = suggestSubDomain(c.name);
58
- ApiHelper.post("/churches/add", church, "MembershipApi").then(async resp => {
59
- setIsSubmitting(false);
60
- if (resp.errors !== undefined) setErrors(errors);
61
- else {
62
- if (props.registeredChurchCallback) props.registeredChurchCallback(resp);
63
- props.selectChurch(resp.id);
64
- }
65
- });
66
- }
67
- }
68
-
69
- return (
70
- <InputBox id="churchBox" saveFunction={handleSave} headerText={Locale.label("selectChurch.register")} headerIcon="church" isSubmitting={isSubmitting}>
71
- <ErrorMessages errors={errors} />
72
- <TextField required fullWidth name="churchName" label={Locale.label("selectChurch.name")} value={church.name} onChange={handleChange} />
73
-
74
- <TextField required fullWidth name="address1" label={Locale.label("selectChurch.address1")} value={church.address1} onChange={handleChange} />
75
- <Grid container spacing={3}>
76
- <Grid size={6}><TextField fullWidth name="address2" label={Locale.label("selectChurch.address2")} value={church.address2} onChange={handleChange} /></Grid>
77
- <Grid size={6}><TextField required fullWidth name="city" label={Locale.label("selectChurch.city")} value={church.city} onChange={handleChange} /></Grid>
78
- </Grid>
79
- <Grid container spacing={3}>
80
- <Grid size={6}><TextField required fullWidth name="state" label={Locale.label("selectChurch.state")} value={church.state} onChange={handleChange} /></Grid>
81
- <Grid size={6}><TextField required fullWidth name="zip" label={Locale.label("selectChurch.zip")} value={church.zip} onChange={handleChange} /></Grid>
82
- </Grid>
83
- <TextField required fullWidth name="country" label={Locale.label("selectChurch.country")} value={church.country} onChange={handleChange} />
84
- </InputBox>
85
- );
86
- };
87
-
@@ -1,71 +0,0 @@
1
- "use client";
2
-
3
- import { Button, TextField } from "@mui/material";
4
- import React from "react";
5
- import { ApiHelper, Locale } from "../../helpers"
6
- import { ChurchInterface } from "@churchapps/helpers";
7
- import { SelectableChurch } from "./SelectableChurch";
8
- import { SelectChurchRegister } from "./SelectChurchRegister";
9
-
10
- interface Props {
11
- selectChurch: (churchId: string) => void,
12
- registeredChurchCallback?: (church: ChurchInterface) => void,
13
- appName: string
14
- }
15
-
16
- export const SelectChurchSearch: React.FC<Props> = (props) => {
17
- const [searchText, setSearchText] = React.useState("");
18
- const [churches, setChurches] = React.useState<ChurchInterface[]>(null);
19
- const [showRegister, setShowRegister] = React.useState(false);
20
-
21
- const handleSubmit = (e: React.MouseEvent) => {
22
- if (e !== null) e.preventDefault();
23
- let term = searchText.trim();
24
- ApiHelper.post("/churches/search", { name: term }, "MembershipApi").then(data => setChurches(data));
25
- }
26
-
27
- const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => setSearchText(e.currentTarget.value);
28
-
29
- const handleKeyDown = (e: React.KeyboardEvent<any>) => { if (e.key === "Enter") { e.preventDefault(); handleSubmit(null); } }
30
-
31
- const handleRegisterClick = (e: React.MouseEvent) => {
32
- e.preventDefault();
33
- if (window.confirm(Locale.label("selectChurch.confirmRegister"))) {
34
- setShowRegister(true);
35
- }
36
- }
37
-
38
- const getRegisterLink = () => (
39
- <div>
40
- <a style={{ display: "block", textAlign: "center" }} href="about:blank" onClick={handleRegisterClick}>
41
- {Locale.label("selectChurch.register")}
42
- </a>
43
- </div>
44
- )
45
-
46
- const getChurches = () => {
47
- const result: React.ReactElement[] = [];
48
- churches.forEach(church => {
49
- result.push(<SelectableChurch church={church} selectChurch={props.selectChurch} />);
50
- });
51
- result.push(getRegisterLink());
52
- return result;
53
- }
54
-
55
- const getResults = () => {
56
- if (churches === null) return;
57
- else if (churches.length === 0) return <><p>{Locale.label("selectChurch.noMatches")}</p>{getRegisterLink()}</>
58
- else return getChurches();
59
- }
60
-
61
- if (showRegister) return (<SelectChurchRegister selectChurch={props.selectChurch} registeredChurchCallback={props.registeredChurchCallback} appName={props.appName} initialChurchName={searchText} />)
62
- else return (
63
- <>
64
- <TextField fullWidth name="searchText" label="Name" value={searchText} onChange={handleChange} onKeyDown={handleKeyDown}
65
- InputProps={{ endAdornment: <Button variant="contained" id="searchButton" data-testid="search-button" onClick={handleSubmit}>{Locale.label("common.search")}</Button> }}
66
- />
67
- {getResults()}
68
- </>
69
-
70
- );
71
- };
@@ -1,40 +0,0 @@
1
- "use client";
2
-
3
- import { Grid } from "@mui/material";
4
- import React from "react";
5
- import { ArrayHelper } from "../../helpers"
6
- import { ChurchInterface, GenericSettingInterface } from "@churchapps/helpers";
7
-
8
- interface Props {
9
- selectChurch: (churchId: string) => void,
10
- church: ChurchInterface
11
- }
12
-
13
- export const SelectableChurch: React.FC<Props> = (props) => {
14
-
15
- let logo = "/images/logo.png";
16
- if (props.church.settings) {
17
- let l: GenericSettingInterface = ArrayHelper.getOne(props.church.settings, "keyName", "logoLight");
18
- if (l?.value) logo = l.value;
19
- }
20
- return (
21
- <Grid container spacing={3}>
22
- <Grid size={{ xs: 12, md: 6 }}>
23
- <a href="about:blank" style={{ fontSize: "1.125rem", display: "block", marginTop: 15, marginBottom: 15 }} onClick={(e) => { e.preventDefault(); props.selectChurch(props.church.id) }}>
24
- <img src={logo} alt="church logo" className="w-100 img-fluid" />
25
- </a>
26
- </Grid>
27
- <Grid size={{ xs: 12, md: 6 }}>
28
- <div>
29
- <a href="about:blank" style={{ fontSize: "1.125rem", display: "block" }} onClick={(e) => { e.preventDefault(); props.selectChurch(props.church.id) }}>{props.church.name}</a>
30
- {(props.church.address1) && <div>{props.church.address1}</div>}
31
- {(props.church.city || props.church.state) && <div>
32
- {props.church.city && props.church.city + ", "}
33
- {props.church.state}
34
- </div>}
35
- </div>
36
- </Grid>
37
- <span style={{ display: "block", width: "100%", borderTop: "1px solid #ccc", margin: "1rem" }}></span>
38
- </Grid>
39
- );
40
- };
@@ -1,3 +0,0 @@
1
- export { LoginPage } from "./LoginPage";
2
- export { LogoutPage } from "./LogoutPage";
3
- export { Register } from "./components/Register";