@churchapps/apphelper 0.5.3 → 0.5.4
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/header/PrimaryMenu.d.ts.map +1 -1
- package/dist/components/header/PrimaryMenu.js +1 -0
- package/dist/components/header/PrimaryMenu.js.map +1 -1
- package/dist/components/header/SupportDrawer.d.ts.map +1 -1
- package/dist/components/header/SupportDrawer.js +1 -0
- package/dist/components/header/SupportDrawer.js.map +1 -1
- package/dist/components/notes/AddNote.d.ts +2 -1
- package/dist/components/notes/AddNote.d.ts.map +1 -1
- package/dist/components/notes/AddNote.js +54 -67
- package/dist/components/notes/AddNote.js.map +1 -1
- package/dist/components/notes/Note.d.ts +2 -0
- package/dist/components/notes/Note.d.ts.map +1 -1
- package/dist/components/notes/Note.js +13 -2
- package/dist/components/notes/Note.js.map +1 -1
- package/dist/helpers/FileHelper.d.ts +1 -1
- package/dist/helpers/FileHelper.d.ts.map +1 -1
- package/dist/hooks/useMountedState.d.ts.map +1 -1
- package/dist/hooks/useMountedState.js +1 -0
- package/dist/hooks/useMountedState.js.map +1 -1
- package/dist/hooks/useNotifications.d.ts.map +1 -1
- package/dist/hooks/useNotifications.js +1 -0
- package/dist/hooks/useNotifications.js.map +1 -1
- package/package.json +1 -1
- package/src/components/header/PrimaryMenu.tsx +1 -0
- package/src/components/header/SupportDrawer.tsx +1 -0
- package/src/components/notes/AddNote.tsx +104 -99
- package/src/components/notes/Note.tsx +20 -4
- package/src/hooks/useMountedState.ts +2 -0
- package/src/hooks/useNotifications.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrimaryMenu.d.ts","sourceRoot":"","sources":["../../../src/components/header/PrimaryMenu.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PrimaryMenu.d.ts","sourceRoot":"","sources":["../../../src/components/header/PrimaryMenu.tsx"],"names":[],"mappings":"AAKA,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1D,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,4CAyFvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrimaryMenu.js","sourceRoot":"","sources":["../../../src/components/header/PrimaryMenu.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PrimaryMenu.js","sourceRoot":"","sources":["../../../src/components/header/PrimaryMenu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupportDrawer.d.ts","sourceRoot":"","sources":["../../../src/components/header/SupportDrawer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SupportDrawer.d.ts","sourceRoot":"","sources":["../../../src/components/header/SupportDrawer.tsx"],"names":[],"mappings":"AAKA,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,4CAqGzC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
3
|
import { useEffect, useState } from "react";
|
|
3
4
|
import { Avatar, Box, Button, Drawer, Icon, IconButton, List, ListItem, ListItemButton, ListItemIcon, ListItemText, Typography } from "@mui/material";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupportDrawer.js","sourceRoot":"","sources":["../../../src/components/header/SupportDrawer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SupportDrawer.js","sourceRoot":"","sources":["../../../src/components/header/SupportDrawer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,8 @@ type Props = {
|
|
|
5
5
|
createConversation: () => Promise<string>;
|
|
6
6
|
conversationId?: string;
|
|
7
7
|
context: UserContextInterface;
|
|
8
|
+
onCancel?: () => void;
|
|
8
9
|
};
|
|
9
|
-
export declare function AddNote({ context, ...props }: Props): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare function AddNote({ context, onCancel, ...props }: Props): import("react/jsx-runtime").JSX.Element;
|
|
10
11
|
export {};
|
|
11
12
|
//# sourceMappingURL=AddNote.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddNote.d.ts","sourceRoot":"","sources":["../../../src/components/notes/AddNote.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAoB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"AddNote.d.ts","sourceRoot":"","sources":["../../../src/components/notes/AddNote.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAoB,oBAAoB,EAAc,MAAM,qBAAqB,CAAC;AAazF,KAAK,KAAK,GAAG;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,kBAAkB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,wBAAgB,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,2CA8J7D"}
|
|
@@ -1,83 +1,74 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import
|
|
3
|
+
import { useState, useEffect } from "react";
|
|
4
4
|
import { ApiHelper, Locale, PersonHelper } from "../../helpers";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { UserHelper } from "@churchapps/helpers";
|
|
6
|
+
import { Box, Stack, TextField, IconButton, Paper, CircularProgress, Avatar, Icon } from "@mui/material";
|
|
7
7
|
import { ErrorMessages } from "../ErrorMessages";
|
|
8
|
-
export function AddNote({ context, ...props }) {
|
|
8
|
+
export function AddNote({ context, onCancel, ...props }) {
|
|
9
9
|
const [message, setMessage] = useState();
|
|
10
|
-
const [errors, setErrors] =
|
|
11
|
-
const [isSubmitting, setIsSubmitting] =
|
|
10
|
+
const [errors, setErrors] = useState([]);
|
|
11
|
+
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
12
12
|
const headerText = props.messageId ? "Edit note" : "Add a note";
|
|
13
|
+
const churchId = UserHelper.currentUserChurch?.church?.id || "";
|
|
13
14
|
useEffect(() => {
|
|
14
|
-
if (props.messageId)
|
|
15
|
-
ApiHelper.get(`/messages/${props.messageId}`, "MessagingApi")
|
|
16
|
-
|
|
15
|
+
if (props.messageId) {
|
|
16
|
+
ApiHelper.get(`/messages/${churchId}/${props.messageId}`, "MessagingApi")
|
|
17
|
+
.then((n) => setMessage(n));
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
17
20
|
setMessage({ conversationId: props.conversationId, content: "" });
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
21
|
+
}
|
|
22
|
+
return () => setMessage(null);
|
|
21
23
|
}, [props.messageId, props.conversationId]);
|
|
22
24
|
const handleChange = (e) => {
|
|
23
25
|
setErrors([]);
|
|
24
|
-
|
|
25
|
-
m.content = e.target.value;
|
|
26
|
-
setMessage(m);
|
|
26
|
+
setMessage({ ...message, content: e.target.value });
|
|
27
27
|
};
|
|
28
28
|
const validate = () => {
|
|
29
29
|
const result = [];
|
|
30
|
-
if (!message
|
|
30
|
+
if (!message?.content?.trim())
|
|
31
31
|
result.push(Locale.label("notes.validate.content", "Please enter a message"));
|
|
32
32
|
setErrors(result);
|
|
33
33
|
return result.length === 0;
|
|
34
34
|
};
|
|
35
35
|
async function handleSave() {
|
|
36
|
-
if (validate())
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
})
|
|
59
|
-
.finally(() => { setIsSubmitting(false); });
|
|
60
|
-
}
|
|
36
|
+
if (!validate())
|
|
37
|
+
return;
|
|
38
|
+
setIsSubmitting(true);
|
|
39
|
+
let cId = props.conversationId;
|
|
40
|
+
if (!cId)
|
|
41
|
+
cId = await props.createConversation();
|
|
42
|
+
const m = { ...message, conversationId: cId };
|
|
43
|
+
ApiHelper.post("/messages", [m], "MessagingApi")
|
|
44
|
+
.then(() => {
|
|
45
|
+
props.onUpdate();
|
|
46
|
+
setMessage({ ...message, content: "" });
|
|
47
|
+
})
|
|
48
|
+
.catch((error) => {
|
|
49
|
+
console.error("Error saving message:", error);
|
|
50
|
+
if (error?.message === "Forbidden") {
|
|
51
|
+
setErrors(["You can't edit the message sent by others."]);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
setErrors([error?.message || "Failed to save message. Please try again."]);
|
|
55
|
+
}
|
|
56
|
+
})
|
|
57
|
+
.finally(() => setIsSubmitting(false));
|
|
61
58
|
}
|
|
62
|
-
;
|
|
63
59
|
async function deleteNote() {
|
|
64
|
-
|
|
60
|
+
if (!props.messageId)
|
|
61
|
+
return;
|
|
62
|
+
await ApiHelper.delete(`/messages/${churchId}/${props.messageId}`, "MessagingApi");
|
|
65
63
|
props.onUpdate();
|
|
66
64
|
}
|
|
67
65
|
const deleteFunction = props.messageId ? deleteNote : null;
|
|
68
66
|
const image = PersonHelper.getPhotoUrl(context?.person);
|
|
69
|
-
return (_jsxs(Box, { sx: { width: '100%' }, children: [_jsx(ErrorMessages, { errors: errors }), _jsx(Paper, { variant: "outlined", sx: {
|
|
70
|
-
p: 2,
|
|
71
|
-
bgcolor: 'grey.50',
|
|
72
|
-
borderColor: 'grey.300'
|
|
73
|
-
}, children: _jsxs(Stack, { direction: "row", spacing: 2, alignItems: "flex-start", children: [_jsx(Avatar, { src: image, alt: context?.person?.name?.display, sx: { width: 48, height: 48 } }), _jsxs(Box, { sx: { flex: 1 }, children: [_jsx(TextField, { fullWidth: true, multiline: true, rows: 2, name: "noteText", "aria-label": headerText, placeholder: props.messageId ? "Edit your message..." : "Type a message...", variant: "standard", value: message?.content || '', onChange: handleChange, disabled: isSubmitting, InputProps: {
|
|
67
|
+
return (_jsxs(Box, { sx: { width: '100%' }, children: [_jsx(ErrorMessages, { errors: errors }), _jsx(Paper, { variant: "outlined", sx: { p: 2, bgcolor: 'grey.50', borderColor: 'grey.300' }, children: _jsxs(Stack, { direction: "row", spacing: 2, alignItems: "flex-start", children: [_jsx(Avatar, { src: image, alt: context?.person?.name?.display, sx: { width: 48, height: 48 } }), _jsxs(Box, { sx: { flex: 1 }, children: [_jsx(TextField, { fullWidth: true, multiline: true, rows: 2, name: "noteText", "aria-label": headerText, placeholder: props.messageId ? "Edit your message..." : "Type a message...", variant: "standard", value: message?.content || '', onChange: handleChange, disabled: isSubmitting, InputProps: {
|
|
74
68
|
disableUnderline: true,
|
|
75
69
|
sx: {
|
|
76
70
|
fontSize: '1rem',
|
|
77
|
-
'& textarea': {
|
|
78
|
-
resize: 'vertical',
|
|
79
|
-
minHeight: '40px'
|
|
80
|
-
}
|
|
71
|
+
'& textarea': { resize: 'vertical', minHeight: '40px' }
|
|
81
72
|
}
|
|
82
73
|
}, sx: {
|
|
83
74
|
bgcolor: 'white',
|
|
@@ -85,20 +76,16 @@ export function AddNote({ context, ...props }) {
|
|
|
85
76
|
p: 1,
|
|
86
77
|
border: '1px solid',
|
|
87
78
|
borderColor: 'grey.300',
|
|
88
|
-
'&:hover': {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
bgcolor: 'action.disabledBackground',
|
|
100
|
-
color: 'action.disabled'
|
|
101
|
-
}
|
|
102
|
-
}, children: isSubmitting ? _jsx(CircularProgress, { size: 18, color: "inherit" }) : _jsx(SendIcon, { fontSize: "small" }) })] })] })] }) })] }));
|
|
79
|
+
'&:hover': { borderColor: 'grey.400' },
|
|
80
|
+
'&.Mui-focused': { borderColor: 'primary.main' }
|
|
81
|
+
} }), _jsxs(Box, { sx: { display: 'flex', alignItems: 'center', mt: 1 }, children: [props.messageId && (_jsx(IconButton, { size: "small", onClick: () => {
|
|
82
|
+
setMessage({ ...message, content: "" });
|
|
83
|
+
onCancel?.();
|
|
84
|
+
}, disabled: isSubmitting, sx: { color: 'grey.700' }, children: _jsx(Icon, { fontSize: "small", children: "cancel" }) })), _jsx(Box, { sx: { flex: 1 } }), _jsxs(Box, { sx: { display: 'flex', gap: 0.5 }, children: [deleteFunction && (_jsx(IconButton, { size: "small", onClick: deleteFunction, disabled: isSubmitting, sx: { color: 'error.main' }, children: _jsx(Icon, { fontSize: "small", children: "delete" }) })), _jsx(IconButton, { size: "small", color: "primary", onClick: handleSave, disabled: isSubmitting || !message?.content?.trim(), sx: {
|
|
85
|
+
bgcolor: 'primary.main',
|
|
86
|
+
color: 'white',
|
|
87
|
+
'&:hover': { bgcolor: 'primary.dark' },
|
|
88
|
+
'&:disabled': { bgcolor: 'action.disabledBackground', color: 'action.disabled' }
|
|
89
|
+
}, children: isSubmitting ? _jsx(CircularProgress, { size: 18, color: "inherit" }) : _jsx(Icon, { fontSize: "small", children: "send" }) })] })] })] })] }) })] }));
|
|
103
90
|
}
|
|
104
91
|
//# sourceMappingURL=AddNote.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddNote.js","sourceRoot":"","sources":["../../../src/components/notes/AddNote.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,
|
|
1
|
+
{"version":3,"file":"AddNote.js","sourceRoot":"","sources":["../../../src/components/notes/AddNote.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Note.d.ts","sourceRoot":"","sources":["../../../src/components/notes/Note.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Note.d.ts","sourceRoot":"","sources":["../../../src/components/notes/Note.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAG5E,UAAU,KAAK;IACb,OAAO,EAAE,gBAAgB,CAAC;IAC1B,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAmEhC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
3
|
import { Icon, IconButton, Stack, Box, Typography } from "@mui/material";
|
|
3
4
|
import { useState, useEffect } from "react";
|
|
@@ -8,10 +9,20 @@ export const Note = (props) => {
|
|
|
8
9
|
useEffect(() => setMessage(props.message), [props.message]);
|
|
9
10
|
if (message === null)
|
|
10
11
|
return null;
|
|
11
|
-
|
|
12
|
+
const datePosted = new Date(message.timeUpdated || message.timeSent);
|
|
12
13
|
const displayDuration = DateHelper.getDisplayDuration(datePosted);
|
|
13
14
|
const isEdited = message.timeUpdated && message.timeUpdated !== message.timeSent;
|
|
14
15
|
const contents = message.content?.split("\n");
|
|
15
|
-
return (_jsxs(Box, { sx: {
|
|
16
|
+
return (_jsxs(Box, { sx: {
|
|
17
|
+
display: 'flex',
|
|
18
|
+
gap: 2,
|
|
19
|
+
mb: 2,
|
|
20
|
+
p: 1,
|
|
21
|
+
borderRadius: 1,
|
|
22
|
+
bgcolor: props.isEditing ? 'rgba(255, 243, 224, 0.5)' : 'transparent',
|
|
23
|
+
border: props.isEditing ? '1px solid #FFA726' : 'none',
|
|
24
|
+
transition: 'background-color 0.3s, border 0.3s',
|
|
25
|
+
'&:hover': { bgcolor: 'action.hover' }
|
|
26
|
+
}, children: [_jsx(PersonAvatar, { person: message.person, size: "small" }), _jsx(Box, { sx: { flex: 1 }, children: _jsxs(Stack, { direction: "row", justifyContent: "space-between", alignItems: "flex-start", children: [_jsxs(Box, { sx: { flex: 1 }, children: [_jsxs(Stack, { direction: "row", alignItems: "center", spacing: 1, sx: { mb: 0.5 }, children: [_jsx(Typography, { variant: "subtitle2", fontWeight: "bold", children: message.person?.name?.display }), _jsx(Typography, { variant: "caption", color: "text.secondary", children: displayDuration }), isEdited && (_jsx(Typography, { variant: "caption", color: "text.secondary", children: "(edited)" }))] }), _jsx(Box, { children: contents.map((c, i) => c ? (_jsx(Typography, { variant: "body2", sx: { mb: 0.5 }, children: c }, i)) : (_jsx(Box, { sx: { height: '1em' } }, i))) })] }), (message?.id && message.personId === props.context?.person.id && !props.hideEdit) && (_jsx(IconButton, { size: "small", "aria-label": "editNote", onClick: () => props.showEditNote(message.id), sx: { opacity: 0.7, '&:hover': { opacity: 1 } }, children: _jsx(Icon, { fontSize: "small", children: "edit" }) }))] }) })] }));
|
|
16
27
|
};
|
|
17
28
|
//# sourceMappingURL=Note.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Note.js","sourceRoot":"","sources":["../../../src/components/notes/Note.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Note.js","sourceRoot":"","sources":["../../../src/components/notes/Note.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare class FileHelper {
|
|
2
|
-
static postPresignedFile: (presigned: any, uploadedFile: File, progressCallback: (percent: number) => void) => Promise<import("axios").AxiosResponse<any, any>>;
|
|
2
|
+
static postPresignedFile: (presigned: any, uploadedFile: File, progressCallback: (percent: number) => void) => Promise<import("axios").AxiosResponse<any, any, {}>>;
|
|
3
3
|
static dataURLtoBlob(dataurl: string): Blob;
|
|
4
4
|
}
|
|
5
5
|
//# sourceMappingURL=FileHelper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileHelper.d.ts","sourceRoot":"","sources":["../../src/helpers/FileHelper.ts"],"names":[],"mappings":"AAEA,qBAAa,UAAU;IAErB,MAAM,CAAC,iBAAiB,GAAI,WAAW,GAAG,EAAE,cAAc,IAAI,EAAE,kBAAkB,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"FileHelper.d.ts","sourceRoot":"","sources":["../../src/helpers/FileHelper.ts"],"names":[],"mappings":"AAEA,qBAAa,UAAU;IAErB,MAAM,CAAC,iBAAiB,GAAI,WAAW,GAAG,EAAE,cAAc,IAAI,EAAE,kBAAkB,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,0DAgBzG;IAEF,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM;CAQrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMountedState.d.ts","sourceRoot":"","sources":["../../src/hooks/useMountedState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useMountedState.d.ts","sourceRoot":"","sources":["../../src/hooks/useMountedState.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe,qBAa3B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMountedState.js","sourceRoot":"","sources":["../../src/hooks/useMountedState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAChC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAE3D,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,OAAO,GAAG,IAAI,CAAA;QAEzB,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,OAAO,GAAG,KAAK,CAAA;QAC5B,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"useMountedState.js","sourceRoot":"","sources":["../../src/hooks/useMountedState.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAChC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAE3D,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,OAAO,GAAG,IAAI,CAAA;QAEzB,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,OAAO,GAAG,KAAK,CAAA;QAC5B,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNotifications.d.ts","sourceRoot":"","sources":["../../src/hooks/useNotifications.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useNotifications.d.ts","sourceRoot":"","sources":["../../src/hooks/useNotifications.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,GAAG,sBAAsB,CA8D7F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNotifications.js","sourceRoot":"","sources":["../../src/hooks/useNotifications.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useNotifications.js","sourceRoot":"","sources":["../../src/hooks/useNotifications.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
import React, { useEffect, useState } from "react";
|
|
2
3
|
import { Avatar, Box, Button, Drawer, Icon, IconButton, List, ListItem, ListItemButton, ListItemIcon, ListItemText, Typography } from "@mui/material";
|
|
3
4
|
import { ApiHelper, UserHelper } from "../../helpers";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import React, { useState, useEffect } from "react"
|
|
4
|
-
import { ApiHelper, Locale, PersonHelper } from "../../helpers"
|
|
5
|
-
import { MessageInterface, UserContextInterface } from "@churchapps/helpers"
|
|
3
|
+
import React, { useState, useEffect } from "react";
|
|
4
|
+
import { ApiHelper, Locale, PersonHelper } from "../../helpers";
|
|
5
|
+
import { MessageInterface, UserContextInterface, UserHelper } from "@churchapps/helpers";
|
|
6
6
|
import {
|
|
7
7
|
Box,
|
|
8
8
|
Stack,
|
|
@@ -10,102 +10,94 @@ import {
|
|
|
10
10
|
IconButton,
|
|
11
11
|
Paper,
|
|
12
12
|
CircularProgress,
|
|
13
|
-
Avatar
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
import { ErrorMessages } from "../ErrorMessages"
|
|
13
|
+
Avatar,
|
|
14
|
+
Icon
|
|
15
|
+
} from "@mui/material";
|
|
16
|
+
import { ErrorMessages } from "../ErrorMessages";
|
|
17
17
|
|
|
18
18
|
type Props = {
|
|
19
19
|
messageId?: string;
|
|
20
20
|
onUpdate: () => void;
|
|
21
21
|
createConversation: () => Promise<string>;
|
|
22
22
|
conversationId?: string;
|
|
23
|
-
context: UserContextInterface
|
|
23
|
+
context: UserContextInterface;
|
|
24
|
+
onCancel?: () => void;
|
|
24
25
|
};
|
|
25
26
|
|
|
26
|
-
export function AddNote({ context, ...props }: Props) {
|
|
27
|
-
const [message, setMessage] = useState<MessageInterface>()
|
|
28
|
-
const [errors, setErrors] =
|
|
29
|
-
const [isSubmitting, setIsSubmitting] =
|
|
30
|
-
const headerText = props.messageId ? "Edit note" : "Add a note"
|
|
27
|
+
export function AddNote({ context, onCancel, ...props }: Props) {
|
|
28
|
+
const [message, setMessage] = useState<MessageInterface>();
|
|
29
|
+
const [errors, setErrors] = useState<string[]>([]);
|
|
30
|
+
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
31
|
+
const headerText = props.messageId ? "Edit note" : "Add a note";
|
|
32
|
+
const churchId = UserHelper.currentUserChurch?.church?.id || "";
|
|
31
33
|
|
|
32
34
|
useEffect(() => {
|
|
33
|
-
if (props.messageId)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
if (props.messageId) {
|
|
36
|
+
ApiHelper.get(`/messages/${churchId}/${props.messageId}`, "MessagingApi")
|
|
37
|
+
.then((n: any) => setMessage(n));
|
|
38
|
+
} else {
|
|
39
|
+
setMessage({ conversationId: props.conversationId, content: "" });
|
|
40
|
+
}
|
|
41
|
+
return () => setMessage(null);
|
|
42
|
+
}, [props.messageId, props.conversationId]);
|
|
43
|
+
|
|
44
|
+
const handleChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>) => {
|
|
41
45
|
setErrors([]);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
setMessage(m);
|
|
45
|
-
}
|
|
46
|
+
setMessage({ ...message, content: e.target.value });
|
|
47
|
+
};
|
|
46
48
|
|
|
47
49
|
const validate = () => {
|
|
48
50
|
const result = [];
|
|
49
|
-
if (!message
|
|
51
|
+
if (!message?.content?.trim()) result.push(Locale.label("notes.validate.content", "Please enter a message"));
|
|
50
52
|
setErrors(result);
|
|
51
53
|
return result.length === 0;
|
|
52
|
-
}
|
|
54
|
+
};
|
|
53
55
|
|
|
54
56
|
async function handleSave() {
|
|
55
|
-
if (validate())
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
.finally(() => { setIsSubmitting(false); });
|
|
78
|
-
}
|
|
79
|
-
};
|
|
57
|
+
if (!validate()) return;
|
|
58
|
+
|
|
59
|
+
setIsSubmitting(true);
|
|
60
|
+
let cId = props.conversationId;
|
|
61
|
+
if (!cId) cId = await props.createConversation();
|
|
62
|
+
|
|
63
|
+
const m = { ...message, conversationId: cId };
|
|
64
|
+
ApiHelper.post("/messages", [m], "MessagingApi")
|
|
65
|
+
.then(() => {
|
|
66
|
+
props.onUpdate();
|
|
67
|
+
setMessage({ ...message, content: "" });
|
|
68
|
+
})
|
|
69
|
+
.catch((error: any) => {
|
|
70
|
+
console.error("Error saving message:", error);
|
|
71
|
+
if (error?.message === "Forbidden") {
|
|
72
|
+
setErrors(["You can't edit the message sent by others."]);
|
|
73
|
+
} else {
|
|
74
|
+
setErrors([error?.message || "Failed to save message. Please try again."]);
|
|
75
|
+
}
|
|
76
|
+
})
|
|
77
|
+
.finally(() => setIsSubmitting(false));
|
|
78
|
+
}
|
|
80
79
|
|
|
81
80
|
async function deleteNote() {
|
|
82
|
-
|
|
83
|
-
props.
|
|
81
|
+
if (!props.messageId) return;
|
|
82
|
+
await ApiHelper.delete(`/messages/${churchId}/${props.messageId}`, "MessagingApi");
|
|
83
|
+
props.onUpdate();
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
const deleteFunction = props.messageId ? deleteNote : null;
|
|
87
|
-
|
|
88
|
-
const image = PersonHelper.getPhotoUrl(context?.person)
|
|
87
|
+
const image = PersonHelper.getPhotoUrl(context?.person);
|
|
89
88
|
|
|
90
89
|
return (
|
|
91
90
|
<Box sx={{ width: '100%' }}>
|
|
92
91
|
<ErrorMessages errors={errors} />
|
|
93
|
-
|
|
94
|
-
<Paper
|
|
95
|
-
variant="outlined"
|
|
96
|
-
sx={{
|
|
97
|
-
p: 2,
|
|
98
|
-
bgcolor: 'grey.50',
|
|
99
|
-
borderColor: 'grey.300'
|
|
100
|
-
}}
|
|
101
|
-
>
|
|
92
|
+
|
|
93
|
+
<Paper variant="outlined" sx={{ p: 2, bgcolor: 'grey.50', borderColor: 'grey.300' }}>
|
|
102
94
|
<Stack direction="row" spacing={2} alignItems="flex-start">
|
|
103
95
|
<Avatar
|
|
104
96
|
src={image}
|
|
105
97
|
alt={context?.person?.name?.display}
|
|
106
98
|
sx={{ width: 48, height: 48 }}
|
|
107
99
|
/>
|
|
108
|
-
|
|
100
|
+
|
|
109
101
|
<Box sx={{ flex: 1 }}>
|
|
110
102
|
<TextField
|
|
111
103
|
fullWidth
|
|
@@ -122,10 +114,7 @@ export function AddNote({ context, ...props }: Props) {
|
|
|
122
114
|
disableUnderline: true,
|
|
123
115
|
sx: {
|
|
124
116
|
fontSize: '1rem',
|
|
125
|
-
'& textarea': {
|
|
126
|
-
resize: 'vertical',
|
|
127
|
-
minHeight: '40px'
|
|
128
|
-
}
|
|
117
|
+
'& textarea': { resize: 'vertical', minHeight: '40px' }
|
|
129
118
|
}
|
|
130
119
|
}}
|
|
131
120
|
sx={{
|
|
@@ -134,43 +123,59 @@ export function AddNote({ context, ...props }: Props) {
|
|
|
134
123
|
p: 1,
|
|
135
124
|
border: '1px solid',
|
|
136
125
|
borderColor: 'grey.300',
|
|
137
|
-
'&:hover': {
|
|
138
|
-
|
|
139
|
-
},
|
|
140
|
-
'&.Mui-focused': {
|
|
141
|
-
borderColor: 'primary.main'
|
|
142
|
-
}
|
|
126
|
+
'&:hover': { borderColor: 'grey.400' },
|
|
127
|
+
'&.Mui-focused': { borderColor: 'primary.main' }
|
|
143
128
|
}}
|
|
144
129
|
/>
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
130
|
+
|
|
131
|
+
{/* Buttons: Cancel (left), Delete + Send (right) */}
|
|
132
|
+
<Box sx={{ display: 'flex', alignItems: 'center', mt: 1 }}>
|
|
133
|
+
{/* Cancel Button */}
|
|
134
|
+
{props.messageId && (
|
|
148
135
|
<IconButton
|
|
149
136
|
size="small"
|
|
150
|
-
onClick={
|
|
137
|
+
onClick={() => {
|
|
138
|
+
setMessage({ ...message, content: "" });
|
|
139
|
+
onCancel?.();
|
|
140
|
+
}}
|
|
151
141
|
disabled={isSubmitting}
|
|
152
|
-
sx={{ color: '
|
|
142
|
+
sx={{ color: 'grey.700' }}
|
|
153
143
|
>
|
|
154
|
-
<
|
|
144
|
+
<Icon fontSize="small">cancel</Icon>
|
|
155
145
|
</IconButton>
|
|
156
146
|
)}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
color: '
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
147
|
+
|
|
148
|
+
{/* Spacer */}
|
|
149
|
+
<Box sx={{ flex: 1 }} />
|
|
150
|
+
|
|
151
|
+
{/* Right buttons: Delete + Send */}
|
|
152
|
+
<Box sx={{ display: 'flex', gap: 0.5 }}>
|
|
153
|
+
{deleteFunction && (
|
|
154
|
+
<IconButton
|
|
155
|
+
size="small"
|
|
156
|
+
onClick={deleteFunction}
|
|
157
|
+
disabled={isSubmitting}
|
|
158
|
+
sx={{ color: 'error.main' }}
|
|
159
|
+
>
|
|
160
|
+
<Icon fontSize="small">delete</Icon>
|
|
161
|
+
</IconButton>
|
|
162
|
+
)}
|
|
163
|
+
|
|
164
|
+
<IconButton
|
|
165
|
+
size="small"
|
|
166
|
+
color="primary"
|
|
167
|
+
onClick={handleSave}
|
|
168
|
+
disabled={isSubmitting || !message?.content?.trim()}
|
|
169
|
+
sx={{
|
|
170
|
+
bgcolor: 'primary.main',
|
|
171
|
+
color: 'white',
|
|
172
|
+
'&:hover': { bgcolor: 'primary.dark' },
|
|
173
|
+
'&:disabled': { bgcolor: 'action.disabledBackground', color: 'action.disabled' }
|
|
174
|
+
}}
|
|
175
|
+
>
|
|
176
|
+
{isSubmitting ? <CircularProgress size={18} color="inherit" /> : <Icon fontSize="small">send</Icon>}
|
|
177
|
+
</IconButton>
|
|
178
|
+
</Box>
|
|
174
179
|
</Box>
|
|
175
180
|
</Box>
|
|
176
181
|
</Stack>
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
import { Icon, IconButton, Stack, Box, Typography } from "@mui/material";
|
|
2
4
|
import React, { useState, useEffect } from "react";
|
|
3
5
|
import { DateHelper } from "../../helpers"
|
|
@@ -8,6 +10,8 @@ interface Props {
|
|
|
8
10
|
message: MessageInterface;
|
|
9
11
|
showEditNote: (noteId?: string) => void;
|
|
10
12
|
context: UserContextInterface;
|
|
13
|
+
isEditing?: boolean;
|
|
14
|
+
hideEdit?: boolean;
|
|
11
15
|
}
|
|
12
16
|
|
|
13
17
|
export const Note: React.FC<Props> = (props) => {
|
|
@@ -16,14 +20,26 @@ export const Note: React.FC<Props> = (props) => {
|
|
|
16
20
|
useEffect(() => setMessage(props.message), [props.message]);
|
|
17
21
|
|
|
18
22
|
if (message === null) return null;
|
|
19
|
-
|
|
23
|
+
const datePosted = new Date(message.timeUpdated || message.timeSent);
|
|
20
24
|
const displayDuration = DateHelper.getDisplayDuration(datePosted);
|
|
21
25
|
|
|
22
26
|
const isEdited = message.timeUpdated && message.timeUpdated !== message.timeSent;
|
|
23
27
|
const contents = message.content?.split("\n");
|
|
24
|
-
|
|
28
|
+
|
|
25
29
|
return (
|
|
26
|
-
<Box
|
|
30
|
+
<Box
|
|
31
|
+
sx={{
|
|
32
|
+
display: 'flex',
|
|
33
|
+
gap: 2,
|
|
34
|
+
mb: 2,
|
|
35
|
+
p: 1,
|
|
36
|
+
borderRadius: 1,
|
|
37
|
+
bgcolor: props.isEditing ? 'rgba(255, 243, 224, 0.5)' : 'transparent',
|
|
38
|
+
border: props.isEditing ? '1px solid #FFA726' : 'none',
|
|
39
|
+
transition: 'background-color 0.3s, border 0.3s',
|
|
40
|
+
'&:hover': { bgcolor: 'action.hover' }
|
|
41
|
+
}}
|
|
42
|
+
>
|
|
27
43
|
<PersonAvatar person={message.person} size="small" />
|
|
28
44
|
<Box sx={{ flex: 1 }}>
|
|
29
45
|
<Stack direction="row" justifyContent="space-between" alignItems="flex-start">
|
|
@@ -51,7 +67,7 @@ export const Note: React.FC<Props> = (props) => {
|
|
|
51
67
|
))}
|
|
52
68
|
</Box>
|
|
53
69
|
</Box>
|
|
54
|
-
{(message?.id && message.personId === props.context?.person.id) && (
|
|
70
|
+
{(message?.id && message.personId === props.context?.person.id && !props.hideEdit) && (
|
|
55
71
|
<IconButton
|
|
56
72
|
size="small"
|
|
57
73
|
aria-label="editNote"
|