@churchapps/apphelper 0.2.36 → 0.2.37
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/wrapper/NavItem.d.ts +1 -0
- package/dist/components/wrapper/NavItem.d.ts.map +1 -1
- package/dist/components/wrapper/NavItem.js +7 -1
- package/dist/components/wrapper/NavItem.js.map +1 -1
- package/dist/components/wrapper/SiteWrapper.d.ts.map +1 -1
- package/dist/components/wrapper/SiteWrapper.js +1 -3
- package/dist/components/wrapper/SiteWrapper.js.map +1 -1
- package/dist/components/wrapper/UserMenu.d.ts +5 -0
- package/dist/components/wrapper/UserMenu.d.ts.map +1 -1
- package/dist/components/wrapper/UserMenu.js +30 -3
- package/dist/components/wrapper/UserMenu.js.map +1 -1
- package/dist/public/locales/en.json +2 -0
- package/package.json +1 -1
- package/public/locales/en.json +2 -0
- package/src/components/wrapper/NavItem.tsx +6 -2
- package/src/components/wrapper/SiteWrapper.tsx +1 -3
- package/src/components/wrapper/UserMenu.tsx +44 -3
- package/dist/components/wrapper/NotificationMenu.d.ts +0 -15
- package/dist/components/wrapper/NotificationMenu.d.ts.map +0 -1
- package/dist/components/wrapper/NotificationMenu.js +0 -74
- package/dist/components/wrapper/NotificationMenu.js.map +0 -1
- package/src/components/wrapper/NotificationMenu.tsx +0 -93
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavItem.d.ts","sourceRoot":"","sources":["../../../src/components/wrapper/NavItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,KAAK;
|
|
1
|
+
{"version":3,"file":"NavItem.d.ts","sourceRoot":"","sources":["../../../src/components/wrapper/NavItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,KAAK;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAQD,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA+BnC,CAAC"}
|
|
@@ -20,7 +20,13 @@ const NavItem = (props) => {
|
|
|
20
20
|
isReact = true;
|
|
21
21
|
}
|
|
22
22
|
catch (_a) { }
|
|
23
|
-
const getIcon = () =>
|
|
23
|
+
const getIcon = () => {
|
|
24
|
+
if (props.badgeCount && props.badgeCount > 0)
|
|
25
|
+
return react_1.default.createElement(material_1.Badge, { badgeContent: props.badgeCount, color: "error" },
|
|
26
|
+
react_1.default.createElement(material_1.Icon, null, props.icon));
|
|
27
|
+
else
|
|
28
|
+
return react_1.default.createElement(material_1.Icon, null, props.icon);
|
|
29
|
+
};
|
|
24
30
|
const getLinkContents = () => (react_1.default.createElement(material_1.ListItemButton, null,
|
|
25
31
|
react_1.default.createElement(material_1.Tooltip, { title: props.label || "", arrow: true, placement: "right" },
|
|
26
32
|
react_1.default.createElement(material_1.ListItemIcon, { sx: { minWidth: "40px" } }, getIcon())),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavItem.js","sourceRoot":"","sources":["../../../src/components/wrapper/NavItem.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"NavItem.js","sourceRoot":"","sources":["../../../src/components/wrapper/NavItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SiteWrapper.d.ts","sourceRoot":"","sources":["../../../src/components/wrapper/SiteWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAE7C,OAAO,EAA8C,mBAAmB,EAAa,MAAM,eAAe,CAAC;AAE3G,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"SiteWrapper.d.ts","sourceRoot":"","sources":["../../../src/components/wrapper/SiteWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAE7C,OAAO,EAA8C,mBAAmB,EAAa,MAAM,eAAe,CAAC;AAE3G,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAK3D,UAAU,KAAK;IACb,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC;IACxB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAgFvC,CAAC"}
|
|
@@ -19,7 +19,6 @@ const helpers_1 = require("../../helpers");
|
|
|
19
19
|
const UserMenu_1 = require("./UserMenu");
|
|
20
20
|
const useMountedState_1 = require("../../hooks/useMountedState");
|
|
21
21
|
const SocketHelper_1 = require("../../helpers/SocketHelper");
|
|
22
|
-
const NotificationMenu_1 = require("./NotificationMenu");
|
|
23
22
|
const Drawers_1 = require("./Drawers");
|
|
24
23
|
const SiteWrapper = props => {
|
|
25
24
|
var _a, _b, _c, _d, _e;
|
|
@@ -74,8 +73,7 @@ const SiteWrapper = props => {
|
|
|
74
73
|
react_1.default.createElement(material_1.Icon, null, "menu")),
|
|
75
74
|
react_1.default.createElement(material_1.Typography, { variant: "h6", noWrap: true }, ((_b = (_a = helpers_1.UserHelper.currentUserChurch) === null || _a === void 0 ? void 0 : _a.church) === null || _b === void 0 ? void 0 : _b.name) || ""),
|
|
76
75
|
react_1.default.createElement("div", { style: { flex: 1 } }),
|
|
77
|
-
helpers_1.UserHelper.user && react_1.default.createElement(
|
|
78
|
-
helpers_1.UserHelper.user && react_1.default.createElement(UserMenu_1.UserMenu, { profilePicture: helpers_1.PersonHelper.getPhotoUrl((_c = props.context) === null || _c === void 0 ? void 0 : _c.person), userName: `${(_d = helpers_1.UserHelper.user) === null || _d === void 0 ? void 0 : _d.firstName} ${(_e = helpers_1.UserHelper.user) === null || _e === void 0 ? void 0 : _e.lastName}`, userChurches: helpers_1.UserHelper.userChurches, currentUserChurch: helpers_1.UserHelper.currentUserChurch, context: props.context, appName: props.appName, router: props.router }),
|
|
76
|
+
helpers_1.UserHelper.user && react_1.default.createElement(UserMenu_1.UserMenu, { profilePicture: helpers_1.PersonHelper.getPhotoUrl((_c = props.context) === null || _c === void 0 ? void 0 : _c.person), userName: `${(_d = helpers_1.UserHelper.user) === null || _d === void 0 ? void 0 : _d.firstName} ${(_e = helpers_1.UserHelper.user) === null || _e === void 0 ? void 0 : _e.lastName}`, userChurches: helpers_1.UserHelper.userChurches, currentUserChurch: helpers_1.UserHelper.currentUserChurch, context: props.context, appName: props.appName, router: props.router, loadCounts: loadCounts, notificationCounts: notificationCounts }),
|
|
79
77
|
!helpers_1.UserHelper.user && react_1.default.createElement(material_1.Link, { href: "/login", color: "inherit", style: { textDecoration: "none" } }, "Login"))),
|
|
80
78
|
react_1.default.createElement(CustomDrawer, { variant: "permanent", open: open, onMouseOver: () => setOpen(true), onMouseLeave: () => setOpen(false) },
|
|
81
79
|
react_1.default.createElement(material_1.Toolbar, { sx: { display: "flex", alignItems: "center", width: "100%", px: [1] } },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SiteWrapper.js","sourceRoot":"","sources":["../../../src/components/wrapper/SiteWrapper.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA6C;AAC7C,4CAA4F;AAC5F,2CAA2G;AAC3G,yCAAsC;AAEtC,iEAA8D;AAC9D,6DAA0D;AAC1D,
|
|
1
|
+
{"version":3,"file":"SiteWrapper.js","sourceRoot":"","sources":["../../../src/components/wrapper/SiteWrapper.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA6C;AAC7C,4CAA4F;AAC5F,2CAA2G;AAC3G,yCAAsC;AAEtC,iEAA8D;AAC9D,6DAA0D;AAC1D,uCAA2F;AAYpF,MAAM,WAAW,GAAoB,KAAK,CAAC,EAAE;;IAClD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,eAAK,CAAC,QAAQ,EAAU,CAAC;IAC7D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAC,EAAC,iBAAiB,EAAC,CAAC,EAAE,OAAO,EAAC,CAAC,EAAC,CAAC,CAAC;IACrG,MAAM,YAAY,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAA,iCAAe,GAAE,CAAC;IAEpC,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAU,CAAC,CAAC,CAAC,sBAAY,CAAC;IACxD,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,0BAAgB,CAAC,CAAC,CAAC,4BAAkB,CAAC;IAEpE,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,mBAAS,CAAC,GAAG,CAAC,4BAA4B,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACtE,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACtH,CAAC,CAAC,CAAC;IACL,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,kFAAkF;QAClF,OAAO,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;QACvF,UAAU,EAAE,CAAC;IACf,CAAC,CAAA;IAID,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,aAAa,GAAG,GAAS,EAAE;YAC/B,IAAI,oBAAU,CAAC,iBAAiB,EAAE;gBAChC,aAAa,CAAC,0BAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,0BAA0B,CAAC,CAAC,CAAC;aAC3F;QACH,CAAC,CAAA,CAAA;QAED,IAAI,CAAC,SAAS,EAAE,EAAE;YAChB,aAAa,EAAE,CAAC;SACjB;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAGlC,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;;QACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU;YAAE,2BAAY,CAAC,eAAe,CAAC,EAAC,QAAQ,EAAC,IAAI,EAAE,QAAQ,EAAC,IAAI,EAAC,CAAC,CAAC;;YACvF,2BAAY,CAAC,eAAe,CAAC,EAAC,QAAQ,EAAC,MAAA,MAAA,KAAK,CAAC,OAAO,CAAC,UAAU,0CAAE,MAAM,0CAAE,EAAE,EAAE,QAAQ,EAAC,MAAA,MAAA,KAAK,CAAC,OAAO,CAAC,UAAU,0CAAE,MAAM,0CAAE,EAAE,EAAC,CAAC,CAAC;IACpI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAE/B,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,2BAAY,CAAC,UAAU,CAAC,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;QAChF,2BAAY,CAAC,IAAI,EAAE,CAAC;QACpB,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAkB,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAA;IAChF,IAAI,CAAC,KAAK,CAAC,YAAY;QAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC;IAEpD,OAAO;QACL,8BAAC,YAAY,IAAC,QAAQ,EAAC,UAAU;YAC/B,8BAAC,kBAAO,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;gBACzB,8BAAC,qBAAU,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,SAAS,gBAAY,aAAa,EAAC,OAAO,EAAE,YAAY,EAAE,EAAE,kBAAI,WAAW,EAAE,MAAM,IAAK,CAAC,IAAI,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;oBAClJ,8BAAC,eAAI,eAAY,CACN;gBACb,8BAAC,qBAAU,IAAC,OAAO,EAAC,IAAI,EAAC,MAAM,UAAE,CAAA,MAAA,MAAA,oBAAU,CAAC,iBAAiB,0CAAE,MAAM,0CAAE,IAAI,KAAI,EAAE,CAAc;gBAC/F,uCAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAQ;gBAC9B,oBAAU,CAAC,IAAI,IAAI,8BAAC,mBAAQ,IAAC,cAAc,EAAE,sBAAY,CAAC,WAAW,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,MAAA,oBAAU,CAAC,IAAI,0CAAE,SAAS,IAAI,MAAA,oBAAU,CAAC,IAAI,0CAAE,QAAQ,EAAE,EAAE,YAAY,EAAE,oBAAU,CAAC,YAAY,EAAE,iBAAiB,EAAE,oBAAU,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,kBAAkB,GAAI;gBACtY,CAAC,oBAAU,CAAC,IAAI,IAAI,8BAAC,eAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,SAAS,EAAC,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,YAAc,CAChG,CACG;QAEf,8BAAC,YAAY,IAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;YAChH,8BAAC,kBAAO,IAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;gBAC5E,uCAAK,GAAG,EAAE,UAAU,IAAI,0BAA0B,EAAE,GAAG,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAI;gBAC3F,uCAAK,KAAK,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE;oBAClE,8BAAC,qBAAU,IAAC,OAAO,EAAE,YAAY;wBAAE,8BAAC,eAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,mBAAqB,CAAa,CAClG,CACE;YACT,KAAK,CAAC,UAAU,CACJ;QACf,8BAAC,cAAG,IAAC,SAAS,EAAC,MAAM,EAAC,EAAE,EAAE,QAAQ;YAChC,8BAAC,oBAAS,IAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAC7C,KAAK,CAAC,QAAQ,CACL,CACR,CACL,CAAA;AACL,CAAC,CAAC;AAhFW,QAAA,WAAW,eAgFtB"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { LoginUserChurchInterface, UserContextInterface } from "@churchapps/helpers";
|
|
3
3
|
interface Props {
|
|
4
|
+
notificationCounts: {
|
|
5
|
+
notificationCount: number;
|
|
6
|
+
pmCount: number;
|
|
7
|
+
};
|
|
8
|
+
loadCounts: () => void;
|
|
4
9
|
userName: string;
|
|
5
10
|
profilePicture: string;
|
|
6
11
|
userChurches: LoginUserChurchInterface[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserMenu.d.ts","sourceRoot":"","sources":["../../../src/components/wrapper/UserMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"UserMenu.d.ts","sourceRoot":"","sources":["../../../src/components/wrapper/UserMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAUrF,UAAU,KAAK;IACd,kBAAkB,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,UAAU,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,wBAAwB,EAAE,CAAC;IACzC,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAwHpC,CAAC"}
|
|
@@ -14,10 +14,15 @@ const SupportModal_1 = require("../SupportModal");
|
|
|
14
14
|
const CommonEnvironmentHelper_1 = require("../../helpers/CommonEnvironmentHelper");
|
|
15
15
|
const TabPanel_1 = require("../TabPanel");
|
|
16
16
|
const helpers_1 = require("../../helpers");
|
|
17
|
+
const PrivateMessages_1 = require("./PrivateMessages");
|
|
18
|
+
const Notifications_1 = require("./Notifications");
|
|
17
19
|
const UserMenu = (props) => {
|
|
18
20
|
const userName = props.userName;
|
|
19
21
|
const [anchorEl, setAnchorEl] = react_1.default.useState(null);
|
|
20
22
|
const [showSupport, setShowSupport] = react_1.default.useState(false);
|
|
23
|
+
const [showPM, setShowPM] = react_1.default.useState(false);
|
|
24
|
+
const [showNotifications, setShowNotifications] = react_1.default.useState(false);
|
|
25
|
+
const [refreshKey, setRefreshKey] = react_1.default.useState(0);
|
|
21
26
|
const open = Boolean(anchorEl);
|
|
22
27
|
const handleClick = (e) => {
|
|
23
28
|
e.preventDefault();
|
|
@@ -31,6 +36,8 @@ const UserMenu = (props) => {
|
|
|
31
36
|
const jwt = ApiHelper_1.ApiHelper.getConfig("MembershipApi").jwt;
|
|
32
37
|
const churchId = UserHelper_1.UserHelper.currentUserChurch.church.id;
|
|
33
38
|
let result = [];
|
|
39
|
+
result.push(react_1.default.createElement(_1.NavItem, { onClick: () => { setShowPM(true); }, label: helpers_1.Locale.label("wrapper.messages"), icon: "mail", key: "/messages", router: props.router, badgeCount: props.notificationCounts.pmCount }));
|
|
40
|
+
result.push(react_1.default.createElement(_1.NavItem, { onClick: () => { setShowNotifications(true); }, label: helpers_1.Locale.label("wrapper.notifications"), icon: "notifications", key: "/notifications", router: props.router, badgeCount: props.notificationCounts.notificationCount }));
|
|
34
41
|
if (props.appName === "CHUMS")
|
|
35
42
|
result.push(react_1.default.createElement(_1.NavItem, { url: "/profile", key: "/profile", label: helpers_1.Locale.label("wrapper.profile"), icon: "person", router: props.router }));
|
|
36
43
|
else
|
|
@@ -72,12 +79,32 @@ const UserMenu = (props) => {
|
|
|
72
79
|
react_1.default.createElement("div", { style: { maxHeight: '70vh', overflowY: "auto" } },
|
|
73
80
|
react_1.default.createElement(_1.NavItem, { label: "Back", key: "ChurchBack", icon: "arrow_back", onClick: () => { setTabIndex(0); } }),
|
|
74
81
|
react_1.default.createElement(ChurchList_1.ChurchList, { userChurches: props.userChurches, currentUserChurch: props.currentUserChurch, context: props.context, onDelete: handleClose })))));
|
|
82
|
+
const getModals = () => {
|
|
83
|
+
if (showPM)
|
|
84
|
+
return (react_1.default.createElement(material_1.Dialog, { open: true, onClose: () => setShowPM(false) },
|
|
85
|
+
react_1.default.createElement(material_1.DialogTitle, null, helpers_1.Locale.label("wrapper.messages")),
|
|
86
|
+
react_1.default.createElement(material_1.DialogContent, null,
|
|
87
|
+
react_1.default.createElement(PrivateMessages_1.PrivateMessages, { context: props.context, refreshKey: refreshKey, onUpdate: props.loadCounts }))));
|
|
88
|
+
else if (showNotifications)
|
|
89
|
+
return (react_1.default.createElement(material_1.Dialog, { open: true, onClose: () => setShowNotifications(false) },
|
|
90
|
+
react_1.default.createElement(material_1.DialogTitle, null, helpers_1.Locale.label("wrapper.notifications")),
|
|
91
|
+
react_1.default.createElement(material_1.DialogContent, null,
|
|
92
|
+
react_1.default.createElement(Notifications_1.Notifications, { context: props.context, appName: props.appName, onUpdate: props.loadCounts, router: props.router }))));
|
|
93
|
+
else
|
|
94
|
+
return react_1.default.createElement(react_1.default.Fragment, null);
|
|
95
|
+
};
|
|
96
|
+
const totalNotifcations = props.notificationCounts.notificationCount + props.notificationCounts.pmCount;
|
|
97
|
+
react_1.default.useEffect(() => {
|
|
98
|
+
console.log("THE COUNTS CHANGED");
|
|
99
|
+
setRefreshKey(Math.random());
|
|
100
|
+
}, [props.notificationCounts]);
|
|
75
101
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
76
102
|
showSupport && react_1.default.createElement(SupportModal_1.SupportModal, { onClose: () => setShowSupport(false), appName: props.appName }),
|
|
77
103
|
react_1.default.createElement(material_1.Button, { onClick: handleClick, color: "inherit", "aria-controls": open ? "account-menu" : undefined, "aria-haspopup": "true", "aria-expanded": open ? "true" : undefined, style: { textTransform: "none" }, endIcon: react_1.default.createElement(material_1.Icon, null, "expand_more") },
|
|
78
|
-
react_1.default.createElement(material_1.
|
|
79
|
-
|
|
80
|
-
react_1.default.createElement(material_1.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 } } }, getTabs())
|
|
104
|
+
react_1.default.createElement(material_1.Badge, { badgeContent: totalNotifcations, color: "error", invisible: totalNotifcations === 0 },
|
|
105
|
+
react_1.default.createElement(material_1.Avatar, { src: getProfilePic(), sx: { width: 32, height: 32, marginRight: 1 } }))),
|
|
106
|
+
react_1.default.createElement(material_1.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 } } }, getTabs()),
|
|
107
|
+
getModals()));
|
|
81
108
|
};
|
|
82
109
|
exports.UserMenu = UserMenu;
|
|
83
110
|
//# sourceMappingURL=UserMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserMenu.js","sourceRoot":"","sources":["../../../src/components/wrapper/UserMenu.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,uDAAoD;AACpD,yDAAsD;AACtD,
|
|
1
|
+
{"version":3,"file":"UserMenu.js","sourceRoot":"","sources":["../../../src/components/wrapper/UserMenu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -259,7 +259,9 @@
|
|
|
259
259
|
"chatWith": "Chat with",
|
|
260
260
|
"deleteChurch": "Delete",
|
|
261
261
|
"logout": "Logout",
|
|
262
|
+
"messages": "Messages",
|
|
262
263
|
"newPrivateMessage": "New Private Message",
|
|
264
|
+
"notifications": "Notifications",
|
|
263
265
|
"privateMessage": "Private Message",
|
|
264
266
|
"profile": "Profile",
|
|
265
267
|
"searchForPerson": "Search for a person",
|
package/package.json
CHANGED
package/public/locales/en.json
CHANGED
|
@@ -259,7 +259,9 @@
|
|
|
259
259
|
"chatWith": "Chat with",
|
|
260
260
|
"deleteChurch": "Delete",
|
|
261
261
|
"logout": "Logout",
|
|
262
|
+
"messages": "Messages",
|
|
262
263
|
"newPrivateMessage": "New Private Message",
|
|
264
|
+
"notifications": "Notifications",
|
|
263
265
|
"privateMessage": "Private Message",
|
|
264
266
|
"profile": "Profile",
|
|
265
267
|
"searchForPerson": "Search for a person",
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { Icon, IconButton, ListItemButton, ListItemIcon, ListItemText, styled, Tooltip } from "@mui/material";
|
|
2
|
+
import { Badge, Icon, IconButton, ListItemButton, ListItemIcon, ListItemText, styled, Tooltip } from "@mui/material";
|
|
3
3
|
import { NavLink, useLocation } from "react-router-dom";
|
|
4
4
|
|
|
5
5
|
interface Props {
|
|
6
|
+
badgeCount?: number;
|
|
6
7
|
url?: string;
|
|
7
8
|
target?: string;
|
|
8
9
|
label: string;
|
|
@@ -29,7 +30,10 @@ export const NavItem: React.FC<Props> = (props) => {
|
|
|
29
30
|
if (a !== null) isReact = true;
|
|
30
31
|
} catch { }
|
|
31
32
|
|
|
32
|
-
const getIcon = () =>
|
|
33
|
+
const getIcon = () => {
|
|
34
|
+
if (props.badgeCount && props.badgeCount > 0) return <Badge badgeContent={props.badgeCount} color="error"><Icon>{props.icon}</Icon></Badge>
|
|
35
|
+
else return <Icon>{props.icon}</Icon>
|
|
36
|
+
}
|
|
33
37
|
|
|
34
38
|
const getLinkContents = () => (<ListItemButton>
|
|
35
39
|
<Tooltip title={props.label || ""} arrow placement="right">
|
|
@@ -5,7 +5,6 @@ import { UserMenu } from "./UserMenu";
|
|
|
5
5
|
import { UserContextInterface } from "@churchapps/helpers";
|
|
6
6
|
import { useMountedState } from "../../hooks/useMountedState";
|
|
7
7
|
import { SocketHelper } from "../../helpers/SocketHelper";
|
|
8
|
-
import { NotificationMenu } from "./NotificationMenu";
|
|
9
8
|
import { ClosedDrawer, ClosedDrawerAppBar, OpenDrawer, OpenDrawerAppBar } from "./Drawers";
|
|
10
9
|
|
|
11
10
|
interface Props {
|
|
@@ -78,8 +77,7 @@ export const SiteWrapper: React.FC<Props> = props => {
|
|
|
78
77
|
</IconButton>
|
|
79
78
|
<Typography variant="h6" noWrap>{UserHelper.currentUserChurch?.church?.name || ""}</Typography>
|
|
80
79
|
<div style={{ flex: 1 }}></div>
|
|
81
|
-
{UserHelper.user && <
|
|
82
|
-
{UserHelper.user && <UserMenu profilePicture={PersonHelper.getPhotoUrl(props.context?.person)} userName={`${UserHelper.user?.firstName} ${UserHelper.user?.lastName}`} userChurches={UserHelper.userChurches} currentUserChurch={UserHelper.currentUserChurch} context={props.context} appName={props.appName} router={props.router} />}
|
|
80
|
+
{UserHelper.user && <UserMenu profilePicture={PersonHelper.getPhotoUrl(props.context?.person)} userName={`${UserHelper.user?.firstName} ${UserHelper.user?.lastName}`} userChurches={UserHelper.userChurches} currentUserChurch={UserHelper.currentUserChurch} context={props.context} appName={props.appName} router={props.router} loadCounts={loadCounts} notificationCounts={notificationCounts} />}
|
|
83
81
|
{!UserHelper.user && <Link href="/login" color="inherit" style={{ textDecoration: "none" }}>Login</Link>}
|
|
84
82
|
</Toolbar>
|
|
85
83
|
</CustomAppBar>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ApiHelper } from "../../helpers/ApiHelper";
|
|
3
3
|
import { UserHelper } from "../../helpers/UserHelper";
|
|
4
|
-
import { Avatar, Menu, Typography, Icon, Button, Box } from "@mui/material";
|
|
4
|
+
import { Avatar, Menu, Typography, Icon, Button, Box, Badge, Modal, Dialog, DialogContent, DialogTitle } from "@mui/material";
|
|
5
5
|
import { NavItem, AppList } from ".";
|
|
6
6
|
import { LoginUserChurchInterface, UserContextInterface } from "@churchapps/helpers";
|
|
7
7
|
import { ChurchList } from "./ChurchList";
|
|
@@ -9,8 +9,13 @@ import { SupportModal } from "../SupportModal";
|
|
|
9
9
|
import { CommonEnvironmentHelper } from "../../helpers/CommonEnvironmentHelper";
|
|
10
10
|
import { TabPanel } from "../TabPanel";
|
|
11
11
|
import { Locale } from "../../helpers";
|
|
12
|
+
import { PrivateMessages } from "./PrivateMessages";
|
|
13
|
+
import { Notifications } from "./Notifications";
|
|
14
|
+
|
|
12
15
|
|
|
13
16
|
interface Props {
|
|
17
|
+
notificationCounts: { notificationCount: number, pmCount: number };
|
|
18
|
+
loadCounts: () => void;
|
|
14
19
|
userName: string;
|
|
15
20
|
profilePicture: string;
|
|
16
21
|
userChurches: LoginUserChurchInterface[];
|
|
@@ -24,8 +29,12 @@ export const UserMenu: React.FC<Props> = (props) => {
|
|
|
24
29
|
const userName = props.userName;
|
|
25
30
|
const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);
|
|
26
31
|
const [showSupport, setShowSupport] = React.useState(false);
|
|
32
|
+
const [showPM, setShowPM] = React.useState(false);
|
|
33
|
+
const [showNotifications, setShowNotifications] = React.useState(false);
|
|
34
|
+
const [refreshKey, setRefreshKey] = React.useState(0);
|
|
27
35
|
const open = Boolean(anchorEl);
|
|
28
36
|
|
|
37
|
+
|
|
29
38
|
const handleClick = (e: React.MouseEvent<HTMLElement>) => {
|
|
30
39
|
e.preventDefault();
|
|
31
40
|
setAnchorEl(e.currentTarget);
|
|
@@ -40,6 +49,12 @@ export const UserMenu: React.FC<Props> = (props) => {
|
|
|
40
49
|
const jwt = ApiHelper.getConfig("MembershipApi").jwt;
|
|
41
50
|
const churchId = UserHelper.currentUserChurch.church.id;
|
|
42
51
|
let result: JSX.Element[] = [];
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
result.push(<NavItem onClick={() => {setShowPM(true)}} label={Locale.label("wrapper.messages")} icon="mail" key="/messages" router={props.router} badgeCount={props.notificationCounts.pmCount} />);
|
|
55
|
+
|
|
56
|
+
result.push(<NavItem onClick={() => {setShowNotifications(true)}} label={Locale.label("wrapper.notifications")} icon="notifications" key="/notifications" router={props.router} badgeCount={props.notificationCounts.notificationCount} />);
|
|
57
|
+
|
|
43
58
|
if (props.appName === "CHUMS") result.push(<NavItem url={"/profile"} key="/profile" label={Locale.label("wrapper.profile")} icon="person" router={props.router} />);
|
|
44
59
|
else result.push(<NavItem url={`${CommonEnvironmentHelper.ChumsRoot}/login?jwt=${jwt}&churchId=${churchId}&returnUrl=/profile`} key="/profile" label={Locale.label("wrapper.profile")} icon="person" external={true} router={props.router} />);
|
|
45
60
|
result.push(<NavItem url="/logout" label={Locale.label("wrapper.logout")} icon="logout" key="/logout" router={props.router} />);
|
|
@@ -91,17 +106,43 @@ export const UserMenu: React.FC<Props> = (props) => {
|
|
|
91
106
|
</Box>
|
|
92
107
|
);
|
|
93
108
|
|
|
109
|
+
const getModals = () => {
|
|
110
|
+
if (showPM) return (
|
|
111
|
+
<Dialog open onClose={() => setShowPM(false)}>
|
|
112
|
+
<DialogTitle>{Locale.label("wrapper.messages")}</DialogTitle>
|
|
113
|
+
<DialogContent>
|
|
114
|
+
<PrivateMessages context={props.context} refreshKey={refreshKey} onUpdate={props.loadCounts} />
|
|
115
|
+
</DialogContent>
|
|
116
|
+
</Dialog>);
|
|
117
|
+
else if (showNotifications) return (<Dialog open onClose={() => setShowNotifications(false)}>
|
|
118
|
+
<DialogTitle>{Locale.label("wrapper.notifications")}</DialogTitle>
|
|
119
|
+
<DialogContent>
|
|
120
|
+
<Notifications context={props.context} appName={props.appName} onUpdate={props.loadCounts} router={props.router} />
|
|
121
|
+
</DialogContent>
|
|
122
|
+
</Dialog>);
|
|
123
|
+
else return <></>;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
const totalNotifcations = props.notificationCounts.notificationCount + props.notificationCounts.pmCount;
|
|
127
|
+
|
|
128
|
+
React.useEffect(() => {
|
|
129
|
+
console.log("THE COUNTS CHANGED")
|
|
130
|
+
setRefreshKey(Math.random());
|
|
131
|
+
}, [props.notificationCounts]);
|
|
132
|
+
|
|
94
133
|
return (
|
|
95
134
|
<>
|
|
96
135
|
{showSupport && <SupportModal onClose={() => setShowSupport(false)} appName={props.appName} />}
|
|
97
136
|
<Button onClick={handleClick} color="inherit" aria-controls={open ? "account-menu" : undefined} aria-haspopup="true" aria-expanded={open ? "true" : undefined} style={{ textTransform: "none" }} endIcon={<Icon>expand_more</Icon>}>
|
|
98
|
-
<
|
|
99
|
-
|
|
137
|
+
<Badge badgeContent={totalNotifcations} color="error" invisible={totalNotifcations===0}>
|
|
138
|
+
<Avatar src={getProfilePic()} sx={{ width: 32, height: 32, marginRight: 1 }}></Avatar>
|
|
139
|
+
</Badge>
|
|
100
140
|
</Button>
|
|
101
141
|
|
|
102
142
|
<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 } }}>
|
|
103
143
|
{getTabs()}
|
|
104
144
|
</Menu>
|
|
145
|
+
{getModals()}
|
|
105
146
|
</>
|
|
106
147
|
);
|
|
107
148
|
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { UserContextInterface } from "@churchapps/helpers";
|
|
3
|
-
interface Props {
|
|
4
|
-
appName: string;
|
|
5
|
-
counts: {
|
|
6
|
-
notificationCount: number;
|
|
7
|
-
pmCount: number;
|
|
8
|
-
};
|
|
9
|
-
context: UserContextInterface;
|
|
10
|
-
router?: any;
|
|
11
|
-
onUpdate: () => void;
|
|
12
|
-
}
|
|
13
|
-
export declare const NotificationMenu: React.FC<Props>;
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=NotificationMenu.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationMenu.d.ts","sourceRoot":"","sources":["../../../src/components/wrapper/NotificationMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAK3D,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,OAAO,EAAE,oBAAoB,CAAC;IAC9B,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA6E5C,CAAC"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.NotificationMenu = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const material_1 = require("@mui/material");
|
|
9
|
-
const PrivateMessages_1 = require("./PrivateMessages");
|
|
10
|
-
const Notifications_1 = require("./Notifications");
|
|
11
|
-
const base_1 = require("@mui/base");
|
|
12
|
-
const NotificationMenu = (props) => {
|
|
13
|
-
const [anchorEl, setAnchorEl] = react_1.default.useState(null);
|
|
14
|
-
const [refreshKey, setRefreshKey] = react_1.default.useState(0);
|
|
15
|
-
const open = Boolean(anchorEl);
|
|
16
|
-
const handleClick = (e) => {
|
|
17
|
-
e.preventDefault();
|
|
18
|
-
setAnchorEl(e.currentTarget);
|
|
19
|
-
};
|
|
20
|
-
const handleClose = () => {
|
|
21
|
-
props.onUpdate();
|
|
22
|
-
setAnchorEl(null);
|
|
23
|
-
};
|
|
24
|
-
const paperProps = {
|
|
25
|
-
elevation: 0,
|
|
26
|
-
sx: {
|
|
27
|
-
overflow: "visible",
|
|
28
|
-
filter: "drop-shadow(0px 2px 8px rgba(0,0,0,0.32))",
|
|
29
|
-
mt: 1.5,
|
|
30
|
-
"& .MuiAvatar-root": { width: 32, height: 32, ml: -0.5, mr: 1 },
|
|
31
|
-
minWidth: 450
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
const handleItemClick = (e) => {
|
|
35
|
-
console.log(e);
|
|
36
|
-
};
|
|
37
|
-
const [tabIndex, setTabIndex] = react_1.default.useState(0);
|
|
38
|
-
function handleChange(el, newValue) {
|
|
39
|
-
console.log("SETTING TAB INDEX", newValue);
|
|
40
|
-
setTabIndex(newValue);
|
|
41
|
-
}
|
|
42
|
-
const totalCount = props.counts.notificationCount + props.counts.pmCount;
|
|
43
|
-
let icon = react_1.default.createElement(material_1.Icon, null, "notifications");
|
|
44
|
-
if (totalCount > 0)
|
|
45
|
-
icon = react_1.default.createElement(react_1.default.Fragment, null,
|
|
46
|
-
icon,
|
|
47
|
-
react_1.default.createElement(base_1.Badge, { style: { backgroundColor: "#FF0000", padding: "0px 5px 0px 5px", borderRadius: 5 }, badgeContent: totalCount, color: "error" }));
|
|
48
|
-
react_1.default.useEffect(() => {
|
|
49
|
-
console.log("THE COUNTS CHANGED");
|
|
50
|
-
setRefreshKey(Math.random());
|
|
51
|
-
}, [props.counts]);
|
|
52
|
-
react_1.default.useEffect(() => {
|
|
53
|
-
console.log("RELOADED NotificationMenu");
|
|
54
|
-
}, []);
|
|
55
|
-
/*
|
|
56
|
-
<TabPanel value={tabIndex} index={0}>
|
|
57
|
-
<PrivateMessages context={props.context} refreshKey={refreshKey} />
|
|
58
|
-
</TabPanel>
|
|
59
|
-
<TabPanel value={tabIndex} index={1}>
|
|
60
|
-
<Notifications context={props.context} />
|
|
61
|
-
</TabPanel>
|
|
62
|
-
*/
|
|
63
|
-
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
64
|
-
react_1.default.createElement(material_1.Button, { onClick: handleClick, color: "inherit", "aria-controls": open ? "account-menu" : undefined, "aria-haspopup": "true", "aria-expanded": open ? "true" : undefined, style: { textTransform: "none" } }, icon),
|
|
65
|
-
react_1.default.createElement(material_1.Menu, { anchorEl: anchorEl, id: "account-menu", open: open, onClose: handleClose, onClick: (e) => { handleItemClick(e); }, PaperProps: paperProps, transformOrigin: { horizontal: "right", vertical: "top" }, anchorOrigin: { horizontal: "right", vertical: "bottom" }, sx: { "& .MuiBox-root": { borderBottom: 0 } } },
|
|
66
|
-
react_1.default.createElement(material_1.Box, { sx: { borderBottom: 1, borderColor: "divider" } },
|
|
67
|
-
react_1.default.createElement(material_1.Tabs, { variant: "fullWidth", value: tabIndex, onChange: handleChange },
|
|
68
|
-
react_1.default.createElement(material_1.Tab, { label: "Messages", icon: (props.counts.pmCount > 0) ? react_1.default.createElement(material_1.Icon, { style: { color: "#FF0000" } }, "notifications") : react_1.default.createElement(react_1.default.Fragment, null), iconPosition: "end" }),
|
|
69
|
-
react_1.default.createElement(material_1.Tab, { label: "Notifications", icon: (props.counts.notificationCount > 0) ? react_1.default.createElement(material_1.Icon, { style: { color: "#FF0000" } }, "notifications") : react_1.default.createElement(react_1.default.Fragment, null), iconPosition: "end" })),
|
|
70
|
-
tabIndex === 0 && react_1.default.createElement(PrivateMessages_1.PrivateMessages, { context: props.context, refreshKey: refreshKey, onUpdate: props.onUpdate }),
|
|
71
|
-
tabIndex === 1 && react_1.default.createElement(Notifications_1.Notifications, { context: props.context, appName: props.appName, onUpdate: props.onUpdate, router: props.router })))));
|
|
72
|
-
};
|
|
73
|
-
exports.NotificationMenu = NotificationMenu;
|
|
74
|
-
//# sourceMappingURL=NotificationMenu.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationMenu.js","sourceRoot":"","sources":["../../../src/components/wrapper/NotificationMenu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { Menu, Icon, Button, Box, Tabs, Tab } from "@mui/material";
|
|
3
|
-
import { UserContextInterface } from "@churchapps/helpers";
|
|
4
|
-
import { PrivateMessages } from "./PrivateMessages";
|
|
5
|
-
import { Notifications } from "./Notifications";
|
|
6
|
-
import { Badge } from "@mui/base";
|
|
7
|
-
|
|
8
|
-
interface Props {
|
|
9
|
-
appName: string;
|
|
10
|
-
counts: { notificationCount: number, pmCount: number };
|
|
11
|
-
context: UserContextInterface;
|
|
12
|
-
router?: any;
|
|
13
|
-
onUpdate: () => void;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export const NotificationMenu: React.FC<Props> = (props) => {
|
|
17
|
-
const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);
|
|
18
|
-
const [refreshKey, setRefreshKey] = React.useState(0);
|
|
19
|
-
const open = Boolean(anchorEl);
|
|
20
|
-
|
|
21
|
-
const handleClick = (e: React.MouseEvent<HTMLElement>) => {
|
|
22
|
-
e.preventDefault();
|
|
23
|
-
setAnchorEl(e.currentTarget);
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const handleClose = () => {
|
|
27
|
-
props.onUpdate();
|
|
28
|
-
setAnchorEl(null);
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const paperProps = {
|
|
33
|
-
elevation: 0,
|
|
34
|
-
sx: {
|
|
35
|
-
overflow: "visible",
|
|
36
|
-
filter: "drop-shadow(0px 2px 8px rgba(0,0,0,0.32))",
|
|
37
|
-
mt: 1.5,
|
|
38
|
-
"& .MuiAvatar-root": { width: 32, height: 32, ml: -0.5, mr: 1 },
|
|
39
|
-
minWidth: 450
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
const handleItemClick = (e: React.MouseEvent<HTMLDivElement>) => {
|
|
44
|
-
console.log(e);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
const [tabIndex, setTabIndex] = React.useState(0);
|
|
48
|
-
|
|
49
|
-
function handleChange(el: any, newValue: any) {
|
|
50
|
-
console.log("SETTING TAB INDEX", newValue)
|
|
51
|
-
setTabIndex(newValue);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
const totalCount = props.counts.notificationCount + props.counts.pmCount;
|
|
55
|
-
|
|
56
|
-
let icon = <Icon>notifications</Icon>;
|
|
57
|
-
if (totalCount>0) icon = <>{icon}<Badge style={{backgroundColor:"#FF0000", padding:"0px 5px 0px 5px", borderRadius:5}} badgeContent={totalCount} color="error" /></>
|
|
58
|
-
|
|
59
|
-
React.useEffect(() => {
|
|
60
|
-
console.log("THE COUNTS CHANGED")
|
|
61
|
-
setRefreshKey(Math.random());
|
|
62
|
-
}, [props.counts]);
|
|
63
|
-
|
|
64
|
-
React.useEffect(() => {
|
|
65
|
-
console.log("RELOADED NotificationMenu")
|
|
66
|
-
}, []);
|
|
67
|
-
|
|
68
|
-
/*
|
|
69
|
-
<TabPanel value={tabIndex} index={0}>
|
|
70
|
-
<PrivateMessages context={props.context} refreshKey={refreshKey} />
|
|
71
|
-
</TabPanel>
|
|
72
|
-
<TabPanel value={tabIndex} index={1}>
|
|
73
|
-
<Notifications context={props.context} />
|
|
74
|
-
</TabPanel>
|
|
75
|
-
*/
|
|
76
|
-
return (
|
|
77
|
-
<>
|
|
78
|
-
<Button onClick={handleClick} color="inherit" aria-controls={open ? "account-menu" : undefined} aria-haspopup="true" aria-expanded={open ? "true" : undefined} style={{ textTransform: "none" }}>
|
|
79
|
-
{icon}
|
|
80
|
-
</Button>
|
|
81
|
-
<Menu anchorEl={anchorEl} id="account-menu" open={open} onClose={handleClose} onClick={(e) => { handleItemClick(e) }} PaperProps={paperProps} transformOrigin={{ horizontal: "right", vertical: "top" }} anchorOrigin={{ horizontal: "right", vertical: "bottom" }} sx={{ "& .MuiBox-root": { borderBottom: 0 } }}>
|
|
82
|
-
<Box sx={{ borderBottom: 1, borderColor: "divider" }}>
|
|
83
|
-
<Tabs variant="fullWidth" value={tabIndex} onChange={handleChange}>
|
|
84
|
-
<Tab label="Messages" icon={(props.counts.pmCount>0) ? <Icon style={{color:"#FF0000"}}>notifications</Icon> : <></>} iconPosition="end" />
|
|
85
|
-
<Tab label="Notifications" icon={(props.counts.notificationCount>0) ? <Icon style={{color:"#FF0000"}}>notifications</Icon> : <></>} iconPosition="end" />
|
|
86
|
-
</Tabs>
|
|
87
|
-
{tabIndex === 0 && <PrivateMessages context={props.context} refreshKey={refreshKey} onUpdate={props.onUpdate} />}
|
|
88
|
-
{tabIndex === 1 && <Notifications context={props.context} appName={props.appName} onUpdate={props.onUpdate} router={props.router} />}
|
|
89
|
-
</Box>
|
|
90
|
-
</Menu>
|
|
91
|
-
</>
|
|
92
|
-
);
|
|
93
|
-
};
|