@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.
Files changed (36) hide show
  1. package/dist/components/DisplayBox.js +1 -1
  2. package/dist/components/DisplayBox.js.map +1 -1
  3. package/dist/components/InputBox.js +1 -1
  4. package/dist/components/InputBox.js.map +1 -1
  5. package/dist/components/Loading.js +1 -1
  6. package/dist/components/Loading.js.map +1 -1
  7. package/dist/components/PageHeader.d.ts.map +1 -1
  8. package/dist/components/PageHeader.js +6 -6
  9. package/dist/components/PageHeader.js.map +1 -1
  10. package/dist/components/header/SiteHeader.d.ts.map +1 -1
  11. package/dist/components/header/SiteHeader.js +5 -2
  12. package/dist/components/header/SiteHeader.js.map +1 -1
  13. package/dist/components/wrapper/ChurchList.d.ts +1 -0
  14. package/dist/components/wrapper/ChurchList.d.ts.map +1 -1
  15. package/dist/components/wrapper/ChurchList.js +73 -13
  16. package/dist/components/wrapper/ChurchList.js.map +1 -1
  17. package/dist/components/wrapper/Notifications.d.ts.map +1 -1
  18. package/dist/components/wrapper/Notifications.js +4 -4
  19. package/dist/components/wrapper/Notifications.js.map +1 -1
  20. package/dist/components/wrapper/UserMenu.d.ts +1 -3
  21. package/dist/components/wrapper/UserMenu.d.ts.map +1 -1
  22. package/dist/components/wrapper/UserMenu.js +53 -9
  23. package/dist/components/wrapper/UserMenu.js.map +1 -1
  24. package/dist/helpers/UserHelper.d.ts.map +1 -1
  25. package/dist/helpers/UserHelper.js +24 -0
  26. package/dist/helpers/UserHelper.js.map +1 -1
  27. package/package.json +1 -1
  28. package/src/components/DisplayBox.tsx +8 -8
  29. package/src/components/InputBox.tsx +8 -8
  30. package/src/components/Loading.tsx +1 -1
  31. package/src/components/PageHeader.tsx +8 -4
  32. package/src/components/header/SiteHeader.tsx +10 -8
  33. package/src/components/wrapper/ChurchList.tsx +83 -13
  34. package/src/components/wrapper/Notifications.tsx +6 -5
  35. package/src/components/wrapper/UserMenu.tsx +70 -28
  36. 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 = () => (_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.currentUserChurch, 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"), _jsx(ChurchList, { userChurches: props.userChurches, currentUserChurch: props.currentUserChurch, context: props.context, onDelete: handleClose })] }) })] }));
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: "account-menu", 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()] }));
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,mBAoB/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"}
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":"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"}
1
+ {"version":3,"file":"UserHelper.js","sourceRoot":"","sources":["../../src/helpers/UserHelper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@churchapps/apphelper",
3
- "version": "0.4.18",
3
+ "version": "0.4.20",
4
4
  "description": "Library of helper functions for React and NextJS ChurchApps",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -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>
@@ -70,7 +70,7 @@ export const Loading: React.FC<Props> = (props) => {
70
70
  }
71
71
 
72
72
  return (
73
- <div style={{ textAlign: "center", fontFamily: "Roboto" }}>
73
+ <div id="loading-component" style={{ textAlign: "center", fontFamily: "Roboto" }}>
74
74
  {getContents()}
75
75
  </div>
76
76
  )
@@ -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="appBarSpacer"></div>
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
- // Handle both array and single object cases
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
- churches = churches ? [churches] : [];
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
- return churches.filter(uc => uc && uc.apis && uc.apis.length > 0);
51
+
52
+ console.log('ChurchList - Valid churches:', validChurches);
53
+ return validChurches;
22
54
  } catch (error) {
23
- console.error('Error filtering userChurches:', 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
- // Handle both array and single object cases
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
- churches = churches ? [churches] : [];
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 userChurches:', error);
39
- setUserChurches([]);
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={() => UserHelper.selectChurch(props.context, userChurch.church.id, null)}
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 <>{result}</>;
153
+ return <div id="church-list">{result}</div>;
84
154
  };