@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.
- package/dist/components/DisplayBox.js +12 -18
- package/dist/components/DisplayBox.js.map +1 -1
- package/dist/components/ErrorMessages.js +9 -46
- package/dist/components/ErrorMessages.js.map +1 -1
- package/dist/components/ExportLink.d.ts.map +1 -1
- package/dist/components/ExportLink.js +8 -10
- package/dist/components/ExportLink.js.map +1 -1
- package/dist/components/FloatingSupport.js +7 -14
- package/dist/components/FloatingSupport.js.map +1 -1
- package/dist/components/FormCardPayment.d.ts.map +1 -1
- package/dist/components/FormCardPayment.js +28 -64
- package/dist/components/FormCardPayment.js.map +1 -1
- package/dist/components/FormSubmissionEdit.d.ts.map +1 -1
- package/dist/components/FormSubmissionEdit.js +28 -66
- package/dist/components/FormSubmissionEdit.js.map +1 -1
- package/dist/components/HelpIcon.js +3 -7
- package/dist/components/HelpIcon.js.map +1 -1
- package/dist/components/ImageEditor.d.ts.map +1 -1
- package/dist/components/ImageEditor.js +13 -19
- package/dist/components/ImageEditor.js.map +1 -1
- package/dist/components/InputBox.d.ts.map +1 -1
- package/dist/components/InputBox.js +13 -15
- package/dist/components/InputBox.js.map +1 -1
- package/dist/components/Loading.d.ts +0 -1
- package/dist/components/Loading.d.ts.map +1 -1
- package/dist/components/Loading.js +52 -12
- package/dist/components/Loading.js.map +1 -1
- package/dist/components/PageHeader.d.ts +15 -0
- package/dist/components/PageHeader.d.ts.map +1 -0
- package/dist/components/PageHeader.js +41 -0
- package/dist/components/PageHeader.js.map +1 -0
- package/dist/components/PersonAvatar.d.ts +12 -0
- package/dist/components/PersonAvatar.d.ts.map +1 -0
- package/dist/components/PersonAvatar.js +55 -0
- package/dist/components/PersonAvatar.js.map +1 -0
- package/dist/components/QuestionEdit.js +20 -26
- package/dist/components/QuestionEdit.js.map +1 -1
- package/dist/components/SmallButton.js +9 -15
- package/dist/components/SmallButton.js.map +1 -1
- package/dist/components/SupportModal.d.ts.map +1 -1
- package/dist/components/SupportModal.js +5 -9
- package/dist/components/SupportModal.js.map +1 -1
- package/dist/components/TabPanel.js +5 -9
- package/dist/components/TabPanel.js.map +1 -1
- package/dist/components/header/Banner.js +3 -7
- package/dist/components/header/Banner.js.map +1 -1
- package/dist/components/header/PrimaryMenu.d.ts.map +1 -1
- package/dist/components/header/PrimaryMenu.js +30 -30
- package/dist/components/header/PrimaryMenu.js.map +1 -1
- package/dist/components/header/SecondaryMenu.js +6 -10
- package/dist/components/header/SecondaryMenu.js.map +1 -1
- package/dist/components/header/SecondaryMenuAlt.js +8 -15
- package/dist/components/header/SecondaryMenuAlt.js.map +1 -1
- package/dist/components/header/SiteHeader.d.ts +2 -1
- package/dist/components/header/SiteHeader.d.ts.map +1 -1
- package/dist/components/header/SiteHeader.js +109 -17
- package/dist/components/header/SiteHeader.js.map +1 -1
- package/dist/components/header/SupportDrawer.js +14 -18
- package/dist/components/header/SupportDrawer.js.map +1 -1
- package/dist/components/header/index.js +2 -7
- package/dist/components/header/index.js.map +1 -1
- package/dist/components/index.d.ts +2 -4
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +18 -52
- package/dist/components/index.js.map +1 -1
- package/dist/components/notes/AddNote.d.ts.map +1 -1
- package/dist/components/notes/AddNote.js +56 -54
- package/dist/components/notes/AddNote.js.map +1 -1
- package/dist/components/notes/Note.d.ts.map +1 -1
- package/dist/components/notes/Note.js +11 -15
- package/dist/components/notes/Note.js.map +1 -1
- package/dist/components/notes/Notes.d.ts.map +1 -1
- package/dist/components/notes/Notes.js +134 -40
- package/dist/components/notes/Notes.js.map +1 -1
- package/dist/components/notes/index.js +3 -9
- package/dist/components/notes/index.js.map +1 -1
- package/dist/components/wrapper/AppList.d.ts.map +1 -1
- package/dist/components/wrapper/AppList.js +7 -13
- package/dist/components/wrapper/AppList.js.map +1 -1
- package/dist/components/wrapper/ChurchList.d.ts.map +1 -1
- package/dist/components/wrapper/ChurchList.js +55 -21
- package/dist/components/wrapper/ChurchList.js.map +1 -1
- package/dist/components/wrapper/NavItem.js +11 -15
- package/dist/components/wrapper/NavItem.js.map +1 -1
- package/dist/components/wrapper/NewPrivateMessage.d.ts.map +1 -1
- package/dist/components/wrapper/NewPrivateMessage.js +38 -68
- package/dist/components/wrapper/NewPrivateMessage.js.map +1 -1
- package/dist/components/wrapper/Notifications.d.ts.map +1 -1
- package/dist/components/wrapper/Notifications.js +53 -57
- package/dist/components/wrapper/Notifications.js.map +1 -1
- package/dist/components/wrapper/PrivateMessageDetails.d.ts +1 -0
- package/dist/components/wrapper/PrivateMessageDetails.d.ts.map +1 -1
- package/dist/components/wrapper/PrivateMessageDetails.js +54 -9
- package/dist/components/wrapper/PrivateMessageDetails.js.map +1 -1
- package/dist/components/wrapper/PrivateMessages.d.ts.map +1 -1
- package/dist/components/wrapper/PrivateMessages.js +363 -78
- package/dist/components/wrapper/PrivateMessages.js.map +1 -1
- package/dist/components/wrapper/UserMenu.d.ts.map +1 -1
- package/dist/components/wrapper/UserMenu.js +182 -54
- package/dist/components/wrapper/UserMenu.js.map +1 -1
- package/dist/components/wrapper/index.d.ts +2 -1
- package/dist/components/wrapper/index.d.ts.map +1 -1
- package/dist/components/wrapper/index.js +8 -17
- package/dist/components/wrapper/index.js.map +1 -1
- package/dist/helpers/AnalyticsHelper.d.ts.map +1 -1
- package/dist/helpers/AnalyticsHelper.js +11 -19
- package/dist/helpers/AnalyticsHelper.js.map +1 -1
- package/dist/helpers/AppearanceHelper.js +1 -5
- package/dist/helpers/AppearanceHelper.js.map +1 -1
- package/dist/helpers/ArrayHelper.d.ts.map +1 -1
- package/dist/helpers/ArrayHelper.js +3 -8
- package/dist/helpers/ArrayHelper.js.map +1 -1
- package/dist/helpers/CurrencyHelper.js +1 -5
- package/dist/helpers/CurrencyHelper.js.map +1 -1
- package/dist/helpers/DateHelper.js +3 -7
- package/dist/helpers/DateHelper.js.map +1 -1
- package/dist/helpers/ErrorHelper.js +3 -7
- package/dist/helpers/ErrorHelper.js.map +1 -1
- package/dist/helpers/EventHelper.d.ts.map +1 -1
- package/dist/helpers/EventHelper.js +4 -11
- package/dist/helpers/EventHelper.js.map +1 -1
- package/dist/helpers/FileHelper.js +3 -10
- package/dist/helpers/FileHelper.js.map +1 -1
- package/dist/helpers/Locale.d.ts +1 -1
- package/dist/helpers/Locale.d.ts.map +1 -1
- package/dist/helpers/Locale.js +18 -20
- package/dist/helpers/Locale.js.map +1 -1
- package/dist/helpers/NotificationService.d.ts +56 -0
- package/dist/helpers/NotificationService.d.ts.map +1 -0
- package/dist/helpers/NotificationService.js +176 -0
- package/dist/helpers/NotificationService.js.map +1 -0
- package/dist/helpers/PersonHelper.d.ts.map +1 -1
- package/dist/helpers/PersonHelper.js +5 -9
- package/dist/helpers/PersonHelper.js.map +1 -1
- package/dist/helpers/SlugHelper.js +4 -11
- package/dist/helpers/SlugHelper.js.map +1 -1
- package/dist/helpers/SocketHelper.d.ts +12 -0
- package/dist/helpers/SocketHelper.d.ts.map +1 -1
- package/dist/helpers/SocketHelper.js +163 -44
- package/dist/helpers/SocketHelper.js.map +1 -1
- package/dist/helpers/UniqueIdHelper.js +1 -5
- package/dist/helpers/UniqueIdHelper.js.map +1 -1
- package/dist/helpers/UserHelper.js +8 -12
- package/dist/helpers/UserHelper.js.map +1 -1
- package/dist/helpers/createEmotionCache.js +3 -9
- package/dist/helpers/createEmotionCache.js.map +1 -1
- package/dist/helpers/index.d.ts +7 -16
- package/dist/helpers/index.d.ts.map +1 -1
- package/dist/helpers/index.js +10 -54
- package/dist/helpers/index.js.map +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +2 -5
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useMountedState.js +5 -9
- package/dist/hooks/useMountedState.js.map +1 -1
- package/dist/hooks/useNotifications.d.ts +30 -0
- package/dist/hooks/useNotifications.d.ts.map +1 -0
- package/dist/hooks/useNotifications.js +79 -0
- package/dist/hooks/useNotifications.js.map +1 -0
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -22
- package/dist/index.js.map +1 -1
- package/dist/public/css/styles.css +6 -2
- package/package.json +6 -28
- package/public/css/styles.css +6 -2
- package/src/components/ExportLink.tsx +12 -3
- package/src/components/FormCardPayment.tsx +4 -3
- package/src/components/FormSubmissionEdit.tsx +5 -6
- package/src/components/ImageEditor.tsx +15 -12
- package/src/components/InputBox.tsx +2 -1
- package/src/components/Loading.tsx +47 -1
- package/src/components/PageHeader.tsx +107 -0
- package/src/components/PersonAvatar.tsx +78 -0
- package/src/components/SupportModal.tsx +8 -3
- package/src/components/header/PrimaryMenu.tsx +85 -42
- package/src/components/header/SiteHeader.tsx +131 -8
- package/src/components/header/SupportDrawer.tsx +1 -1
- package/src/components/index.tsx +2 -5
- package/src/components/notes/AddNote.tsx +105 -19
- package/src/components/notes/Note.tsx +43 -22
- package/src/components/notes/Notes.tsx +160 -21
- package/src/components/wrapper/AppList.tsx +1 -4
- package/src/components/wrapper/ChurchList.tsx +45 -5
- package/src/components/wrapper/NewPrivateMessage.tsx +181 -44
- package/src/components/wrapper/Notifications.tsx +164 -29
- package/src/components/wrapper/PrivateMessageDetails.tsx +100 -13
- package/src/components/wrapper/PrivateMessages.tsx +539 -56
- package/src/components/wrapper/UserMenu.tsx +218 -38
- package/src/components/wrapper/index.tsx +3 -2
- package/src/helpers/AnalyticsHelper.ts +1 -2
- package/src/helpers/ArrayHelper.ts +0 -1
- package/src/helpers/ErrorHelper.ts +1 -1
- package/src/helpers/EventHelper.ts +0 -3
- package/src/helpers/Locale.ts +8 -3
- package/src/helpers/NotificationService.ts +211 -0
- package/src/helpers/PersonHelper.ts +1 -2
- package/src/helpers/SocketHelper.ts +184 -39
- package/src/helpers/UserHelper.ts +2 -2
- package/src/helpers/index.ts +46 -16
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useNotifications.ts +94 -0
- package/src/index.ts +1 -4
- package/tsconfig.json +2 -2
- package/.eslintignore +0 -4
- package/.github/FUNDING.yml +0 -1
- package/.vscode/settings.json +0 -6
- package/CHUMS_COMPONENT_EXTRACTION_CANDIDATES.md +0 -210
- package/CLAUDE.md +0 -111
- package/COMPONENT_USAGE_REPORT.md +0 -322
- package/LICENSE +0 -21
- package/README.md +0 -24
- package/b1app-specific-components.md +0 -146
- package/component-usage-analysis.md +0 -169
- package/dist/components/markdownEditor/Editor.d.ts +0 -13
- package/dist/components/markdownEditor/Editor.d.ts.map +0 -1
- package/dist/components/markdownEditor/Editor.js +0 -92
- package/dist/components/markdownEditor/Editor.js.map +0 -1
- package/dist/components/markdownEditor/IconNamesList.d.ts +0 -3
- package/dist/components/markdownEditor/IconNamesList.d.ts.map +0 -1
- package/dist/components/markdownEditor/IconNamesList.js +0 -16
- package/dist/components/markdownEditor/IconNamesList.js.map +0 -1
- package/dist/components/markdownEditor/MarkdownEditor.d.ts +0 -10
- package/dist/components/markdownEditor/MarkdownEditor.d.ts.map +0 -1
- package/dist/components/markdownEditor/MarkdownEditor.js +0 -45
- package/dist/components/markdownEditor/MarkdownEditor.js.map +0 -1
- package/dist/components/markdownEditor/MarkdownModal.d.ts +0 -9
- package/dist/components/markdownEditor/MarkdownModal.d.ts.map +0 -1
- package/dist/components/markdownEditor/MarkdownModal.js +0 -24
- package/dist/components/markdownEditor/MarkdownModal.js.map +0 -1
- package/dist/components/markdownEditor/MarkdownPreview.d.ts +0 -9
- package/dist/components/markdownEditor/MarkdownPreview.d.ts.map +0 -1
- package/dist/components/markdownEditor/MarkdownPreview.js +0 -45
- package/dist/components/markdownEditor/MarkdownPreview.js.map +0 -1
- package/dist/components/markdownEditor/MarkdownPreviewLight.d.ts +0 -7
- package/dist/components/markdownEditor/MarkdownPreviewLight.d.ts.map +0 -1
- package/dist/components/markdownEditor/MarkdownPreviewLight.js +0 -53
- package/dist/components/markdownEditor/MarkdownPreviewLight.js.map +0 -1
- package/dist/components/markdownEditor/editor.css +0 -787
- package/dist/components/markdownEditor/images/emoji/1F600.png +0 -0
- package/dist/components/markdownEditor/images/emoji/1F641.png +0 -0
- package/dist/components/markdownEditor/images/emoji/1F642.png +0 -0
- package/dist/components/markdownEditor/images/emoji/2764.png +0 -0
- package/dist/components/markdownEditor/images/icons/arrow-clockwise.svg +0 -4
- package/dist/components/markdownEditor/images/icons/arrow-counterclockwise.svg +0 -4
- package/dist/components/markdownEditor/images/icons/chat-square-quote.svg +0 -4
- package/dist/components/markdownEditor/images/icons/chevron-down.svg +0 -3
- package/dist/components/markdownEditor/images/icons/code.svg +0 -3
- package/dist/components/markdownEditor/images/icons/journal-code.svg +0 -5
- package/dist/components/markdownEditor/images/icons/journal-text.svg +0 -5
- package/dist/components/markdownEditor/images/icons/justify.svg +0 -3
- package/dist/components/markdownEditor/images/icons/link.svg +0 -4
- package/dist/components/markdownEditor/images/icons/list-ol.svg +0 -4
- package/dist/components/markdownEditor/images/icons/list-ul.svg +0 -3
- package/dist/components/markdownEditor/images/icons/pencil-fill.svg +0 -3
- package/dist/components/markdownEditor/images/icons/text-center.svg +0 -3
- package/dist/components/markdownEditor/images/icons/text-left.svg +0 -3
- package/dist/components/markdownEditor/images/icons/text-paragraph.svg +0 -3
- package/dist/components/markdownEditor/images/icons/text-right.svg +0 -3
- package/dist/components/markdownEditor/images/icons/type-bold.svg +0 -3
- package/dist/components/markdownEditor/images/icons/type-h1.svg +0 -3
- package/dist/components/markdownEditor/images/icons/type-h2.svg +0 -3
- package/dist/components/markdownEditor/images/icons/type-h3.svg +0 -3
- package/dist/components/markdownEditor/images/icons/type-h4.svg +0 -13
- package/dist/components/markdownEditor/images/icons/type-italic.svg +0 -3
- package/dist/components/markdownEditor/images/icons/type-strikethrough.svg +0 -3
- package/dist/components/markdownEditor/images/icons/type-underline.svg +0 -3
- package/dist/components/markdownEditor/index.d.ts +0 -4
- package/dist/components/markdownEditor/index.d.ts.map +0 -1
- package/dist/components/markdownEditor/index.js +0 -10
- package/dist/components/markdownEditor/index.js.map +0 -1
- package/dist/components/markdownEditor/plugins/AutoLinkPlugin.d.ts +0 -2
- package/dist/components/markdownEditor/plugins/AutoLinkPlugin.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/AutoLinkPlugin.js +0 -31
- package/dist/components/markdownEditor/plugins/AutoLinkPlugin.js.map +0 -1
- package/dist/components/markdownEditor/plugins/ControlledEditorPlugin.d.ts +0 -8
- package/dist/components/markdownEditor/plugins/ControlledEditorPlugin.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/ControlledEditorPlugin.js +0 -19
- package/dist/components/markdownEditor/plugins/ControlledEditorPlugin.js.map +0 -1
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.d.ts +0 -6
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.js +0 -310
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.js.map +0 -1
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.d.ts +0 -2
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.js +0 -19
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.js.map +0 -1
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.d.ts +0 -2
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.js +0 -21
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.js.map +0 -1
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.d.ts +0 -2
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.js +0 -29
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.js.map +0 -1
- package/dist/components/markdownEditor/plugins/ListMaxIndentLevelPlugin.d.ts +0 -2
- package/dist/components/markdownEditor/plugins/ListMaxIndentLevelPlugin.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/ListMaxIndentLevelPlugin.js +0 -45
- package/dist/components/markdownEditor/plugins/ListMaxIndentLevelPlugin.js.map +0 -1
- package/dist/components/markdownEditor/plugins/MarkdownTransformers.d.ts +0 -12
- package/dist/components/markdownEditor/plugins/MarkdownTransformers.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/MarkdownTransformers.js +0 -85
- package/dist/components/markdownEditor/plugins/MarkdownTransformers.js.map +0 -1
- package/dist/components/markdownEditor/plugins/ReadOnlyPlugin.d.ts +0 -6
- package/dist/components/markdownEditor/plugins/ReadOnlyPlugin.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/ReadOnlyPlugin.js +0 -12
- package/dist/components/markdownEditor/plugins/ReadOnlyPlugin.js.map +0 -1
- package/dist/components/markdownEditor/plugins/ToolbarPlugin.d.ts +0 -7
- package/dist/components/markdownEditor/plugins/ToolbarPlugin.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/ToolbarPlugin.js +0 -282
- package/dist/components/markdownEditor/plugins/ToolbarPlugin.js.map +0 -1
- package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.d.ts +0 -27
- package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.js +0 -158
- package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.js.map +0 -1
- package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodePlugin.d.ts +0 -4
- package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodePlugin.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodePlugin.js +0 -21
- package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodePlugin.js.map +0 -1
- package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodeTransformer.d.ts +0 -3
- package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodeTransformer.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodeTransformer.js +0 -71
- package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodeTransformer.js.map +0 -1
- package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.d.ts +0 -5
- package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.js +0 -190
- package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.js.map +0 -1
- package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.types.d.ts +0 -11
- package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.types.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.types.js +0 -3
- package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.types.js.map +0 -1
- package/dist/components/markdownEditor/plugins/emoji/EmojiNode.d.ts +0 -24
- package/dist/components/markdownEditor/plugins/emoji/EmojiNode.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/emoji/EmojiNode.js +0 -66
- package/dist/components/markdownEditor/plugins/emoji/EmojiNode.js.map +0 -1
- package/dist/components/markdownEditor/plugins/emoji/EmojiNodeTransform.d.ts +0 -4
- package/dist/components/markdownEditor/plugins/emoji/EmojiNodeTransform.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/emoji/EmojiNodeTransform.js +0 -35
- package/dist/components/markdownEditor/plugins/emoji/EmojiNodeTransform.js.map +0 -1
- package/dist/components/markdownEditor/plugins/emoji/EmojiPickerPlugin.d.ts +0 -9
- package/dist/components/markdownEditor/plugins/emoji/EmojiPickerPlugin.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/emoji/EmojiPickerPlugin.js +0 -103
- package/dist/components/markdownEditor/plugins/emoji/EmojiPickerPlugin.js.map +0 -1
- package/dist/components/markdownEditor/plugins/emoji/EmojisPlugin.d.ts +0 -10
- package/dist/components/markdownEditor/plugins/emoji/EmojisPlugin.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/emoji/EmojisPlugin.js +0 -59
- package/dist/components/markdownEditor/plugins/emoji/EmojisPlugin.js.map +0 -1
- package/dist/components/markdownEditor/plugins/index.d.ts +0 -7
- package/dist/components/markdownEditor/plugins/index.d.ts.map +0 -1
- package/dist/components/markdownEditor/plugins/index.js +0 -16
- package/dist/components/markdownEditor/plugins/index.js.map +0 -1
- package/dist/components/markdownEditor/theme.d.ts +0 -66
- package/dist/components/markdownEditor/theme.d.ts.map +0 -1
- package/dist/components/markdownEditor/theme.js +0 -69
- package/dist/components/markdownEditor/theme.js.map +0 -1
- package/dist/components/reporting/ChartReport.d.ts +0 -8
- package/dist/components/reporting/ChartReport.d.ts.map +0 -1
- package/dist/components/reporting/ChartReport.js +0 -81
- package/dist/components/reporting/ChartReport.js.map +0 -1
- package/dist/components/reporting/ReportFilter.d.ts +0 -9
- package/dist/components/reporting/ReportFilter.d.ts.map +0 -1
- package/dist/components/reporting/ReportFilter.js +0 -52
- package/dist/components/reporting/ReportFilter.js.map +0 -1
- package/dist/components/reporting/ReportFilterField.d.ts +0 -9
- package/dist/components/reporting/ReportFilterField.d.ts.map +0 -1
- package/dist/components/reporting/ReportFilterField.js +0 -156
- package/dist/components/reporting/ReportFilterField.js.map +0 -1
- package/dist/components/reporting/ReportOutput.d.ts +0 -8
- package/dist/components/reporting/ReportOutput.d.ts.map +0 -1
- package/dist/components/reporting/ReportOutput.js +0 -177
- package/dist/components/reporting/ReportOutput.js.map +0 -1
- package/dist/components/reporting/ReportWithFilter.d.ts +0 -7
- package/dist/components/reporting/ReportWithFilter.d.ts.map +0 -1
- package/dist/components/reporting/ReportWithFilter.js +0 -65
- package/dist/components/reporting/ReportWithFilter.js.map +0 -1
- package/dist/components/reporting/TableReport.d.ts +0 -8
- package/dist/components/reporting/TableReport.d.ts.map +0 -1
- package/dist/components/reporting/TableReport.js +0 -30
- package/dist/components/reporting/TableReport.js.map +0 -1
- package/dist/components/reporting/TreeReport.d.ts +0 -8
- package/dist/components/reporting/TreeReport.d.ts.map +0 -1
- package/dist/components/reporting/TreeReport.js +0 -89
- package/dist/components/reporting/TreeReport.js.map +0 -1
- package/dist/components/reporting/index.d.ts +0 -5
- package/dist/components/reporting/index.d.ts.map +0 -1
- package/dist/components/reporting/index.js +0 -12
- package/dist/components/reporting/index.js.map +0 -1
- package/dist/components/wrapper/Drawers.d.ts +0 -5
- package/dist/components/wrapper/Drawers.d.ts.map +0 -1
- package/dist/components/wrapper/Drawers.js +0 -54
- package/dist/components/wrapper/Drawers.js.map +0 -1
- package/dist/components/wrapper/SiteWrapper.d.ts +0 -15
- package/dist/components/wrapper/SiteWrapper.d.ts.map +0 -1
- package/dist/components/wrapper/SiteWrapper.js +0 -60
- package/dist/components/wrapper/SiteWrapper.js.map +0 -1
- package/dist/components/wrapper/TabPanel.d.ts +0 -9
- package/dist/components/wrapper/TabPanel.d.ts.map +0 -1
- package/dist/components/wrapper/TabPanel.js +0 -20
- package/dist/components/wrapper/TabPanel.js.map +0 -1
- package/dist/donationComponents/components/BankForm.d.ts +0 -14
- package/dist/donationComponents/components/BankForm.d.ts.map +0 -1
- package/dist/donationComponents/components/BankForm.js +0 -126
- package/dist/donationComponents/components/BankForm.js.map +0 -1
- package/dist/donationComponents/components/CardForm.d.ts +0 -13
- package/dist/donationComponents/components/CardForm.d.ts.map +0 -1
- package/dist/donationComponents/components/CardForm.js +0 -122
- package/dist/donationComponents/components/CardForm.js.map +0 -1
- package/dist/donationComponents/components/DonationForm.d.ts +0 -15
- package/dist/donationComponents/components/DonationForm.d.ts.map +0 -1
- package/dist/donationComponents/components/DonationForm.js +0 -199
- package/dist/donationComponents/components/DonationForm.js.map +0 -1
- package/dist/donationComponents/components/FundDonation.d.ts +0 -12
- package/dist/donationComponents/components/FundDonation.d.ts.map +0 -1
- package/dist/donationComponents/components/FundDonation.js +0 -32
- package/dist/donationComponents/components/FundDonation.js.map +0 -1
- package/dist/donationComponents/components/FundDonations.d.ts +0 -11
- package/dist/donationComponents/components/FundDonations.d.ts.map +0 -1
- package/dist/donationComponents/components/FundDonations.js +0 -33
- package/dist/donationComponents/components/FundDonations.js.map +0 -1
- package/dist/donationComponents/components/NonAuthDonation.d.ts +0 -12
- package/dist/donationComponents/components/NonAuthDonation.d.ts.map +0 -1
- package/dist/donationComponents/components/NonAuthDonation.js +0 -27
- package/dist/donationComponents/components/NonAuthDonation.js.map +0 -1
- package/dist/donationComponents/components/NonAuthDonationInner.d.ts +0 -12
- package/dist/donationComponents/components/NonAuthDonationInner.d.ts.map +0 -1
- package/dist/donationComponents/components/NonAuthDonationInner.js +0 -277
- package/dist/donationComponents/components/NonAuthDonationInner.js.map +0 -1
- package/dist/donationComponents/components/PaymentMethods.d.ts +0 -14
- package/dist/donationComponents/components/PaymentMethods.d.ts.map +0 -1
- package/dist/donationComponents/components/PaymentMethods.js +0 -84
- package/dist/donationComponents/components/PaymentMethods.js.map +0 -1
- package/dist/donationComponents/components/RecurringDonations.d.ts +0 -10
- package/dist/donationComponents/components/RecurringDonations.d.ts.map +0 -1
- package/dist/donationComponents/components/RecurringDonations.js +0 -93
- package/dist/donationComponents/components/RecurringDonations.js.map +0 -1
- package/dist/donationComponents/components/RecurringDonationsEdit.d.ts +0 -11
- package/dist/donationComponents/components/RecurringDonationsEdit.d.ts.map +0 -1
- package/dist/donationComponents/components/RecurringDonationsEdit.js +0 -66
- package/dist/donationComponents/components/RecurringDonationsEdit.js.map +0 -1
- package/dist/donationComponents/components/index.d.ts +0 -11
- package/dist/donationComponents/components/index.d.ts.map +0 -1
- package/dist/donationComponents/components/index.js +0 -24
- package/dist/donationComponents/components/index.js.map +0 -1
- package/dist/donationComponents/index.d.ts +0 -3
- package/dist/donationComponents/index.d.ts.map +0 -1
- package/dist/donationComponents/index.js +0 -21
- package/dist/donationComponents/index.js.map +0 -1
- package/dist/donationComponents/modals/DonationPreviewModal.d.ts +0 -15
- package/dist/donationComponents/modals/DonationPreviewModal.d.ts.map +0 -1
- package/dist/donationComponents/modals/DonationPreviewModal.js +0 -33
- package/dist/donationComponents/modals/DonationPreviewModal.js.map +0 -1
- package/dist/helpers/ApiHelper.d.ts +0 -18
- package/dist/helpers/ApiHelper.d.ts.map +0 -1
- package/dist/helpers/ApiHelper.js +0 -123
- package/dist/helpers/ApiHelper.js.map +0 -1
- package/dist/helpers/CommonEnvironmentHelper.d.ts +0 -21
- package/dist/helpers/CommonEnvironmentHelper.d.ts.map +0 -1
- package/dist/helpers/CommonEnvironmentHelper.js +0 -100
- package/dist/helpers/CommonEnvironmentHelper.js.map +0 -1
- package/dist/helpers/DonationHelper.d.ts +0 -8
- package/dist/helpers/DonationHelper.d.ts.map +0 -1
- package/dist/helpers/DonationHelper.js +0 -33
- package/dist/helpers/DonationHelper.js.map +0 -1
- package/dist/helpers/ReportHelper.d.ts +0 -5
- package/dist/helpers/ReportHelper.d.ts.map +0 -1
- package/dist/helpers/ReportHelper.js +0 -37
- package/dist/helpers/ReportHelper.js.map +0 -1
- package/dist/pageComponents/LoginPage.d.ts +0 -25
- package/dist/pageComponents/LoginPage.d.ts.map +0 -1
- package/dist/pageComponents/LoginPage.js +0 -288
- package/dist/pageComponents/LoginPage.js.map +0 -1
- package/dist/pageComponents/LogoutPage.d.ts +0 -9
- package/dist/pageComponents/LogoutPage.d.ts.map +0 -1
- package/dist/pageComponents/LogoutPage.js +0 -37
- package/dist/pageComponents/LogoutPage.js.map +0 -1
- package/dist/pageComponents/components/Forgot.d.ts +0 -8
- package/dist/pageComponents/components/Forgot.d.ts.map +0 -1
- package/dist/pageComponents/components/Forgot.js +0 -53
- package/dist/pageComponents/components/Forgot.js.map +0 -1
- package/dist/pageComponents/components/Login.d.ts +0 -15
- package/dist/pageComponents/components/Login.d.ts.map +0 -1
- package/dist/pageComponents/components/Login.js +0 -73
- package/dist/pageComponents/components/Login.js.map +0 -1
- package/dist/pageComponents/components/LoginSetPassword.d.ts +0 -13
- package/dist/pageComponents/components/LoginSetPassword.d.ts.map +0 -1
- package/dist/pageComponents/components/LoginSetPassword.js +0 -112
- package/dist/pageComponents/components/LoginSetPassword.js.map +0 -1
- package/dist/pageComponents/components/Register.d.ts +0 -12
- package/dist/pageComponents/components/Register.d.ts.map +0 -1
- package/dist/pageComponents/components/Register.js +0 -95
- package/dist/pageComponents/components/Register.js.map +0 -1
- package/dist/pageComponents/components/SelectChurchModal.d.ts +0 -14
- package/dist/pageComponents/components/SelectChurchModal.d.ts.map +0 -1
- package/dist/pageComponents/components/SelectChurchModal.js +0 -37
- package/dist/pageComponents/components/SelectChurchModal.js.map +0 -1
- package/dist/pageComponents/components/SelectChurchRegister.d.ts +0 -11
- package/dist/pageComponents/components/SelectChurchRegister.d.ts.map +0 -1
- package/dist/pageComponents/components/SelectChurchRegister.js +0 -89
- package/dist/pageComponents/components/SelectChurchRegister.js.map +0 -1
- package/dist/pageComponents/components/SelectChurchSearch.d.ts +0 -10
- package/dist/pageComponents/components/SelectChurchSearch.d.ts.map +0 -1
- package/dist/pageComponents/components/SelectChurchSearch.js +0 -58
- package/dist/pageComponents/components/SelectChurchSearch.js.map +0 -1
- package/dist/pageComponents/components/SelectableChurch.d.ts +0 -9
- package/dist/pageComponents/components/SelectableChurch.d.ts.map +0 -1
- package/dist/pageComponents/components/SelectableChurch.js +0 -18
- package/dist/pageComponents/components/SelectableChurch.js.map +0 -1
- package/dist/pageComponents/index.d.ts +0 -4
- package/dist/pageComponents/index.d.ts.map +0 -1
- package/dist/pageComponents/index.js +0 -10
- package/dist/pageComponents/index.js.map +0 -1
- package/src/components/markdownEditor/Editor.tsx +0 -150
- package/src/components/markdownEditor/IconNamesList.ts +0 -14
- package/src/components/markdownEditor/MarkdownEditor.tsx +0 -18
- package/src/components/markdownEditor/MarkdownModal.tsx +0 -49
- package/src/components/markdownEditor/MarkdownPreview.tsx +0 -18
- package/src/components/markdownEditor/MarkdownPreviewLight.tsx +0 -53
- package/src/components/markdownEditor/editor.css +0 -787
- package/src/components/markdownEditor/images/emoji/1F600.png +0 -0
- package/src/components/markdownEditor/images/emoji/1F641.png +0 -0
- package/src/components/markdownEditor/images/emoji/1F642.png +0 -0
- package/src/components/markdownEditor/images/emoji/2764.png +0 -0
- package/src/components/markdownEditor/images/icons/arrow-clockwise.svg +0 -4
- package/src/components/markdownEditor/images/icons/arrow-counterclockwise.svg +0 -4
- package/src/components/markdownEditor/images/icons/chat-square-quote.svg +0 -4
- package/src/components/markdownEditor/images/icons/chevron-down.svg +0 -3
- package/src/components/markdownEditor/images/icons/code.svg +0 -3
- package/src/components/markdownEditor/images/icons/journal-code.svg +0 -5
- package/src/components/markdownEditor/images/icons/journal-text.svg +0 -5
- package/src/components/markdownEditor/images/icons/justify.svg +0 -3
- package/src/components/markdownEditor/images/icons/link.svg +0 -4
- package/src/components/markdownEditor/images/icons/list-ol.svg +0 -4
- package/src/components/markdownEditor/images/icons/list-ul.svg +0 -3
- package/src/components/markdownEditor/images/icons/pencil-fill.svg +0 -3
- package/src/components/markdownEditor/images/icons/text-center.svg +0 -3
- package/src/components/markdownEditor/images/icons/text-left.svg +0 -3
- package/src/components/markdownEditor/images/icons/text-paragraph.svg +0 -3
- package/src/components/markdownEditor/images/icons/text-right.svg +0 -3
- package/src/components/markdownEditor/images/icons/type-bold.svg +0 -3
- package/src/components/markdownEditor/images/icons/type-h1.svg +0 -3
- package/src/components/markdownEditor/images/icons/type-h2.svg +0 -3
- package/src/components/markdownEditor/images/icons/type-h3.svg +0 -3
- package/src/components/markdownEditor/images/icons/type-h4.svg +0 -13
- package/src/components/markdownEditor/images/icons/type-italic.svg +0 -3
- package/src/components/markdownEditor/images/icons/type-strikethrough.svg +0 -3
- package/src/components/markdownEditor/images/icons/type-underline.svg +0 -3
- package/src/components/markdownEditor/index.ts +0 -3
- package/src/components/markdownEditor/plugins/AutoLinkPlugin.tsx +0 -35
- package/src/components/markdownEditor/plugins/ControlledEditorPlugin.tsx +0 -24
- package/src/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.tsx +0 -445
- package/src/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.tsx +0 -17
- package/src/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.tsx +0 -17
- package/src/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.tsx +0 -33
- package/src/components/markdownEditor/plugins/ListMaxIndentLevelPlugin.tsx +0 -68
- package/src/components/markdownEditor/plugins/MarkdownTransformers.ts +0 -106
- package/src/components/markdownEditor/plugins/ReadOnlyPlugin.tsx +0 -15
- package/src/components/markdownEditor/plugins/ToolbarPlugin.tsx +0 -424
- package/src/components/markdownEditor/plugins/customLink/CustomLinkNode.tsx +0 -224
- package/src/components/markdownEditor/plugins/customLink/CustomLinkNodePlugin.tsx +0 -32
- package/src/components/markdownEditor/plugins/customLink/CustomLinkNodeTransformer.tsx +0 -102
- package/src/components/markdownEditor/plugins/customLink/FloatingLinkEditor.tsx +0 -270
- package/src/components/markdownEditor/plugins/customLink/FloatingLinkEditor.types.ts +0 -11
- package/src/components/markdownEditor/plugins/emoji/EmojiNode.tsx +0 -95
- package/src/components/markdownEditor/plugins/emoji/EmojiNodeTransform.ts +0 -41
- package/src/components/markdownEditor/plugins/emoji/EmojiPickerPlugin.tsx +0 -152
- package/src/components/markdownEditor/plugins/emoji/EmojisPlugin.tsx +0 -70
- package/src/components/markdownEditor/plugins/index.ts +0 -6
- package/src/components/markdownEditor/theme.ts +0 -65
- package/src/components/reporting/ChartReport.tsx +0 -89
- package/src/components/reporting/ReportFilter.tsx +0 -56
- package/src/components/reporting/ReportFilterField.tsx +0 -163
- package/src/components/reporting/ReportOutput.tsx +0 -168
- package/src/components/reporting/ReportWithFilter.tsx +0 -72
- package/src/components/reporting/TableReport.tsx +0 -44
- package/src/components/reporting/TreeReport.tsx +0 -103
- package/src/components/reporting/index.ts +0 -4
- package/src/components/wrapper/Drawers.tsx +0 -62
- package/src/components/wrapper/SiteWrapper.tsx +0 -99
- package/src/components/wrapper/TabPanel.tsx +0 -32
- package/src/donationComponents/components/BankForm.tsx +0 -163
- package/src/donationComponents/components/CardForm.tsx +0 -104
- package/src/donationComponents/components/DonationForm.tsx +0 -260
- package/src/donationComponents/components/FundDonation.tsx +0 -59
- package/src/donationComponents/components/FundDonations.tsx +0 -44
- package/src/donationComponents/components/NonAuthDonation.tsx +0 -34
- package/src/donationComponents/components/NonAuthDonationInner.tsx +0 -300
- package/src/donationComponents/components/PaymentMethods.tsx +0 -133
- package/src/donationComponents/components/RecurringDonations.tsx +0 -117
- package/src/donationComponents/components/RecurringDonationsEdit.tsx +0 -96
- package/src/donationComponents/components/index.tsx +0 -10
- package/src/donationComponents/index.ts +0 -2
- package/src/donationComponents/modals/DonationPreviewModal.tsx +0 -70
- package/src/helpers/ApiHelper.ts +0 -127
- package/src/helpers/CommonEnvironmentHelper.ts +0 -98
- package/src/helpers/DonationHelper.ts +0 -26
- package/src/helpers/ReportHelper.ts +0 -34
- package/src/pageComponents/LoginPage.tsx +0 -284
- package/src/pageComponents/LogoutPage.tsx +0 -43
- package/src/pageComponents/components/Forgot.tsx +0 -81
- package/src/pageComponents/components/Login.tsx +0 -62
- package/src/pageComponents/components/LoginSetPassword.tsx +0 -98
- package/src/pageComponents/components/Register.tsx +0 -103
- package/src/pageComponents/components/SelectChurchModal.tsx +0 -58
- package/src/pageComponents/components/SelectChurchRegister.tsx +0 -87
- package/src/pageComponents/components/SelectChurchSearch.tsx +0 -71
- package/src/pageComponents/components/SelectableChurch.tsx +0 -40
- package/src/pageComponents/index.ts +0 -3
|
@@ -19,18 +19,72 @@ export function Notes(props: Props) {
|
|
|
19
19
|
|
|
20
20
|
const [messages, setMessages] = React.useState<MessageInterface[]>(null)
|
|
21
21
|
const [editMessageId, setEditMessageId] = React.useState(null)
|
|
22
|
+
const [isInitialLoad, setIsInitialLoad] = React.useState(true)
|
|
23
|
+
const [previousMessageCount, setPreviousMessageCount] = React.useState(0)
|
|
24
|
+
|
|
25
|
+
// Add CSS for custom scrollbar styling
|
|
26
|
+
React.useEffect(() => {
|
|
27
|
+
const styleId = 'notes-scrollbar-styles';
|
|
28
|
+
if (!document.getElementById(styleId)) {
|
|
29
|
+
const style = document.createElement('style');
|
|
30
|
+
style.id = styleId;
|
|
31
|
+
style.textContent = `
|
|
32
|
+
.notes-scroll-container {
|
|
33
|
+
scrollbar-width: thin;
|
|
34
|
+
scrollbar-color: rgba(0, 0, 0, 0.3) rgba(0, 0, 0, 0.1);
|
|
35
|
+
}
|
|
36
|
+
.notes-scroll-container::-webkit-scrollbar {
|
|
37
|
+
width: 12px;
|
|
38
|
+
background: transparent;
|
|
39
|
+
}
|
|
40
|
+
.notes-scroll-container::-webkit-scrollbar-track {
|
|
41
|
+
background: rgba(0, 0, 0, 0.1);
|
|
42
|
+
border-radius: 6px;
|
|
43
|
+
margin: 4px;
|
|
44
|
+
}
|
|
45
|
+
.notes-scroll-container::-webkit-scrollbar-thumb {
|
|
46
|
+
background: rgba(0, 0, 0, 0.3);
|
|
47
|
+
border-radius: 6px;
|
|
48
|
+
border: 2px solid transparent;
|
|
49
|
+
background-clip: content-box;
|
|
50
|
+
}
|
|
51
|
+
.notes-scroll-container::-webkit-scrollbar-thumb:hover {
|
|
52
|
+
background: rgba(0, 0, 0, 0.5);
|
|
53
|
+
background-clip: content-box;
|
|
54
|
+
}
|
|
55
|
+
.notes-scroll-container::-webkit-scrollbar-corner {
|
|
56
|
+
background: transparent;
|
|
57
|
+
}
|
|
58
|
+
`;
|
|
59
|
+
document.head.appendChild(style);
|
|
60
|
+
}
|
|
61
|
+
}, []);
|
|
22
62
|
|
|
23
63
|
const loadNotes = async () => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
64
|
+
try {
|
|
65
|
+
const messages: MessageInterface[] = (props.conversationId) ? await ApiHelper.get("/messages/conversation/" + props.conversationId, "MessagingApi") : [];
|
|
66
|
+
if (messages.length > 0) {
|
|
67
|
+
const peopleIds = ArrayHelper.getIds(messages, "personId");
|
|
68
|
+
const people = await ApiHelper.get("/people/basic?ids=" + peopleIds.join(","), "MembershipApi");
|
|
69
|
+
messages.forEach(n => {
|
|
70
|
+
n.person = ArrayHelper.getOne(people, "id", n.personId);
|
|
71
|
+
})
|
|
72
|
+
}
|
|
73
|
+
setMessages(messages);
|
|
74
|
+
setEditMessageId(null);
|
|
75
|
+
|
|
76
|
+
// Mark as no longer initial load after first load
|
|
77
|
+
if (isInitialLoad) {
|
|
78
|
+
setIsInitialLoad(false);
|
|
79
|
+
}
|
|
80
|
+
} catch (error) {
|
|
81
|
+
console.error("❌ Failed to load messages for conversation:", props.conversationId, error);
|
|
82
|
+
// Don't clear messages on error - keep showing existing messages
|
|
83
|
+
// Only set isInitialLoad to false if this was the first load attempt
|
|
84
|
+
if (isInitialLoad) {
|
|
85
|
+
setIsInitialLoad(false);
|
|
86
|
+
}
|
|
31
87
|
}
|
|
32
|
-
setMessages(messages);
|
|
33
|
-
setEditMessageId(null);
|
|
34
88
|
};
|
|
35
89
|
|
|
36
90
|
const getNotes = () => {
|
|
@@ -45,25 +99,110 @@ export function Notes(props: Props) {
|
|
|
45
99
|
|
|
46
100
|
const getNotesWrapper = () => {
|
|
47
101
|
const notes = getNotes();
|
|
48
|
-
if (props.maxHeight)
|
|
102
|
+
if (props.maxHeight) {
|
|
103
|
+
return (
|
|
104
|
+
<div
|
|
105
|
+
id="notesScroll"
|
|
106
|
+
style={{
|
|
107
|
+
flex: 1,
|
|
108
|
+
minHeight: 0,
|
|
109
|
+
overflowY: "auto",
|
|
110
|
+
overflowX: "hidden",
|
|
111
|
+
padding: "8px 12px",
|
|
112
|
+
scrollBehavior: "smooth",
|
|
113
|
+
height: "100%"
|
|
114
|
+
}}
|
|
115
|
+
className="notes-scroll-container"
|
|
116
|
+
data-testid="message-scroll-area"
|
|
117
|
+
>
|
|
118
|
+
<div style={{
|
|
119
|
+
display: "flex",
|
|
120
|
+
flexDirection: "column",
|
|
121
|
+
gap: "8px",
|
|
122
|
+
minHeight: "min-content"
|
|
123
|
+
}}>
|
|
124
|
+
{notes}
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
);
|
|
128
|
+
}
|
|
49
129
|
else return notes;
|
|
50
130
|
}
|
|
51
131
|
|
|
52
132
|
React.useEffect(() => { loadNotes() }, [props.conversationId, props.refreshKey]); //eslint-disable-line
|
|
53
133
|
|
|
134
|
+
// Simply reload notes when refreshKey changes
|
|
135
|
+
// This is triggered by the parent component when WebSocket messages arrive
|
|
136
|
+
|
|
137
|
+
// Auto-scroll to bottom only when new messages are added (not on initial load)
|
|
54
138
|
React.useEffect(() => {
|
|
55
|
-
if (props.maxHeight && messages?.length>0) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
139
|
+
if (props.maxHeight && messages?.length > 0 && !isInitialLoad) {
|
|
140
|
+
const currentMessageCount = messages.length;
|
|
141
|
+
|
|
142
|
+
// Only auto-scroll if messages were added
|
|
143
|
+
if (currentMessageCount > previousMessageCount) {
|
|
144
|
+
// Use requestAnimationFrame for smoother scrolling
|
|
145
|
+
requestAnimationFrame(() => {
|
|
146
|
+
const element = window?.document?.getElementById("notesScroll");
|
|
147
|
+
if (element) {
|
|
148
|
+
element.scrollTop = element.scrollHeight;
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
setPreviousMessageCount(currentMessageCount);
|
|
154
|
+
} else if (messages?.length > 0 && isInitialLoad) {
|
|
155
|
+
// On initial load, just set the previous count without scrolling
|
|
156
|
+
setPreviousMessageCount(messages.length);
|
|
60
157
|
}
|
|
61
|
-
}, [messages, props.maxHeight]);
|
|
158
|
+
}, [messages, props.maxHeight, isInitialLoad, previousMessageCount]);
|
|
62
159
|
|
|
63
|
-
let result =
|
|
64
|
-
{
|
|
65
|
-
|
|
66
|
-
|
|
160
|
+
let result = props.maxHeight ? (
|
|
161
|
+
<div style={{
|
|
162
|
+
height: "100%",
|
|
163
|
+
display: "flex",
|
|
164
|
+
flexDirection: "column",
|
|
165
|
+
overflow: "hidden",
|
|
166
|
+
minHeight: 0
|
|
167
|
+
}}>
|
|
168
|
+
{/* Messages area - scrollable */}
|
|
169
|
+
<div style={{
|
|
170
|
+
flex: 1,
|
|
171
|
+
minHeight: 0,
|
|
172
|
+
display: "flex",
|
|
173
|
+
flexDirection: "column",
|
|
174
|
+
overflow: "hidden"
|
|
175
|
+
}}>
|
|
176
|
+
{getNotesWrapper()}
|
|
177
|
+
</div>
|
|
178
|
+
|
|
179
|
+
{/* Input area - always visible at bottom */}
|
|
180
|
+
{messages && (
|
|
181
|
+
<div style={{
|
|
182
|
+
flexShrink: 0,
|
|
183
|
+
borderTop: "1px solid #e0e0e0",
|
|
184
|
+
backgroundColor: "#fafafa",
|
|
185
|
+
padding: "12px",
|
|
186
|
+
minHeight: "auto",
|
|
187
|
+
maxHeight: "200px"
|
|
188
|
+
}}>
|
|
189
|
+
<AddNote
|
|
190
|
+
context={props.context}
|
|
191
|
+
conversationId={props.conversationId}
|
|
192
|
+
onUpdate={loadNotes}
|
|
193
|
+
createConversation={props.createConversation}
|
|
194
|
+
messageId={editMessageId}
|
|
195
|
+
/>
|
|
196
|
+
</div>
|
|
197
|
+
)}
|
|
198
|
+
</div>
|
|
199
|
+
) : (
|
|
200
|
+
<>
|
|
201
|
+
{getNotesWrapper()}
|
|
202
|
+
{messages && (<AddNote context={props.context} conversationId={props.conversationId} onUpdate={loadNotes} createConversation={props.createConversation} messageId={editMessageId} />)}
|
|
203
|
+
</>
|
|
204
|
+
);
|
|
205
|
+
|
|
67
206
|
if (props.noDisplayBox) return result;
|
|
68
|
-
else return (<DisplayBox id="notesBox" data-testid="notes-box" headerIcon="sticky_note_2" headerText={Locale.label("notes.notes")}>{result}</DisplayBox>);
|
|
207
|
+
else return (<DisplayBox id="notesBox" data-testid="notes-box" headerIcon="sticky_note_2" headerText={Locale.label("notes.notes", "Notes")}>{result}</DisplayBox>);
|
|
69
208
|
};
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import React from "react";
|
|
4
|
-
import { ApiHelper } from "
|
|
5
|
-
import { UserHelper } from "../../helpers/UserHelper";
|
|
4
|
+
import { ApiHelper, UserHelper, CommonEnvironmentHelper, LoginUserChurchInterface } from "@churchapps/helpers";
|
|
6
5
|
import { NavItem } from "./NavItem";
|
|
7
|
-
import { CommonEnvironmentHelper } from "../../helpers/CommonEnvironmentHelper";
|
|
8
|
-
import { LoginUserChurchInterface } from "@churchapps/helpers";
|
|
9
6
|
|
|
10
7
|
export interface Props { appName: string; currentUserChurch: LoginUserChurchInterface; onNavigate: (url: string) => void; }
|
|
11
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import React, { useState } from "react";
|
|
4
4
|
import { LoginUserChurchInterface, UserContextInterface, ArrayHelper } from "@churchapps/helpers";
|
|
5
|
-
import { ApiHelper } from "
|
|
5
|
+
import { ApiHelper } from "@churchapps/helpers";
|
|
6
6
|
import { UserHelper } from "../../helpers/UserHelper";
|
|
7
7
|
import { NavItem } from "./NavItem";
|
|
8
8
|
import { Locale } from "../../helpers";
|
|
@@ -10,11 +10,45 @@ import { Locale } from "../../helpers";
|
|
|
10
10
|
export interface Props { userChurches: LoginUserChurchInterface[], currentUserChurch: LoginUserChurchInterface, context: UserContextInterface, onDelete?: () => void }
|
|
11
11
|
|
|
12
12
|
export const ChurchList: React.FC<Props> = props => {
|
|
13
|
-
|
|
13
|
+
|
|
14
|
+
const [userChurches, setUserChurches] = useState(() => {
|
|
15
|
+
try {
|
|
16
|
+
// Handle both array and single object cases
|
|
17
|
+
let churches = props.userChurches;
|
|
18
|
+
if (!Array.isArray(churches)) {
|
|
19
|
+
churches = churches ? [churches] : [];
|
|
20
|
+
}
|
|
21
|
+
return churches.filter(uc => uc && uc.apis && uc.apis.length > 0);
|
|
22
|
+
} catch (error) {
|
|
23
|
+
console.error('Error filtering userChurches:', error);
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
// Update local state when props change
|
|
29
|
+
React.useEffect(() => {
|
|
30
|
+
try {
|
|
31
|
+
// Handle both array and single object cases
|
|
32
|
+
let churches = props.userChurches;
|
|
33
|
+
if (!Array.isArray(churches)) {
|
|
34
|
+
churches = churches ? [churches] : [];
|
|
35
|
+
}
|
|
36
|
+
setUserChurches(churches.filter(uc => uc && uc.apis && uc.apis.length > 0));
|
|
37
|
+
} catch (error) {
|
|
38
|
+
console.error('Error updating userChurches:', error);
|
|
39
|
+
setUserChurches([]);
|
|
40
|
+
}
|
|
41
|
+
}, [props.userChurches]);
|
|
14
42
|
|
|
15
43
|
const handleDelete = async (uc: LoginUserChurchInterface) => {
|
|
16
|
-
|
|
17
|
-
|
|
44
|
+
// Helper function to get label with fallback
|
|
45
|
+
const getLabel = (key: string, fallback: string) => {
|
|
46
|
+
const label = Locale.label(key);
|
|
47
|
+
return label && label !== key ? label : fallback;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const confirmMessage = getLabel("wrapper.sureRemoveChurch", "Are you sure you wish to delete this church? You will no longer be a member of {}.").replace("{}", uc.church.name?.toUpperCase());
|
|
51
|
+
if (window.confirm(confirmMessage)) {
|
|
18
52
|
await ApiHelper.delete(`/userchurch/record/${props.context.user.id}/${uc.church.id}/${uc.person.id}`, "MembershipApi");
|
|
19
53
|
await ApiHelper.delete(`/rolemembers/self/${uc.church.id}/${props.context.user.id}`, "MembershipApi");
|
|
20
54
|
// remove the same from userChurches
|
|
@@ -24,6 +58,12 @@ export const ChurchList: React.FC<Props> = props => {
|
|
|
24
58
|
}
|
|
25
59
|
}
|
|
26
60
|
|
|
61
|
+
// Helper function to get label with fallback
|
|
62
|
+
const getLabel = (key: string, fallback: string) => {
|
|
63
|
+
const label = Locale.label(key);
|
|
64
|
+
return label && label !== key ? label : fallback;
|
|
65
|
+
};
|
|
66
|
+
|
|
27
67
|
let result: React.ReactElement[] = [];
|
|
28
68
|
userChurches.forEach(uc => {
|
|
29
69
|
const userChurch = uc;
|
|
@@ -35,7 +75,7 @@ export const ChurchList: React.FC<Props> = props => {
|
|
|
35
75
|
label={churchName || "Unknown"}
|
|
36
76
|
icon="church"
|
|
37
77
|
deleteIcon={uc.church.id !== props.currentUserChurch.church.id ? "delete" : null}
|
|
38
|
-
deleteLabel={
|
|
78
|
+
deleteLabel={getLabel("wrapper.deleteChurch", "Delete")}
|
|
39
79
|
deleteFunction={() => { handleDelete(uc); }}
|
|
40
80
|
/>);
|
|
41
81
|
});
|
|
@@ -1,11 +1,35 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
|
|
3
|
+
import {
|
|
4
|
+
Button,
|
|
5
|
+
TextField,
|
|
6
|
+
Paper,
|
|
7
|
+
Box,
|
|
8
|
+
Typography,
|
|
9
|
+
Stack,
|
|
10
|
+
IconButton,
|
|
11
|
+
List,
|
|
12
|
+
ListItem,
|
|
13
|
+
ListItemAvatar,
|
|
14
|
+
ListItemText,
|
|
15
|
+
ListItemButton,
|
|
16
|
+
InputAdornment,
|
|
17
|
+
Divider,
|
|
18
|
+
Skeleton,
|
|
19
|
+
Avatar,
|
|
20
|
+
useTheme
|
|
21
|
+
} from "@mui/material";
|
|
22
|
+
import {
|
|
23
|
+
ArrowBack as ArrowBackIcon,
|
|
24
|
+
Search as SearchIcon,
|
|
25
|
+
PersonSearch as PersonSearchIcon,
|
|
26
|
+
Chat as ChatIcon
|
|
27
|
+
} from "@mui/icons-material";
|
|
28
|
+
import React, { useEffect, useState } from "react";
|
|
5
29
|
import { ApiHelper, Locale, PersonHelper } from "../../helpers";
|
|
6
30
|
import { ConversationInterface, PersonInterface, PrivateMessageInterface, UserContextInterface } from "@churchapps/helpers";
|
|
7
31
|
import { AddNote } from "../notes/AddNote";
|
|
8
|
-
import {
|
|
32
|
+
import { PersonAvatar } from "../PersonAvatar";
|
|
9
33
|
|
|
10
34
|
interface Props {
|
|
11
35
|
context: UserContextInterface;
|
|
@@ -20,11 +44,6 @@ export const NewPrivateMessage: React.FC<Props> = (props) => {
|
|
|
20
44
|
const [searchResults, setSearchResults] = React.useState([]);
|
|
21
45
|
const [selectedPerson, setSelectedPerson] = React.useState<PersonInterface>(null);
|
|
22
46
|
|
|
23
|
-
const handleSubmit = (e: React.MouseEvent) => {
|
|
24
|
-
if (e !== null) e.preventDefault();
|
|
25
|
-
let term = escape(searchText.trim());
|
|
26
|
-
ApiHelper.get("/people/search?term=" + term, "MembershipApi").then(data => setSearchResults(data));
|
|
27
|
-
}
|
|
28
47
|
|
|
29
48
|
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
|
|
30
49
|
setSearchText(e.currentTarget.value);
|
|
@@ -51,24 +70,13 @@ export const NewPrivateMessage: React.FC<Props> = (props) => {
|
|
|
51
70
|
setSelectedPerson(person);
|
|
52
71
|
}
|
|
53
72
|
|
|
54
|
-
const getPeople = () => {
|
|
55
|
-
let result = [];
|
|
56
|
-
for (let i = 0; i < searchResults.length; i++) {
|
|
57
|
-
const p = searchResults[i];
|
|
58
|
-
result.push(<TableRow key={p.id}>
|
|
59
|
-
<TableCell><img src={PersonHelper.getPhotoUrl(p)} alt="avatar" /></TableCell>
|
|
60
|
-
<TableCell><a href="about:blank" onClick={(e) => { e.preventDefault(); handlePersonSelected(p) }}>{p.name.display}</a></TableCell>
|
|
61
|
-
</TableRow>);
|
|
62
|
-
}
|
|
63
|
-
return result;
|
|
64
|
-
}
|
|
65
73
|
|
|
66
74
|
const handleNoteAdded = () => {
|
|
67
75
|
handlePersonSelected(selectedPerson);
|
|
68
76
|
}
|
|
69
77
|
|
|
70
78
|
const createConversation = async () => {
|
|
71
|
-
const conv: ConversationInterface = { allowAnonymousPosts: false, contentType: "privateMessage", contentId: props.context.person.id, title: props.context.person.name.display + " " + Locale.label("wrapper.privateMessage"), visibility: "hidden" }
|
|
79
|
+
const conv: ConversationInterface = { allowAnonymousPosts: false, contentType: "privateMessage", contentId: props.context.person.id, title: props.context.person.name.display + " " + Locale.label("wrapper.privateMessage", "Private Message"), visibility: "hidden" }
|
|
72
80
|
const result: ConversationInterface[] = await ApiHelper.post("/conversations", [conv], "MessagingApi");
|
|
73
81
|
|
|
74
82
|
const pm: PrivateMessageInterface = {
|
|
@@ -86,34 +94,163 @@ export const NewPrivateMessage: React.FC<Props> = (props) => {
|
|
|
86
94
|
}, [props.selectedPerson]);
|
|
87
95
|
|
|
88
96
|
|
|
97
|
+
const theme = useTheme();
|
|
98
|
+
const [isSearching, setIsSearching] = useState(false);
|
|
99
|
+
|
|
100
|
+
const handleSearchSubmit = async (e: React.MouseEvent) => {
|
|
101
|
+
if (e !== null) e.preventDefault();
|
|
102
|
+
if (!searchText.trim()) return;
|
|
103
|
+
|
|
104
|
+
setIsSearching(true);
|
|
105
|
+
let term = escape(searchText.trim());
|
|
106
|
+
const data = await ApiHelper.get("/people/search?term=" + term, "MembershipApi");
|
|
107
|
+
setSearchResults(data);
|
|
108
|
+
setIsSearching(false);
|
|
109
|
+
};
|
|
110
|
+
|
|
89
111
|
if (!selectedPerson) return (
|
|
90
|
-
<
|
|
91
|
-
<
|
|
92
|
-
<
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
<
|
|
103
|
-
<
|
|
104
|
-
|
|
105
|
-
|
|
112
|
+
<Paper elevation={0} sx={{ height: '100%', display: 'flex', flexDirection: 'column' }}>
|
|
113
|
+
<Box sx={{ p: 2, borderBottom: 1, borderColor: 'divider' }}>
|
|
114
|
+
<Stack direction="row" alignItems="center" spacing={2}>
|
|
115
|
+
<IconButton onClick={props.onBack}>
|
|
116
|
+
<ArrowBackIcon />
|
|
117
|
+
</IconButton>
|
|
118
|
+
<Typography variant="h6" component="h2">
|
|
119
|
+
{Locale.label("wrapper.newPrivateMessage", "New Private Message")}
|
|
120
|
+
</Typography>
|
|
121
|
+
</Stack>
|
|
122
|
+
</Box>
|
|
123
|
+
|
|
124
|
+
<Box sx={{ p: 3 }}>
|
|
125
|
+
<Stack spacing={3}>
|
|
126
|
+
<Box>
|
|
127
|
+
<Typography variant="body1" color="textSecondary" gutterBottom>
|
|
128
|
+
{Locale.label("wrapper.searchForPerson", "Search for a person to message")}
|
|
129
|
+
</Typography>
|
|
130
|
+
<TextField
|
|
131
|
+
fullWidth
|
|
132
|
+
placeholder="Search by name..."
|
|
133
|
+
id="searchText"
|
|
134
|
+
data-testid="search-input"
|
|
135
|
+
value={searchText}
|
|
136
|
+
onChange={handleChange}
|
|
137
|
+
onKeyDown={(e) => {
|
|
138
|
+
e.stopPropagation();
|
|
139
|
+
if (e.key === 'Enter') handleSearchSubmit(null);
|
|
140
|
+
}}
|
|
141
|
+
InputProps={{
|
|
142
|
+
startAdornment: (
|
|
143
|
+
<InputAdornment position="start">
|
|
144
|
+
<PersonSearchIcon color="action" />
|
|
145
|
+
</InputAdornment>
|
|
146
|
+
),
|
|
147
|
+
endAdornment: (
|
|
148
|
+
<InputAdornment position="end">
|
|
149
|
+
<Button
|
|
150
|
+
variant="contained"
|
|
151
|
+
size="small"
|
|
152
|
+
onClick={handleSearchSubmit}
|
|
153
|
+
disabled={!searchText.trim() || isSearching}
|
|
154
|
+
>
|
|
155
|
+
{Locale.label("common.search", "Search")}
|
|
156
|
+
</Button>
|
|
157
|
+
</InputAdornment>
|
|
158
|
+
)
|
|
159
|
+
}}
|
|
160
|
+
sx={{ mt: 1 }}
|
|
161
|
+
/>
|
|
162
|
+
</Box>
|
|
163
|
+
|
|
164
|
+
{isSearching && (
|
|
165
|
+
<Box>
|
|
166
|
+
{[...Array(3)].map((_, index) => (
|
|
167
|
+
<Box key={index} sx={{ display: 'flex', alignItems: 'center', mb: 2 }}>
|
|
168
|
+
<Skeleton variant="circular" width={48} height={48} sx={{ mr: 2 }} />
|
|
169
|
+
<Skeleton variant="text" width="60%" height={24} />
|
|
170
|
+
</Box>
|
|
171
|
+
))}
|
|
172
|
+
</Box>
|
|
173
|
+
)}
|
|
174
|
+
|
|
175
|
+
{!isSearching && searchResults.length > 0 && (
|
|
176
|
+
<Box>
|
|
177
|
+
<Typography variant="subtitle2" color="textSecondary" gutterBottom>
|
|
178
|
+
{searchResults.length} {searchResults.length === 1 ? 'person' : 'people'} found
|
|
179
|
+
</Typography>
|
|
180
|
+
<List sx={{ bgcolor: 'background.paper', borderRadius: 1 }}>
|
|
181
|
+
{searchResults.map((person, index) => (
|
|
182
|
+
<React.Fragment key={person.id}>
|
|
183
|
+
<ListItemButton
|
|
184
|
+
onClick={() => handlePersonSelected(person)}
|
|
185
|
+
sx={{ py: 2 }}
|
|
186
|
+
>
|
|
187
|
+
<ListItemAvatar>
|
|
188
|
+
<PersonAvatar person={person} size="small" />
|
|
189
|
+
</ListItemAvatar>
|
|
190
|
+
<ListItemText
|
|
191
|
+
primary={person.name.display}
|
|
192
|
+
secondary={person.contactInfo?.email || ''}
|
|
193
|
+
/>
|
|
194
|
+
</ListItemButton>
|
|
195
|
+
{index < searchResults.length - 1 && <Divider />}
|
|
196
|
+
</React.Fragment>
|
|
197
|
+
))}
|
|
198
|
+
</List>
|
|
199
|
+
</Box>
|
|
200
|
+
)}
|
|
201
|
+
|
|
202
|
+
{!isSearching && searchText && searchResults.length === 0 && (
|
|
203
|
+
<Box sx={{ textAlign: 'center', py: 4 }}>
|
|
204
|
+
<PersonSearchIcon sx={{ fontSize: 48, color: 'grey.400', mb: 2 }} />
|
|
205
|
+
<Typography variant="h6" color="textSecondary">
|
|
206
|
+
No people found
|
|
207
|
+
</Typography>
|
|
208
|
+
<Typography variant="body2" color="textSecondary">
|
|
209
|
+
Try searching with a different name
|
|
210
|
+
</Typography>
|
|
211
|
+
</Box>
|
|
212
|
+
)}
|
|
213
|
+
</Stack>
|
|
214
|
+
</Box>
|
|
215
|
+
</Paper>
|
|
106
216
|
);
|
|
107
217
|
else {
|
|
108
218
|
return (
|
|
109
|
-
<
|
|
110
|
-
<
|
|
111
|
-
<
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
219
|
+
<Paper elevation={0} sx={{ height: '100%', display: 'flex', flexDirection: 'column' }}>
|
|
220
|
+
<Box sx={{ p: 2, borderBottom: 1, borderColor: 'divider' }}>
|
|
221
|
+
<Stack direction="row" alignItems="center" spacing={2}>
|
|
222
|
+
<IconButton onClick={props.onBack}>
|
|
223
|
+
<ArrowBackIcon />
|
|
224
|
+
</IconButton>
|
|
225
|
+
<Typography variant="h6" component="h2">
|
|
226
|
+
{Locale.label("wrapper.newPrivateMessage", "New Private Message")}
|
|
227
|
+
</Typography>
|
|
228
|
+
</Stack>
|
|
229
|
+
</Box>
|
|
230
|
+
|
|
231
|
+
<Box sx={{ p: 3 }}>
|
|
232
|
+
<Stack direction="row" spacing={2} alignItems="center" sx={{ mb: 3 }}>
|
|
233
|
+
<PersonAvatar person={selectedPerson} size="medium" />
|
|
234
|
+
<Box>
|
|
235
|
+
<Typography variant="subtitle1" fontWeight="medium">
|
|
236
|
+
{selectedPerson.name.display}
|
|
237
|
+
</Typography>
|
|
238
|
+
{selectedPerson.contactInfo?.email && (
|
|
239
|
+
<Typography variant="body2" color="textSecondary">
|
|
240
|
+
{selectedPerson.contactInfo.email}
|
|
241
|
+
</Typography>
|
|
242
|
+
)}
|
|
243
|
+
</Box>
|
|
244
|
+
</Stack>
|
|
245
|
+
<Divider sx={{ mb: 3 }} />
|
|
246
|
+
<AddNote
|
|
247
|
+
context={props.context}
|
|
248
|
+
conversationId={null}
|
|
249
|
+
onUpdate={handleNoteAdded}
|
|
250
|
+
createConversation={createConversation}
|
|
251
|
+
/>
|
|
252
|
+
</Box>
|
|
253
|
+
</Paper>
|
|
117
254
|
)
|
|
118
255
|
}
|
|
119
256
|
}
|