@churchapps/apphelper 0.4.18 → 0.4.20
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 +1 -1
- package/dist/components/DisplayBox.js.map +1 -1
- package/dist/components/InputBox.js +1 -1
- package/dist/components/InputBox.js.map +1 -1
- package/dist/components/Loading.js +1 -1
- package/dist/components/Loading.js.map +1 -1
- package/dist/components/PageHeader.d.ts.map +1 -1
- package/dist/components/PageHeader.js +6 -6
- package/dist/components/PageHeader.js.map +1 -1
- package/dist/components/header/SiteHeader.d.ts.map +1 -1
- package/dist/components/header/SiteHeader.js +5 -2
- package/dist/components/header/SiteHeader.js.map +1 -1
- package/dist/components/wrapper/ChurchList.d.ts +1 -0
- package/dist/components/wrapper/ChurchList.d.ts.map +1 -1
- package/dist/components/wrapper/ChurchList.js +73 -13
- package/dist/components/wrapper/ChurchList.js.map +1 -1
- package/dist/components/wrapper/Notifications.d.ts.map +1 -1
- package/dist/components/wrapper/Notifications.js +4 -4
- package/dist/components/wrapper/Notifications.js.map +1 -1
- package/dist/components/wrapper/UserMenu.d.ts +1 -3
- package/dist/components/wrapper/UserMenu.d.ts.map +1 -1
- package/dist/components/wrapper/UserMenu.js +53 -9
- package/dist/components/wrapper/UserMenu.js.map +1 -1
- package/dist/helpers/UserHelper.d.ts.map +1 -1
- package/dist/helpers/UserHelper.js +24 -0
- package/dist/helpers/UserHelper.js.map +1 -1
- package/package.json +1 -1
- package/src/components/DisplayBox.tsx +8 -8
- package/src/components/InputBox.tsx +8 -8
- package/src/components/Loading.tsx +1 -1
- package/src/components/PageHeader.tsx +8 -4
- package/src/components/header/SiteHeader.tsx +10 -8
- package/src/components/wrapper/ChurchList.tsx +83 -13
- package/src/components/wrapper/Notifications.tsx +6 -5
- package/src/components/wrapper/UserMenu.tsx +70 -28
- package/src/helpers/UserHelper.ts +26 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { ApiHelper, UserHelper, CommonEnvironmentHelper } from "@churchapps/helpers";
|
|
5
|
-
import { Avatar, Menu, Icon, Button, Box, Badge, Dialog, DialogContent, DialogTitle } from "@mui/material";
|
|
5
|
+
import { Avatar, Menu, Typography, Icon, Button, Box, Badge, Dialog, DialogContent, DialogTitle } from "@mui/material";
|
|
6
6
|
import { NavItem, AppList } from ".";
|
|
7
7
|
import { ChurchList } from "./ChurchList";
|
|
8
8
|
import { TabPanel } from "../TabPanel";
|
|
@@ -70,8 +70,10 @@ const UserMenuContent = React.memo((props) => {
|
|
|
70
70
|
setAnchorEl(null);
|
|
71
71
|
};
|
|
72
72
|
const handleSwitchChurch = () => {
|
|
73
|
+
console.log('UserMenu - handleSwitchChurch called');
|
|
73
74
|
removeCookie("lastChurchId", { path: "/" });
|
|
74
75
|
setTabIndex(2);
|
|
76
|
+
console.log('UserMenu - tabIndex set to 2');
|
|
75
77
|
};
|
|
76
78
|
const getMainLinks = () => {
|
|
77
79
|
const jwt = ApiHelper.getConfig("MembershipApi").jwt;
|
|
@@ -117,14 +119,56 @@ const UserMenuContent = React.memo((props) => {
|
|
|
117
119
|
// Handle menu item clicks if needed
|
|
118
120
|
};
|
|
119
121
|
const [tabIndex, setTabIndex] = React.useState(0);
|
|
120
|
-
const getTabs = () =>
|
|
122
|
+
const getTabs = () => {
|
|
123
|
+
console.log('UserMenu getTabs - Current tabIndex:', tabIndex);
|
|
124
|
+
return (_jsxs(Box, { sx: { borderBottom: 1, borderColor: "divider" }, children: [_jsx(TabPanel, { value: tabIndex, index: 0, children: getMainLinks() }), _jsxs(TabPanel, { value: tabIndex, index: 1, children: [_jsx(NavItem, { label: "Back", icon: "arrow_back", onClick: () => { setTabIndex(0); } }, "AppBack"), _jsx(AppList, { currentUserChurch: props.context?.userChurch, appName: props.appName, onNavigate: props.onNavigate })] }), _jsx(TabPanel, { value: tabIndex, index: 2, children: _jsxs("div", { style: { maxHeight: '70vh', overflowY: "auto" }, children: [_jsx(NavItem, { label: "Back", icon: "arrow_back", onClick: () => { setTabIndex(0); } }, "ChurchBack"), (() => {
|
|
125
|
+
console.log('UserMenu Church Tab - Rendering church list section');
|
|
126
|
+
console.log('UserMenu Church Tab - Full context:', props.context);
|
|
127
|
+
console.log('UserMenu Church Tab - context.userChurches:', props.context?.userChurches);
|
|
128
|
+
console.log('UserMenu Church Tab - context.userChurches[0]:', props.context?.userChurches?.[0]);
|
|
129
|
+
console.log('UserMenu Church Tab - context.userChurch:', props.context?.userChurch);
|
|
130
|
+
console.log('UserMenu Church Tab - userChurches type:', typeof props.context?.userChurches);
|
|
131
|
+
console.log('UserMenu Church Tab - userChurches is array?', Array.isArray(props.context?.userChurches));
|
|
132
|
+
console.log('UserMenu Church Tab - userChurches length:', props.context?.userChurches?.length);
|
|
133
|
+
// Check if userChurches is actually the userChurch object
|
|
134
|
+
if (props.context?.userChurches && !Array.isArray(props.context.userChurches) && props.context.userChurches.id) {
|
|
135
|
+
console.error('UserMenu - ERROR: context.userChurches contains a single church object instead of an array!');
|
|
136
|
+
console.log('UserMenu - Attempting to use context.userChurch as single item array');
|
|
137
|
+
const churchArray = props.context.userChurch ? [props.context.userChurch] : [];
|
|
138
|
+
return _jsx(ChurchList, { userChurches: churchArray, currentUserChurch: props.context?.userChurch, context: props.context, onDelete: handleClose, onChurchChange: () => {
|
|
139
|
+
handleClose();
|
|
140
|
+
// Don't navigate - just close the menu and let the context update trigger re-renders
|
|
141
|
+
} });
|
|
142
|
+
}
|
|
143
|
+
if (!props.context?.userChurches) {
|
|
144
|
+
return _jsx(Typography, { sx: { p: 2, color: 'text.secondary' }, children: "Loading churches..." });
|
|
145
|
+
}
|
|
146
|
+
else if (!Array.isArray(props.context.userChurches)) {
|
|
147
|
+
return _jsx(Typography, { sx: { p: 2, color: 'text.secondary', fontWeight: 'bold' }, children: "Error: Invalid church data format" });
|
|
148
|
+
}
|
|
149
|
+
else if (props.context.userChurches.length === 0) {
|
|
150
|
+
return _jsx(Typography, { sx: { p: 2, color: 'text.secondary' }, children: "No churches available" });
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
// Ensure we always pass an array
|
|
154
|
+
const churchesArray = Array.isArray(props.context.userChurches)
|
|
155
|
+
? props.context.userChurches
|
|
156
|
+
: [props.context.userChurches];
|
|
157
|
+
console.log('UserMenu - Passing to ChurchList:', churchesArray);
|
|
158
|
+
return _jsx(ChurchList, { userChurches: churchesArray, currentUserChurch: props.context?.userChurch, context: props.context, onDelete: handleClose, onChurchChange: () => {
|
|
159
|
+
handleClose();
|
|
160
|
+
// Don't navigate - just close the menu and let the context update trigger re-renders
|
|
161
|
+
} });
|
|
162
|
+
}
|
|
163
|
+
})()] }) })] }));
|
|
164
|
+
};
|
|
121
165
|
const getModals = () => {
|
|
122
166
|
// Helper function to get label with fallback
|
|
123
167
|
const getLabel = (key, fallback) => {
|
|
124
168
|
const label = Locale.label(key);
|
|
125
169
|
return label && label !== key ? label : fallback;
|
|
126
170
|
};
|
|
127
|
-
return (_jsxs(_Fragment, { children: [_jsxs(Dialog, { open: showPM, onClose: () => {
|
|
171
|
+
return (_jsxs(_Fragment, { children: [_jsxs(Dialog, { id: "private-messages-modal", open: showPM, onClose: () => {
|
|
128
172
|
modalStateStore.setShowPM(false);
|
|
129
173
|
}, maxWidth: "md", fullWidth: true, PaperProps: {
|
|
130
174
|
sx: {
|
|
@@ -133,16 +177,16 @@ const UserMenuContent = React.memo((props) => {
|
|
|
133
177
|
display: 'flex',
|
|
134
178
|
flexDirection: 'column'
|
|
135
179
|
}
|
|
136
|
-
}, children: [_jsx(DialogTitle, { children: getLabel("wrapper.messages", "Messages") }), _jsx(DialogContent, { sx: {
|
|
180
|
+
}, children: [_jsx(DialogTitle, { id: "private-messages-title", children: getLabel("wrapper.messages", "Messages") }), _jsx(DialogContent, { sx: {
|
|
137
181
|
flex: 1,
|
|
138
182
|
display: 'flex',
|
|
139
183
|
flexDirection: 'column',
|
|
140
184
|
p: 0,
|
|
141
185
|
overflow: 'hidden',
|
|
142
186
|
minHeight: 0
|
|
143
|
-
}, children: _jsx(PrivateMessages, { context: props.context, refreshKey: currentRefreshKey, onUpdate: stableOnUpdate }) })] }), _jsxs(Dialog, { open: showNotifications, onClose: () => {
|
|
187
|
+
}, children: _jsx(PrivateMessages, { context: props.context, refreshKey: currentRefreshKey, onUpdate: stableOnUpdate }) })] }), _jsxs(Dialog, { id: "notifications-modal", open: showNotifications, onClose: () => {
|
|
144
188
|
modalStateStore.setShowNotifications(false);
|
|
145
|
-
}, maxWidth: "md", fullWidth: true, children: [_jsx(DialogTitle, { children: getLabel("wrapper.notifications", "Notifications") }), _jsx(DialogContent, { children: _jsx(Notifications, { context: props.context, appName: props.appName, onUpdate: props.loadCounts, onNavigate: props.onNavigate }) })] })] }));
|
|
189
|
+
}, maxWidth: "md", fullWidth: true, children: [_jsx(DialogTitle, { id: "notifications-title", children: getLabel("wrapper.notifications", "Notifications") }), _jsx(DialogContent, { children: _jsx(Notifications, { context: props.context, appName: props.appName, onUpdate: props.loadCounts, onNavigate: props.onNavigate }) })] })] }));
|
|
146
190
|
};
|
|
147
191
|
const totalNotifcations = directNotificationCounts.notificationCount + directNotificationCounts.pmCount;
|
|
148
192
|
// Use a ref to track if we should update refresh key
|
|
@@ -191,7 +235,7 @@ const UserMenuContent = React.memo((props) => {
|
|
|
191
235
|
}, [props.context?.person?.id]); // Removed showPM, showNotifications dependencies
|
|
192
236
|
// Use current refresh key
|
|
193
237
|
const currentRefreshKey = refreshKey;
|
|
194
|
-
return (_jsxs(_Fragment, { children: [_jsx(Button, { onClick: handleClick, color: "inherit", "aria-controls": open ? "account-menu" : undefined, "aria-haspopup": "true", "aria-expanded": open ? "true" : undefined, style: { textTransform: "none" }, endIcon: _jsx(Icon, { children: "expand_more" }), children: _jsx(Badge, { badgeContent: totalNotifcations, color: "error", invisible: totalNotifcations === 0, children: _jsx(Avatar, { src: getProfilePic(), sx: { width: 32, height: 32, marginRight: 1 } }) }) }), _jsx(Menu, { anchorEl: anchorEl, id: "
|
|
238
|
+
return (_jsxs(_Fragment, { children: [_jsx(Button, { id: "user-menu-button", onClick: handleClick, color: "inherit", "aria-controls": open ? "account-menu" : undefined, "aria-haspopup": "true", "aria-expanded": open ? "true" : undefined, style: { textTransform: "none" }, endIcon: _jsx(Icon, { children: "expand_more" }), children: _jsx(Badge, { id: "user-menu-notification-badge", badgeContent: totalNotifcations, color: "error", invisible: totalNotifcations === 0, children: _jsx(Avatar, { id: "user-menu-avatar", src: getProfilePic(), sx: { width: 32, height: 32, marginRight: 1 } }) }) }), _jsx(Menu, { anchorEl: anchorEl, id: "user-menu-dropdown", open: open, onClose: handleClose, onClick: (e) => { handleItemClick(e); }, slotProps: { paper: paperProps }, transformOrigin: { horizontal: "right", vertical: "top" }, anchorOrigin: { horizontal: "right", vertical: "bottom" }, sx: { "& .MuiBox-root": { borderBottom: 0 } }, children: getTabs() }), getModals()] }));
|
|
195
239
|
});
|
|
196
240
|
export const UserMenu = React.memo((props) => {
|
|
197
241
|
return (_jsx(CookiesProvider, { defaultSetOptions: { path: '/' }, children: _jsx(UserMenuContent, { ...props }) }));
|
|
@@ -211,8 +255,8 @@ export const UserMenu = React.memo((props) => {
|
|
|
211
255
|
prevProps.context?.userChurch?.church?.id !== nextProps.context?.userChurch?.church?.id) {
|
|
212
256
|
return false;
|
|
213
257
|
}
|
|
214
|
-
// Check if userChurches array changed
|
|
215
|
-
if (prevProps.userChurches?.length !== nextProps.userChurches?.length) {
|
|
258
|
+
// Check if userChurches array changed in context
|
|
259
|
+
if (prevProps.context?.userChurches?.length !== nextProps.context?.userChurches?.length) {
|
|
216
260
|
return false;
|
|
217
261
|
}
|
|
218
262
|
// Check if loadCounts function reference changed (important for functionality)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserMenu.js","sourceRoot":"","sources":["../../../src/components/wrapper/UserMenu.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UserMenu.js","sourceRoot":"","sources":["../../../src/components/wrapper/UserMenu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserHelper.d.ts","sourceRoot":"","sources":["../../src/helpers/UserHelper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,cAAc,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAErI,qBAAa,UAAU;IACtB,MAAM,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;IACnD,MAAM,CAAC,YAAY,EAAE,wBAAwB,EAAE,CAAC;IAChD,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;IAC3B,MAAM,CAAC,aAAa,EAAE,OAAO,CAAS;IACtC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAE/B,MAAM,CAAC,YAAY,GAAU,UAAU,oBAAoB,EAAE,WAAW,MAAM,EAAE,UAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"UserHelper.d.ts","sourceRoot":"","sources":["../../src/helpers/UserHelper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,cAAc,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAErI,qBAAa,UAAU;IACtB,MAAM,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;IACnD,MAAM,CAAC,YAAY,EAAE,wBAAwB,EAAE,CAAC;IAChD,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;IAC3B,MAAM,CAAC,aAAa,EAAE,OAAO,CAAS;IACtC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAE/B,MAAM,CAAC,YAAY,GAAU,UAAU,oBAAoB,EAAE,WAAW,MAAM,EAAE,UAAU,MAAM,mBA8C/F;IAED,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,wBAAwB;IAK1D,MAAM,CAAC,sBAAsB,CAAC,IAAI,EAAE,wBAAwB;IAI5D,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,cAAc,GAAG,OAAO;IAYzE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAUrD,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;CAcjF"}
|
|
@@ -47,6 +47,19 @@ _a = UserHelper;
|
|
|
47
47
|
UserHelper.churchChanged = false;
|
|
48
48
|
UserHelper.selectChurch = async (context, churchId, keyName) => {
|
|
49
49
|
let userChurch = null;
|
|
50
|
+
// Ensure userChurches is initialized
|
|
51
|
+
if (!_a.userChurches || !Array.isArray(_a.userChurches)) {
|
|
52
|
+
console.error('UserHelper.userChurches is not initialized or not an array:', _a.userChurches);
|
|
53
|
+
// Try to get userChurches from context if available
|
|
54
|
+
if (context?.userChurches && Array.isArray(context.userChurches)) {
|
|
55
|
+
console.log('Using userChurches from context');
|
|
56
|
+
_a.userChurches = context.userChurches;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
console.error('Cannot select church: no valid userChurches available');
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
50
63
|
if (churchId) {
|
|
51
64
|
_a.userChurches.forEach(uc => {
|
|
52
65
|
if (uc.church.id === churchId)
|
|
@@ -67,7 +80,18 @@ UserHelper.selectChurch = async (context, churchId, keyName) => {
|
|
|
67
80
|
if (context) {
|
|
68
81
|
if (context.userChurch !== null)
|
|
69
82
|
_a.churchChanged = true;
|
|
83
|
+
console.log('UserHelper.selectChurch - Setting userChurch in context:', userChurch);
|
|
70
84
|
context.setUserChurch(_a.currentUserChurch);
|
|
85
|
+
// Also ensure user is still set in context
|
|
86
|
+
if (_a.user && context.setUser) {
|
|
87
|
+
console.log('UserHelper.selectChurch - Ensuring user is set in context:', _a.user);
|
|
88
|
+
context.setUser(_a.user);
|
|
89
|
+
}
|
|
90
|
+
// Update person if available
|
|
91
|
+
if (_a.person && context.setPerson) {
|
|
92
|
+
console.log('UserHelper.selectChurch - Ensuring person is set in context:', _a.person);
|
|
93
|
+
context.setPerson(_a.person);
|
|
94
|
+
}
|
|
71
95
|
}
|
|
72
96
|
}
|
|
73
97
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserHelper.js","sourceRoot":"","sources":["../../src/helpers/UserHelper.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAG/C,MAAM,OAAO,UAAU;
|
|
1
|
+
{"version":3,"file":"UserHelper.js","sourceRoot":"","sources":["../../src/helpers/UserHelper.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -60,22 +60,22 @@ export const DisplayBox = React.forwardRef<HTMLDivElement, Props>((props, ref) =
|
|
|
60
60
|
else if (props.editContent !== undefined) editContent = props.editContent;
|
|
61
61
|
|
|
62
62
|
return (
|
|
63
|
-
<Paper sx={{ padding: 2, marginBottom: 4 }} id={props.id} data-testid={props["data-testid"] || ""}>
|
|
63
|
+
<Paper sx={{ padding: 2, marginBottom: 4 }} id={props.id || "display-box"} data-testid={props["data-testid"] || ""}>
|
|
64
64
|
{props.help && <HelpIcon article={props.help} />}
|
|
65
|
-
<Box sx={{ display: "flex", justifyContent: "space-between", alignItems: "center" }}>
|
|
66
|
-
<Box sx={{ display: "flex", alignItems: "center" }}>
|
|
67
|
-
{props.headerIcon && <Icon sx={{ color: headerText }}>{props.headerIcon}</Icon>}
|
|
68
|
-
<Typography component="h2" sx={{ display: "inline-block", marginLeft: props.headerIcon ? 1 : 0 }} variant="h6" color={headerText}>
|
|
65
|
+
<Box id="display-box-header" sx={{ display: "flex", justifyContent: "space-between", alignItems: "center" }}>
|
|
66
|
+
<Box id="display-box-title-section" sx={{ display: "flex", alignItems: "center" }}>
|
|
67
|
+
{props.headerIcon && <Icon id="display-box-icon" sx={{ color: headerText }}>{props.headerIcon}</Icon>}
|
|
68
|
+
<Typography id="display-box-title" component="h2" sx={{ display: "inline-block", marginLeft: props.headerIcon ? 1 : 0 }} variant="h6" color={headerText}>
|
|
69
69
|
{props.headerText}
|
|
70
70
|
</Typography>
|
|
71
71
|
|
|
72
72
|
</Box>
|
|
73
|
-
<Box>
|
|
73
|
+
<Box id="display-box-actions">
|
|
74
74
|
{editContent}
|
|
75
75
|
</Box>
|
|
76
76
|
</Box>
|
|
77
|
-
<CustomContextBox ref={ref} data-testid="display-box-content">{props.children}</CustomContextBox>
|
|
78
|
-
{props.footerContent && (<div style={{ marginLeft: -16, marginRight: -16, marginBottom: -15, marginTop: 15 }}>{props.footerContent}</div>)}
|
|
77
|
+
<CustomContextBox id="display-box-content" ref={ref} data-testid="display-box-content">{props.children}</CustomContextBox>
|
|
78
|
+
{props.footerContent && (<div id="display-box-footer" style={{ marginLeft: -16, marginRight: -16, marginBottom: -15, marginTop: 15 }}>{props.footerContent}</div>)}
|
|
79
79
|
</Paper>
|
|
80
80
|
);
|
|
81
81
|
})
|
|
@@ -72,23 +72,23 @@ export function InputBox({ mainContainerCssProps = {}, ...props }: Props) {
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
return (
|
|
75
|
-
<Paper id={props.id} sx={{ padding: 2, marginBottom: 4 }} data-testid={props["data-testid"]} {...mainContainerCssProps}>
|
|
75
|
+
<Paper id={props.id || "input-box"} sx={{ padding: 2, marginBottom: 4 }} data-testid={props["data-testid"]} {...mainContainerCssProps}>
|
|
76
76
|
{props.help && <HelpIcon article={props.help} />}
|
|
77
|
-
<Box sx={{ display: "flex", justifyContent: "space-between", alignItems: "center", position: "relative" }} data-testid="input-box-header">
|
|
78
|
-
<Box display="flex" alignItems="center">
|
|
79
|
-
{props.headerIcon && <Icon sx={{ color: headerText }}>{props.headerIcon}</Icon>}
|
|
77
|
+
<Box id="input-box-header" sx={{ display: "flex", justifyContent: "space-between", alignItems: "center", position: "relative" }} data-testid="input-box-header">
|
|
78
|
+
<Box id="input-box-title-section" display="flex" alignItems="center">
|
|
79
|
+
{props.headerIcon && <Icon id="input-box-icon" sx={{ color: headerText }}>{props.headerIcon}</Icon>}
|
|
80
80
|
{props.headerText && (
|
|
81
|
-
<Typography component="h2" sx={{ display: "inline-block", marginLeft: props.headerIcon ? 1 : 0 }} variant="h6" color={headerText}>
|
|
81
|
+
<Typography id="input-box-title" component="h2" sx={{ display: "inline-block", marginLeft: props.headerIcon ? 1 : 0 }} variant="h6" color={headerText}>
|
|
82
82
|
{props.headerText}
|
|
83
83
|
</Typography>
|
|
84
84
|
)}
|
|
85
85
|
</Box>
|
|
86
|
-
<Box>
|
|
86
|
+
<Box id="input-box-actions">
|
|
87
87
|
{props.headerActionContent}
|
|
88
88
|
</Box>
|
|
89
89
|
</Box>
|
|
90
|
-
<CustomContextBox>{props.children}</CustomContextBox>
|
|
91
|
-
<Stack direction="row" sx={{ marginTop: 1 }} spacing={1} justifyContent="end">
|
|
90
|
+
<CustomContextBox id="input-box-content">{props.children}</CustomContextBox>
|
|
91
|
+
<Stack id="input-box-buttons" direction="row" sx={{ marginTop: 1 }} spacing={1} justifyContent="end">
|
|
92
92
|
{buttons}
|
|
93
93
|
</Stack>
|
|
94
94
|
</Paper>
|
|
@@ -11,7 +11,7 @@ interface PageHeaderProps {
|
|
|
11
11
|
|
|
12
12
|
export const PageHeader: React.FC<PageHeaderProps> = ({ icon, title, subtitle, children, statistics }) => {
|
|
13
13
|
return (
|
|
14
|
-
<Box sx={{
|
|
14
|
+
<Box id="page-header" sx={{
|
|
15
15
|
backgroundColor: "var(--c1l2)",
|
|
16
16
|
color: "#FFF",
|
|
17
17
|
position: 'relative',
|
|
@@ -31,8 +31,9 @@ export const PageHeader: React.FC<PageHeaderProps> = ({ icon, title, subtitle, c
|
|
|
31
31
|
}}>
|
|
32
32
|
<Stack direction={{ xs: "column", md: "row" }} spacing={{ xs: 2, md: 4 }} alignItems={{ xs: "flex-start", md: "center" }} sx={{ width: "100%" }}>
|
|
33
33
|
{/* Left side: Title and Icon */}
|
|
34
|
-
<Stack direction="row" spacing={2} alignItems="center" sx={{ flex: 1 }}>
|
|
34
|
+
<Stack id="page-header-title-section" direction="row" spacing={2} alignItems="center" sx={{ flex: 1 }}>
|
|
35
35
|
<Box
|
|
36
|
+
id="page-header-icon"
|
|
36
37
|
sx={{
|
|
37
38
|
backgroundColor: "rgba(255,255,255,0.2)",
|
|
38
39
|
borderRadius: "12px",
|
|
@@ -44,8 +45,9 @@ export const PageHeader: React.FC<PageHeaderProps> = ({ icon, title, subtitle, c
|
|
|
44
45
|
>
|
|
45
46
|
{React.cloneElement(icon as React.ReactElement<any>, { sx: { fontSize: 32, color: "#FFF" } })}
|
|
46
47
|
</Box>
|
|
47
|
-
<Box>
|
|
48
|
+
<Box id="page-header-text">
|
|
48
49
|
<Typography
|
|
50
|
+
id="page-header-title"
|
|
49
51
|
variant="h4"
|
|
50
52
|
sx={{
|
|
51
53
|
fontWeight: 600,
|
|
@@ -57,6 +59,7 @@ export const PageHeader: React.FC<PageHeaderProps> = ({ icon, title, subtitle, c
|
|
|
57
59
|
</Typography>
|
|
58
60
|
{subtitle && (
|
|
59
61
|
<Typography
|
|
62
|
+
id="page-header-subtitle"
|
|
60
63
|
variant="body1"
|
|
61
64
|
sx={{
|
|
62
65
|
color: "rgba(255,255,255,0.9)",
|
|
@@ -72,6 +75,7 @@ export const PageHeader: React.FC<PageHeaderProps> = ({ icon, title, subtitle, c
|
|
|
72
75
|
{/* Right side: Action Buttons/Tabs */}
|
|
73
76
|
{children && (
|
|
74
77
|
<Stack
|
|
78
|
+
id="page-header-actions"
|
|
75
79
|
direction="row"
|
|
76
80
|
spacing={1}
|
|
77
81
|
sx={{
|
|
@@ -87,7 +91,7 @@ export const PageHeader: React.FC<PageHeaderProps> = ({ icon, title, subtitle, c
|
|
|
87
91
|
|
|
88
92
|
{/* Statistics row */}
|
|
89
93
|
{statistics && statistics.length > 0 && (
|
|
90
|
-
<Stack direction={{ xs: "column", sm: "row" }} spacing={3} sx={{ mt: 3 }}>
|
|
94
|
+
<Stack id="page-header-statistics" direction={{ xs: "column", sm: "row" }} spacing={3} sx={{ mt: 3 }}>
|
|
91
95
|
{statistics.map((stat, index) => (
|
|
92
96
|
<Stack key={index} direction="row" spacing={1} alignItems="center">
|
|
93
97
|
{React.cloneElement(stat.icon as React.ReactElement<any>, { sx: { color: "#FFF", fontSize: 20 } })}
|
|
@@ -53,6 +53,10 @@ export const SiteHeader = React.memo((props:Props) => {
|
|
|
53
53
|
|
|
54
54
|
// Create a stable context object to prevent UserMenu recreation
|
|
55
55
|
const stableContext = React.useMemo(() => {
|
|
56
|
+
console.log('SiteHeader - Creating stableContext');
|
|
57
|
+
console.log('SiteHeader - props.context:', props.context);
|
|
58
|
+
console.log('SiteHeader - props.context.userChurches:', props.context?.userChurches);
|
|
59
|
+
|
|
56
60
|
if (!props.context) return undefined;
|
|
57
61
|
|
|
58
62
|
return {
|
|
@@ -121,7 +125,7 @@ export const SiteHeader = React.memo((props:Props) => {
|
|
|
121
125
|
|
|
122
126
|
/*<Typography variant="h6" noWrap>{UserHelper.currentUserChurch?.church?.name || ""}</Typography>*/
|
|
123
127
|
return (<>
|
|
124
|
-
<div style={{
|
|
128
|
+
<div id="site-header" style={{
|
|
125
129
|
'--c1': '#1565C0',
|
|
126
130
|
'--c1d1': '#1358AD',
|
|
127
131
|
'--c1d2': '#114A99',
|
|
@@ -129,11 +133,11 @@ export const SiteHeader = React.memo((props:Props) => {
|
|
|
129
133
|
backgroundColor:"var(--c1)",
|
|
130
134
|
color: "#FFF"
|
|
131
135
|
} as React.CSSProperties}>
|
|
132
|
-
<CustomAppBar position="absolute">
|
|
133
|
-
<Toolbar sx={{ pr: "24px", backgroundColor: "var(--c1)", minHeight: "64px !important" }}>
|
|
136
|
+
<CustomAppBar id="site-app-bar" position="absolute">
|
|
137
|
+
<Toolbar id="site-toolbar" sx={{ pr: "24px", backgroundColor: "var(--c1)", minHeight: "64px !important" }}>
|
|
134
138
|
<PrimaryMenu label={props.primaryMenuLabel} menuItems={props.primaryMenuItems} onNavigate={props.onNavigate} />
|
|
135
139
|
<SecondaryMenu label={props.secondaryMenuLabel} menuItems={props.secondaryMenuItems} onNavigate={props.onNavigate} />
|
|
136
|
-
<div style={{ flex: 1 }}>
|
|
140
|
+
<div id="secondary-menu-container" style={{ flex: 1 }}>
|
|
137
141
|
<SecondaryMenuAlt label={props.secondaryMenuLabel} menuItems={props.secondaryMenuItems} onNavigate={props.onNavigate} />
|
|
138
142
|
</div>
|
|
139
143
|
{props.context?.user?.id && (
|
|
@@ -141,8 +145,6 @@ export const SiteHeader = React.memo((props:Props) => {
|
|
|
141
145
|
key="user-menu-stable"
|
|
142
146
|
profilePicture={profilePicture}
|
|
143
147
|
userName={userName}
|
|
144
|
-
userChurches={props.context?.userChurches}
|
|
145
|
-
currentUserChurch={props.context?.userChurch}
|
|
146
148
|
context={stableContext}
|
|
147
149
|
appName={props.appName}
|
|
148
150
|
loadCounts={refresh}
|
|
@@ -150,11 +152,11 @@ export const SiteHeader = React.memo((props:Props) => {
|
|
|
150
152
|
onNavigate={props.onNavigate}
|
|
151
153
|
/>
|
|
152
154
|
)}
|
|
153
|
-
{!props.context?.user?.id && <Link href="/login" color="inherit" style={{ textDecoration: "none" }}>Login</Link>}
|
|
155
|
+
{!props.context?.user?.id && <Link id="login-link" href="/login" color="inherit" style={{ textDecoration: "none" }}>Login</Link>}
|
|
154
156
|
<SupportDrawer appName={props.appName} relatedArticles={getRelatedArticles()} />
|
|
155
157
|
</Toolbar>
|
|
156
158
|
</CustomAppBar>
|
|
157
|
-
<div id="
|
|
159
|
+
<div id="app-bar-spacer" style={{ height: '64px' }}></div>
|
|
158
160
|
</div>
|
|
159
161
|
</>
|
|
160
162
|
);
|
|
@@ -7,20 +7,56 @@ import { UserHelper } from "../../helpers/UserHelper";
|
|
|
7
7
|
import { NavItem } from "./NavItem";
|
|
8
8
|
import { Locale } from "../../helpers";
|
|
9
9
|
|
|
10
|
-
export interface Props { userChurches: LoginUserChurchInterface[], currentUserChurch: LoginUserChurchInterface, context: UserContextInterface, onDelete?: () => void }
|
|
10
|
+
export interface Props { userChurches: LoginUserChurchInterface[], currentUserChurch: LoginUserChurchInterface, context: UserContextInterface, onDelete?: () => void, onChurchChange?: () => void }
|
|
11
11
|
|
|
12
12
|
export const ChurchList: React.FC<Props> = props => {
|
|
13
|
+
console.log('ChurchList - Rendering with props:', props);
|
|
13
14
|
|
|
14
15
|
const [userChurches, setUserChurches] = useState(() => {
|
|
15
16
|
try {
|
|
16
|
-
//
|
|
17
|
+
// If we have currentUserChurch, use it as fallback
|
|
18
|
+
if (props.currentUserChurch && (!props.userChurches || !Array.isArray(props.userChurches))) {
|
|
19
|
+
console.log('ChurchList - Using currentUserChurch as single item array');
|
|
20
|
+
return [props.currentUserChurch];
|
|
21
|
+
}
|
|
22
|
+
|
|
17
23
|
let churches = props.userChurches;
|
|
24
|
+
|
|
25
|
+
// Ensure we have an array
|
|
18
26
|
if (!Array.isArray(churches)) {
|
|
19
|
-
|
|
27
|
+
console.warn('ChurchList - Expected array but got:', typeof churches, churches);
|
|
28
|
+
// If it's a plain church object and we have currentUserChurch, use that
|
|
29
|
+
if (props.currentUserChurch) {
|
|
30
|
+
return [props.currentUserChurch];
|
|
31
|
+
}
|
|
32
|
+
churches = [];
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
console.log('ChurchList - Processing churches array:', churches);
|
|
36
|
+
|
|
37
|
+
// Filter for valid userChurch objects (should have church property)
|
|
38
|
+
const validChurches = churches.filter(uc => {
|
|
39
|
+
const isValid = uc && uc.church && uc.church.id;
|
|
40
|
+
if (!isValid) {
|
|
41
|
+
console.warn('ChurchList - Invalid church structure:', uc);
|
|
42
|
+
}
|
|
43
|
+
return isValid;
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
// If no valid churches but we have currentUserChurch, use it
|
|
47
|
+
if (validChurches.length === 0 && props.currentUserChurch) {
|
|
48
|
+
console.log('ChurchList - No valid churches found, using currentUserChurch');
|
|
49
|
+
return [props.currentUserChurch];
|
|
20
50
|
}
|
|
21
|
-
|
|
51
|
+
|
|
52
|
+
console.log('ChurchList - Valid churches:', validChurches);
|
|
53
|
+
return validChurches;
|
|
22
54
|
} catch (error) {
|
|
23
|
-
console.error('Error
|
|
55
|
+
console.error('ChurchList - Error processing churches:', error);
|
|
56
|
+
// Last resort: if we have currentUserChurch, use it
|
|
57
|
+
if (props.currentUserChurch) {
|
|
58
|
+
return [props.currentUserChurch];
|
|
59
|
+
}
|
|
24
60
|
return [];
|
|
25
61
|
}
|
|
26
62
|
});
|
|
@@ -28,17 +64,41 @@ export const ChurchList: React.FC<Props> = props => {
|
|
|
28
64
|
// Update local state when props change
|
|
29
65
|
React.useEffect(() => {
|
|
30
66
|
try {
|
|
31
|
-
//
|
|
67
|
+
// If we have currentUserChurch, use it as fallback
|
|
68
|
+
if (props.currentUserChurch && (!props.userChurches || !Array.isArray(props.userChurches))) {
|
|
69
|
+
setUserChurches([props.currentUserChurch]);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
|
|
32
73
|
let churches = props.userChurches;
|
|
74
|
+
|
|
75
|
+
// Ensure we have an array
|
|
33
76
|
if (!Array.isArray(churches)) {
|
|
34
|
-
|
|
77
|
+
if (props.currentUserChurch) {
|
|
78
|
+
setUserChurches([props.currentUserChurch]);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
churches = [];
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Filter for valid userChurch objects
|
|
85
|
+
const validChurches = churches.filter(uc => uc && uc.church && uc.church.id);
|
|
86
|
+
|
|
87
|
+
// If no valid churches but we have currentUserChurch, use it
|
|
88
|
+
if (validChurches.length === 0 && props.currentUserChurch) {
|
|
89
|
+
setUserChurches([props.currentUserChurch]);
|
|
90
|
+
} else {
|
|
91
|
+
setUserChurches(validChurches);
|
|
35
92
|
}
|
|
36
|
-
setUserChurches(churches.filter(uc => uc && uc.apis && uc.apis.length > 0));
|
|
37
93
|
} catch (error) {
|
|
38
|
-
console.error('Error updating
|
|
39
|
-
|
|
94
|
+
console.error('ChurchList useEffect - Error updating churches:', error);
|
|
95
|
+
if (props.currentUserChurch) {
|
|
96
|
+
setUserChurches([props.currentUserChurch]);
|
|
97
|
+
} else {
|
|
98
|
+
setUserChurches([]);
|
|
99
|
+
}
|
|
40
100
|
}
|
|
41
|
-
}, [props.userChurches]);
|
|
101
|
+
}, [props.userChurches, props.currentUserChurch]);
|
|
42
102
|
|
|
43
103
|
const handleDelete = async (uc: LoginUserChurchInterface) => {
|
|
44
104
|
// Helper function to get label with fallback
|
|
@@ -65,13 +125,23 @@ export const ChurchList: React.FC<Props> = props => {
|
|
|
65
125
|
};
|
|
66
126
|
|
|
67
127
|
let result: React.ReactElement[] = [];
|
|
128
|
+
|
|
68
129
|
userChurches.forEach(uc => {
|
|
69
130
|
const userChurch = uc;
|
|
70
131
|
const churchName = uc.church.name;
|
|
71
132
|
result.push(<NavItem
|
|
72
133
|
key={userChurch.church.id}
|
|
73
134
|
selected={(uc.church.id === props.currentUserChurch.church.id) && true}
|
|
74
|
-
onClick={() =>
|
|
135
|
+
onClick={async () => {
|
|
136
|
+
console.log('ChurchList - Selecting church:', userChurch.church.name);
|
|
137
|
+
await UserHelper.selectChurch(props.context, userChurch.church.id, null);
|
|
138
|
+
console.log('ChurchList - Church selected');
|
|
139
|
+
|
|
140
|
+
// Call the onChurchChange callback if provided
|
|
141
|
+
if (props.onChurchChange) {
|
|
142
|
+
props.onChurchChange();
|
|
143
|
+
}
|
|
144
|
+
}}
|
|
75
145
|
label={churchName || "Unknown"}
|
|
76
146
|
icon="church"
|
|
77
147
|
deleteIcon={uc.church.id !== props.currentUserChurch.church.id ? "delete" : null}
|
|
@@ -80,5 +150,5 @@ export const ChurchList: React.FC<Props> = props => {
|
|
|
80
150
|
/>);
|
|
81
151
|
});
|
|
82
152
|
|
|
83
|
-
return
|
|
153
|
+
return <div id="church-list">{result}</div>;
|
|
84
154
|
};
|