bananas-commerce-admin 0.10.5 → 0.10.6

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 (140) hide show
  1. package/dist/cjs/Admin.js +4 -4
  2. package/dist/cjs/Admin.js.map +1 -1
  3. package/dist/cjs/components/Header.js +39 -16
  4. package/dist/cjs/components/Header.js.map +1 -1
  5. package/dist/cjs/components/NavBar/index.js +1 -0
  6. package/dist/cjs/components/NavBar/index.js.map +1 -1
  7. package/dist/cjs/containers/ComponentLoader.js +34 -10
  8. package/dist/cjs/containers/ComponentLoader.js.map +1 -1
  9. package/dist/cjs/containers/PageLoader.js +36 -37
  10. package/dist/cjs/containers/PageLoader.js.map +1 -1
  11. package/dist/cjs/contexts/DashboardFilterContext.js +58 -22
  12. package/dist/cjs/contexts/DashboardFilterContext.js.map +1 -1
  13. package/dist/cjs/contexts/RouterContext.js +2 -2
  14. package/dist/cjs/contexts/RouterContext.js.map +1 -1
  15. package/dist/cjs/contexts/UserContext.js +19 -9
  16. package/dist/cjs/contexts/UserContext.js.map +1 -1
  17. package/dist/cjs/extensions/bananas/pages/me/list.js +9 -7
  18. package/dist/cjs/extensions/bananas/pages/me/list.js.map +1 -1
  19. package/dist/cjs/extensions/fulfillment/pages/order/list.js +29 -8
  20. package/dist/cjs/extensions/fulfillment/pages/order/list.js.map +1 -1
  21. package/dist/cjs/extensions/pos/components/DashboardFilter.js +30 -7
  22. package/dist/cjs/extensions/pos/components/DashboardFilter.js.map +1 -1
  23. package/dist/cjs/extensions/pos/components/WidgetCard.js +9 -6
  24. package/dist/cjs/extensions/pos/components/WidgetCard.js.map +1 -1
  25. package/dist/cjs/extensions/pos/contrib/PaymentMethod.js +104 -124
  26. package/dist/cjs/extensions/pos/contrib/PaymentMethod.js.map +1 -1
  27. package/dist/cjs/extensions/pos/contrib/PurchaseAmount.js +16 -48
  28. package/dist/cjs/extensions/pos/contrib/PurchaseAmount.js.map +1 -1
  29. package/dist/cjs/extensions/pos/contrib/PurchaseCount.js +26 -54
  30. package/dist/cjs/extensions/pos/contrib/PurchaseCount.js.map +1 -1
  31. package/dist/cjs/extensions/pos/index.js +4 -4
  32. package/dist/cjs/extensions/pos/index.js.map +1 -1
  33. package/dist/cjs/extensions/pos/types/contrib.js +5 -0
  34. package/dist/cjs/extensions/pos/types/contrib.js.map +1 -1
  35. package/dist/cjs/extensions/pos/utils/diffDatesByGranularity.js +7 -1
  36. package/dist/cjs/extensions/pos/utils/diffDatesByGranularity.js.map +1 -1
  37. package/dist/cjs/extensions/pos/utils/interpolatePurchaseCounts.js +7 -3
  38. package/dist/cjs/extensions/pos/utils/interpolatePurchaseCounts.js.map +1 -1
  39. package/dist/cjs/hooks/useStorage.js.map +1 -1
  40. package/dist/cjs/index.js +1 -0
  41. package/dist/cjs/index.js.map +1 -1
  42. package/dist/cjs/pages/DashboardPage.js +25 -21
  43. package/dist/cjs/pages/DashboardPage.js.map +1 -1
  44. package/dist/cjs/router/Router.js +1 -2
  45. package/dist/cjs/router/Router.js.map +1 -1
  46. package/dist/esm/Admin.js +4 -4
  47. package/dist/esm/Admin.js.map +1 -1
  48. package/dist/esm/components/Header.js +17 -14
  49. package/dist/esm/components/Header.js.map +1 -1
  50. package/dist/esm/components/NavBar/index.js +1 -0
  51. package/dist/esm/components/NavBar/index.js.map +1 -1
  52. package/dist/esm/containers/ComponentLoader.js +11 -10
  53. package/dist/esm/containers/ComponentLoader.js.map +1 -1
  54. package/dist/esm/containers/PageLoader.js +37 -38
  55. package/dist/esm/containers/PageLoader.js.map +1 -1
  56. package/dist/esm/contexts/DashboardFilterContext.js +58 -23
  57. package/dist/esm/contexts/DashboardFilterContext.js.map +1 -1
  58. package/dist/esm/contexts/RouterContext.js +2 -2
  59. package/dist/esm/contexts/RouterContext.js.map +1 -1
  60. package/dist/esm/contexts/UserContext.js +19 -9
  61. package/dist/esm/contexts/UserContext.js.map +1 -1
  62. package/dist/esm/extensions/bananas/pages/me/list.js +10 -8
  63. package/dist/esm/extensions/bananas/pages/me/list.js.map +1 -1
  64. package/dist/esm/extensions/fulfillment/pages/order/list.js +6 -8
  65. package/dist/esm/extensions/fulfillment/pages/order/list.js.map +1 -1
  66. package/dist/esm/extensions/pos/components/DashboardFilter.js +29 -6
  67. package/dist/esm/extensions/pos/components/DashboardFilter.js.map +1 -1
  68. package/dist/esm/extensions/pos/components/WidgetCard.js +5 -2
  69. package/dist/esm/extensions/pos/components/WidgetCard.js.map +1 -1
  70. package/dist/esm/extensions/pos/contrib/PaymentMethod.js +104 -124
  71. package/dist/esm/extensions/pos/contrib/PaymentMethod.js.map +1 -1
  72. package/dist/esm/extensions/pos/contrib/PurchaseAmount.js +16 -25
  73. package/dist/esm/extensions/pos/contrib/PurchaseAmount.js.map +1 -1
  74. package/dist/esm/extensions/pos/contrib/PurchaseCount.js +28 -56
  75. package/dist/esm/extensions/pos/contrib/PurchaseCount.js.map +1 -1
  76. package/dist/esm/extensions/pos/index.js +4 -4
  77. package/dist/esm/extensions/pos/index.js.map +1 -1
  78. package/dist/esm/extensions/pos/types/contrib.js +4 -0
  79. package/dist/esm/extensions/pos/types/contrib.js.map +1 -1
  80. package/dist/esm/extensions/pos/utils/diffDatesByGranularity.js +5 -0
  81. package/dist/esm/extensions/pos/utils/diffDatesByGranularity.js.map +1 -1
  82. package/dist/esm/extensions/pos/utils/interpolatePurchaseCounts.js +7 -3
  83. package/dist/esm/extensions/pos/utils/interpolatePurchaseCounts.js.map +1 -1
  84. package/dist/esm/hooks/useStorage.js.map +1 -1
  85. package/dist/esm/index.js +1 -0
  86. package/dist/esm/index.js.map +1 -1
  87. package/dist/esm/pages/DashboardPage.js +20 -16
  88. package/dist/esm/pages/DashboardPage.js.map +1 -1
  89. package/dist/esm/router/Router.js +1 -2
  90. package/dist/esm/router/Router.js.map +1 -1
  91. package/dist/types/components/Header.d.ts +5 -2
  92. package/dist/types/contexts/DashboardFilterContext.d.ts +16 -4
  93. package/dist/types/contexts/UserContext.d.ts +4 -0
  94. package/dist/types/extensions/pos/components/DashboardFilter.d.ts +1 -1
  95. package/dist/types/extensions/pos/components/WidgetCard.d.ts +17 -2
  96. package/dist/types/extensions/pos/contrib/PaymentMethod.d.ts +3 -3
  97. package/dist/types/extensions/pos/contrib/PurchaseAmount.d.ts +3 -3
  98. package/dist/types/extensions/pos/contrib/PurchaseCount.d.ts +3 -3
  99. package/dist/types/extensions/pos/types/contrib.d.ts +1 -0
  100. package/dist/types/extensions/pos/utils/diffDatesByGranularity.d.ts +8 -0
  101. package/dist/types/extensions/pos/utils/interpolatePurchaseCounts.d.ts +3 -3
  102. package/dist/types/hooks/useStorage.d.ts +1 -1
  103. package/dist/types/index.d.ts +1 -0
  104. package/dist/types/pages/DashboardPage.d.ts +5 -0
  105. package/package.json +1 -1
  106. package/src/Admin.tsx +24 -26
  107. package/src/components/Header.tsx +28 -21
  108. package/src/components/NavBar/index.tsx +2 -0
  109. package/src/containers/ComponentLoader.tsx +15 -10
  110. package/src/containers/PageLoader.tsx +43 -44
  111. package/src/contexts/DashboardFilterContext.tsx +76 -28
  112. package/src/contexts/RouterContext.tsx +2 -2
  113. package/src/contexts/UserContext.tsx +21 -10
  114. package/src/extensions/bananas/pages/me/list.tsx +22 -10
  115. package/src/extensions/fulfillment/pages/order/list.tsx +9 -9
  116. package/src/extensions/pos/components/DashboardFilter.tsx +36 -16
  117. package/src/extensions/pos/components/WidgetCard.tsx +15 -3
  118. package/src/extensions/pos/contrib/PaymentMethod.tsx +84 -101
  119. package/src/extensions/pos/contrib/PurchaseAmount.tsx +41 -33
  120. package/src/extensions/pos/contrib/PurchaseCount.tsx +86 -128
  121. package/src/extensions/pos/index.tsx +4 -4
  122. package/src/extensions/pos/types/contrib.ts +7 -0
  123. package/src/extensions/pos/utils/diffDatesByGranularity.ts +13 -1
  124. package/src/extensions/pos/utils/interpolatePurchaseCounts.ts +11 -7
  125. package/src/hooks/useStorage.ts +1 -1
  126. package/src/index.ts +1 -0
  127. package/src/pages/DashboardPage.tsx +32 -25
  128. package/src/router/Router.tsx +2 -3
  129. package/dist/cjs/contexts/DashboardDataContext.js +0 -68
  130. package/dist/cjs/contexts/DashboardDataContext.js.map +0 -1
  131. package/dist/cjs/extensions/pos/components/PurchaseAmountWidget.js +0 -57
  132. package/dist/cjs/extensions/pos/components/PurchaseAmountWidget.js.map +0 -1
  133. package/dist/esm/contexts/DashboardDataContext.js +0 -41
  134. package/dist/esm/contexts/DashboardDataContext.js.map +0 -1
  135. package/dist/esm/extensions/pos/components/PurchaseAmountWidget.js +0 -29
  136. package/dist/esm/extensions/pos/components/PurchaseAmountWidget.js.map +0 -1
  137. package/dist/types/contexts/DashboardDataContext.d.ts +0 -14
  138. package/dist/types/extensions/pos/components/PurchaseAmountWidget.d.ts +0 -7
  139. package/src/contexts/DashboardDataContext.tsx +0 -70
  140. package/src/extensions/pos/components/PurchaseAmountWidget.tsx +0 -66
package/dist/cjs/Admin.js CHANGED
@@ -42,9 +42,9 @@ const Router_1 = require("./router/Router");
42
42
  const Admin = ({ logo, title, subtitle, version, navigation, extensions, dashboard, basename, basepath, }) => {
43
43
  const api = (0, ApiContext_1.useApi)();
44
44
  const i18n = (0, I18nContext_1.useI18n)();
45
- const { user } = (0, UserContext_1.useUser)();
45
+ const { hasTriedToFetchUser, user } = (0, UserContext_1.useUser)();
46
46
  const hasLoaded = Boolean(api != null && i18n != null);
47
- const isLoggedIn = user != null;
47
+ const hasUser = user != null;
48
48
  return (react_1.default.createElement(Box_1.default, { sx: {
49
49
  display: "flex",
50
50
  position: "fixed",
@@ -54,13 +54,13 @@ const Admin = ({ logo, title, subtitle, version, navigation, extensions, dashboa
54
54
  height: "100%",
55
55
  flexDirection: "column",
56
56
  backgroundColor: "background.default",
57
- } }, hasLoaded ? (isLoggedIn ? (react_1.default.createElement(react_router_dom_1.BrowserRouter, { basename: basename },
57
+ } }, !hasLoaded || !hasTriedToFetchUser ? (react_1.default.createElement(LoadingScreen_1.default, null)) : !hasUser ? (react_1.default.createElement(LoginPage_1.default, { logo: logo, title: title })) : (react_1.default.createElement(react_router_dom_1.BrowserRouter, { basename: basename },
58
58
  react_1.default.createElement(RouterContext_1.RouterContextProvider, { basename: basename, stripPathPrefix: basepath },
59
59
  react_1.default.createElement(DialogContext_1.default, null,
60
60
  react_1.default.createElement(DialogContext_1.BcomDialog, null),
61
61
  react_1.default.createElement(Box_1.default, { sx: { display: "flex" } },
62
62
  react_1.default.createElement(NavRail_1.default, { navigation: navigation, logo: logo, title: title, subtitle: subtitle, version: version }),
63
- react_1.default.createElement(Router_1.Router, { extensions: extensions, dashboard: dashboard })))))) : (react_1.default.createElement(LoginPage_1.default, { logo: logo, title: title }))) : (react_1.default.createElement(LoadingScreen_1.default, null))));
63
+ react_1.default.createElement(Router_1.Router, { extensions: extensions, dashboard: dashboard }))))))));
64
64
  };
65
65
  exports.Admin = Admin;
66
66
  exports.default = exports.Admin;
@@ -1 +1 @@
1
- {"version":3,"file":"Admin.js","sourceRoot":"","sources":["../../src/Admin.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,uDAAiD;AACjD,4DAAoC;AACpC,mEAA2C;AAC3C,+EAAuD;AACvD,sDAA+C;AAC/C,0EAA6E;AAC7E,wDAAiD;AACjD,4DAAiE;AACjE,wDAAiD;AACjD,kEAA0C;AAC1C,4CAAsD;AAkB/C,MAAM,KAAK,GAAyB,CAAC,EAC1C,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,GAAG,GAAG,IAAA,mBAAM,GAAE,CAAC;IACrB,MAAM,IAAI,GAAG,IAAA,qBAAO,GAAE,CAAC;IACvB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,qBAAO,GAAE,CAAC;IAE3B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC;IAEhC,OAAO,CACL,8BAAC,aAAG,IACF,EAAE,EAAE;YACF,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,OAAO;YACjB,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,QAAQ;YACvB,eAAe,EAAE,oBAAoB;SACtC,IAEA,SAAS,CAAC,CAAC,CAAC,CACX,UAAU,CAAC,CAAC,CAAC,CACX,8BAAC,gCAAa,IAAC,QAAQ,EAAE,QAAQ;QAC/B,8BAAC,qCAAqB,IAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ;YAClE,8BAAC,uBAAqB;gBACpB,8BAAC,0BAAU,OAAG;gBACd,8BAAC,aAAG,IAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;oBAC1B,8BAAC,iBAAO,IACN,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,GAChB;oBAEF,8BAAC,eAAM,IAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GAAI,CACpD,CACgB,CACF,CACV,CACjB,CAAC,CAAC,CAAC,CACF,8BAAC,mBAAS,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,CACxC,CACF,CAAC,CAAC,CAAC,CACF,8BAAC,uBAAa,OAAG,CAClB,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AA3DW,QAAA,KAAK,SA2DhB;AAEF,kBAAe,aAAK,CAAC"}
1
+ {"version":3,"file":"Admin.js","sourceRoot":"","sources":["../../src/Admin.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,uDAAiD;AACjD,4DAAoC;AACpC,mEAA2C;AAC3C,+EAAuD;AACvD,sDAA+C;AAC/C,0EAA6E;AAC7E,wDAAiD;AACjD,4DAAiE;AACjE,wDAAiD;AACjD,kEAA0C;AAC1C,4CAAsD;AAkB/C,MAAM,KAAK,GAAyB,CAAC,EAC1C,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,GAAG,GAAG,IAAA,mBAAM,GAAE,CAAC;IACrB,MAAM,IAAI,GAAG,IAAA,qBAAO,GAAE,CAAC;IACvB,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,GAAG,IAAA,qBAAO,GAAE,CAAC;IAEhD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC;IAE7B,OAAO,CACL,8BAAC,aAAG,IACF,EAAE,EAAE;YACF,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,OAAO;YACjB,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,QAAQ;YACvB,eAAe,EAAE,oBAAoB;SACtC,IAEA,CAAC,SAAS,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CACpC,8BAAC,uBAAa,OAAG,CAClB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACb,8BAAC,mBAAS,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,CACxC,CAAC,CAAC,CAAC,CACF,8BAAC,gCAAa,IAAC,QAAQ,EAAE,QAAQ;QAC/B,8BAAC,qCAAqB,IAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ;YAClE,8BAAC,uBAAqB;gBACpB,8BAAC,0BAAU,OAAG;gBACd,8BAAC,aAAG,IAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;oBAC1B,8BAAC,iBAAO,IACN,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,GAChB;oBAEF,8BAAC,eAAM,IAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GAAI,CACpD,CACgB,CACF,CACV,CACjB,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAzDW,QAAA,KAAK,SAyDhB;AAEF,kBAAe,aAAK,CAAC"}
@@ -1,25 +1,48 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
4
24
  };
5
25
  Object.defineProperty(exports, "__esModule", { value: true });
6
26
  exports.Header = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const Stack_1 = __importDefault(require("@mui/material/Stack"));
9
- const Header = ({ variant = "default", children, }) => {
10
- return (react_1.default.createElement(Stack_1.default, { direction: "column", sx: variant === "opaque"
27
+ const react_1 = __importStar(require("react"));
28
+ const material_1 = require("@mui/material");
29
+ const Header = ({ variant = "default", children, sx: passedSx, ...props }) => {
30
+ const variantSx = (0, react_1.useMemo)(() => variant === "opaque"
31
+ ? {
32
+ backgroundColor: "background.paper",
33
+ borderBottom: 1,
34
+ borderColor: "divider",
35
+ pt: 2,
36
+ }
37
+ : variant === "default"
11
38
  ? {
12
- backgroundColor: "background.paper",
13
- borderBottom: 1,
14
- borderColor: "divider",
15
- pt: 2,
39
+ background: "background.default",
40
+ py: 2,
16
41
  }
17
- : variant === "default"
18
- ? {
19
- background: "background.default",
20
- py: 2,
21
- }
22
- : {} }, children));
42
+ : {}, [variant]);
43
+ const sx = (0, react_1.useMemo)(() => ({ ...variantSx, ...passedSx }), [variantSx, passedSx]);
44
+ return (react_1.default.createElement(material_1.Stack, { direction: "column", sx: sx, ...props }, children));
23
45
  };
24
46
  exports.Header = Header;
47
+ exports.default = (0, react_1.memo)(exports.Header);
25
48
  //# sourceMappingURL=Header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/components/Header.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,gEAAwC;AAMjC,MAAM,MAAM,GAAuD,CAAC,EACzE,OAAO,GAAG,SAAS,EACnB,QAAQ,GACT,EAAE,EAAE;IACH,OAAO,CACL,8BAAC,eAAK,IACJ,SAAS,EAAC,QAAQ,EAClB,EAAE,EACA,OAAO,KAAK,QAAQ;YAClB,CAAC,CAAC;gBACE,eAAe,EAAE,kBAAkB;gBACnC,YAAY,EAAE,CAAC;gBACf,WAAW,EAAE,SAAS;gBACtB,EAAE,EAAE,CAAC;aACN;YACH,CAAC,CAAC,OAAO,KAAK,SAAS;gBACrB,CAAC,CAAC;oBACE,UAAU,EAAE,oBAAoB;oBAChC,EAAE,EAAE,CAAC;iBACN;gBACH,CAAC,CAAC,EAAE,IAGT,QAAQ,CACH,CACT,CAAC;AACJ,CAAC,CAAC;AA1BW,QAAA,MAAM,UA0BjB"}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/components/Header.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA6C;AAE7C,4CAAkD;AAM3C,MAAM,MAAM,GAA8B,CAAC,EAChD,OAAO,GAAG,SAAS,EACnB,QAAQ,EACR,EAAE,EAAE,QAAQ,EACZ,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,IAAA,eAAO,EACvB,GAAG,EAAE,CACH,OAAO,KAAK,QAAQ;QAClB,CAAC,CAAC;YACE,eAAe,EAAE,kBAAkB;YACnC,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,SAAS;YACtB,EAAE,EAAE,CAAC;SACN;QACH,CAAC,CAAC,OAAO,KAAK,SAAS;YACrB,CAAC,CAAC;gBACE,UAAU,EAAE,oBAAoB;gBAChC,EAAE,EAAE,CAAC;aACN;YACH,CAAC,CAAC,EAAE,EACV,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,MAAM,EAAE,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,QAAQ,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEjF,OAAO,CACL,8BAAC,gBAAK,IAAC,SAAS,EAAC,QAAQ,EAAC,EAAE,EAAE,EAAE,KAAM,KAAK,IACxC,QAAQ,CACH,CACT,CAAC;AACJ,CAAC,CAAC;AA/BW,QAAA,MAAM,UA+BjB;AAEF,kBAAe,IAAA,YAAI,EAAC,cAAM,CAAC,CAAC"}
@@ -40,6 +40,7 @@ const NavBarRoutes_1 = __importDefault(require("./NavBarRoutes"));
40
40
  const User_1 = __importDefault(require("./User"));
41
41
  const Logout_1 = __importDefault(require("./Logout"));
42
42
  const drawerWidth = 240;
43
+ // TODO: Remove
43
44
  // TODO: Move `openedMixin` and `closedMixin` to styled, using `ownerState`
44
45
  const openedMixin = (theme) => ({
45
46
  width: drawerWidth,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/NavBar/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/NavBar/index.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +1,33 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
27
  };
5
28
  Object.defineProperty(exports, "__esModule", { value: true });
6
29
  exports.ComponentLoader = exports.DataLoadFailedError = void 0;
7
- const react_1 = __importDefault(require("react"));
30
+ const react_1 = __importStar(require("react"));
8
31
  const react_2 = require("react");
9
32
  const ApiContext_1 = require("../contexts/ApiContext");
10
33
  const useAsyncError_1 = __importDefault(require("../hooks/useAsyncError"));
@@ -40,13 +63,11 @@ const ComponentLoader = ({ operation, ...rest }) => {
40
63
  };
41
64
  exports.ComponentLoader = ComponentLoader;
42
65
  const ComponentLoaderInner = ({ operation, ...rest }) => {
43
- const api = (0, ApiContext_1.useApi)();
44
- const [data, setData] = react_1.default.useState(null);
66
+ const [data, setData] = (0, react_1.useState)(null);
45
67
  const throwError = (0, useAsyncError_1.default)();
46
68
  const component = operation.component.component;
47
- const Component = react_1.default.lazy(async () => ({
48
- default: await Promise.resolve(component),
49
- }));
69
+ const Component = (0, react_1.useMemo)(() => (0, react_1.lazy)(async () => ({ default: await Promise.resolve(component) })), [component]);
70
+ const initalLoad = (0, react_1.useRef)(true);
50
71
  const refresh = () => {
51
72
  operation
52
73
  .call(rest)
@@ -60,12 +81,15 @@ const ComponentLoaderInner = ({ operation, ...rest }) => {
60
81
  })
61
82
  .catch(throwError);
62
83
  };
63
- react_1.default.useEffect(() => {
64
- if (data === null) {
84
+ (0, react_1.useEffect)(() => {
85
+ if (initalLoad.current) {
86
+ initalLoad.current = false;
87
+ }
88
+ else {
65
89
  refresh();
66
90
  }
67
- }, [api, data]);
68
- return (react_1.default.createElement(react_2.Suspense, { fallback: react_1.default.createElement(LoadingScreen_1.default, null) }, data != null ? react_1.default.createElement(Component, { data: data, refresh: refresh, ...rest }) : react_1.default.createElement(LoadingScreen_1.default, null)));
91
+ }, [rest.query, rest.params]);
92
+ return (react_1.default.createElement(react_2.Suspense, { fallback: react_1.default.createElement(LoadingScreen_1.default, null) }, data != null && react_1.default.createElement(Component, { data: data, refresh: refresh, ...rest })));
69
93
  };
70
94
  exports.default = exports.ComponentLoader;
71
95
  //# sourceMappingURL=ComponentLoader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentLoader.js","sourceRoot":"","sources":["../../../src/containers/ComponentLoader.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,iCAAiC;AAGjC,uDAAgD;AAChD,2EAAmD;AACnD,oEAA4C;AAG5C,MAAa,mBAAoB,SAAQ,KAAK;IACnC,QAAQ,CAAW;IAE5B,YAAY,QAAkB,EAAE,OAAgB;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAPD,kDAOC;AAUM,MAAM,eAAe,GAAmC,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACxF,MAAM,GAAG,GAAG,IAAA,mBAAM,GAAE,CAAC;IACrB,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,SAAS,CAAC,SAAS,EAAE,SAAS,IAAI,IAAI,EAAE,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,0CAA0C,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;IACvC,6DAA6D;IAC7D,0DAA0D;IAC1D,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;IAC3C,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC;IACzC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC;IAE7C,OAAO,CACL,8BAAC,oBAAoB,IACnB,SAAS,EAAE,SAAqE,KAC5E,IAAI,GACR,CACH,CAAC;AACJ,CAAC,CAAC;AA7BW,QAAA,eAAe,mBA6B1B;AAEF,MAAM,oBAAoB,GAAwC,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC3F,MAAM,GAAG,GAAG,IAAA,mBAAM,GAAE,CAAC;IACrB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAA,uBAAa,GAAE,CAAC;IAEnC,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC;IAChD,MAAM,SAAS,GAAG,eAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACxC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;KAC1C,CAAC,CAAC,CAAC;IAEJ,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,SAAS;aACN,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACvB,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,UAAU,CACR,IAAI,mBAAmB,CACrB,QAAQ,EACR,yBAAyB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAClE,CACF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,UAAU,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAEhB,OAAO,CACL,8BAAC,gBAAQ,IAAC,QAAQ,EAAE,8BAAC,uBAAa,OAAG,IAClC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,8BAAC,SAAS,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,KAAM,IAAI,GAAI,CAAC,CAAC,CAAC,8BAAC,uBAAa,OAAG,CAChF,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,uBAAe,CAAC"}
1
+ {"version":3,"file":"ComponentLoader.js","sourceRoot":"","sources":["../../../src/containers/ComponentLoader.tsx"],"names":[],"mappings":"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"}
@@ -42,51 +42,50 @@ class PageLoadFailedError extends Error {
42
42
  exports.PageLoadFailedError = PageLoadFailedError;
43
43
  const PageLoader = ({ route, page, offline, request, defaultRequest, }) => {
44
44
  offline ??= false;
45
- const Page = (0, react_1.lazy)(async () => ({
46
- default: await Promise.resolve(page),
47
- }));
45
+ const Page = (0, react_1.useMemo)(() => (0, react_1.lazy)(async () => ({ default: await Promise.resolve(page) })), [page]);
48
46
  const api = (0, ApiContext_1.useApi)();
49
47
  const params = (0, react_router_dom_1.useParams)();
50
48
  const [searchParams] = (0, react_router_dom_1.useSearchParams)();
51
49
  const [data, setData] = (0, react_1.useState)(null);
52
50
  const throwError = (0, useAsyncError_1.default)();
51
+ // TODO: Please don't to this many requests man :(
53
52
  const refresh = () => {
54
- if (!offline) {
55
- const query = Array.from(searchParams.entries()).length == 0
56
- ? defaultRequest?.query != null
57
- ? defaultRequest.query instanceof URLSearchParams
58
- ? defaultRequest.query.entries()
59
- : Object.entries(defaultRequest.query)
60
- : []
61
- : searchParams.entries();
62
- api.operations[route.id]
63
- .call({
64
- params: { ...params, ...request?.params },
65
- query: new URLSearchParams([
66
- ...Array.from(query),
67
- ...Array.from(request?.query != null
68
- ? request.query instanceof URLSearchParams
69
- ? request.query.entries()
70
- : Object.entries(request.query)
71
- : []),
72
- ]),
73
- })
74
- .then(async (response) => {
75
- if (response.ok) {
76
- setData(await response.json());
77
- }
78
- else {
79
- throwError(new PageLoadFailedError(response, `Page data load failed with ${response.status} ${response.statusText}`));
80
- }
81
- })
82
- .catch(throwError);
83
- }
53
+ if (offline)
54
+ return;
55
+ const query = Array.from(searchParams.entries()).length === 0
56
+ ? defaultRequest?.query != null
57
+ ? defaultRequest.query instanceof URLSearchParams
58
+ ? defaultRequest.query.entries()
59
+ : Object.entries(defaultRequest.query)
60
+ : []
61
+ : searchParams.entries();
62
+ api.operations[route.id]
63
+ .call({
64
+ params: { ...params, ...request?.params },
65
+ query: new URLSearchParams([
66
+ ...Array.from(query),
67
+ ...Array.from(request?.query != null
68
+ ? request.query instanceof URLSearchParams
69
+ ? request.query.entries()
70
+ : Object.entries(request.query)
71
+ : []),
72
+ ]),
73
+ })
74
+ .then(async (response) => {
75
+ if (response.ok) {
76
+ setData(await response.json());
77
+ }
78
+ else {
79
+ throwError(new PageLoadFailedError(response, `Page data load failed with ${response.status} ${response.statusText}`));
80
+ }
81
+ })
82
+ .catch(throwError);
84
83
  };
85
- react_1.default.useEffect(() => {
86
- if (data === null)
84
+ (0, react_1.useEffect)(() => {
85
+ if (data == null)
87
86
  refresh();
88
- }, [api, params, searchParams, data]);
89
- return (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement(LoadingScreen_1.default, null) }, data != null || offline ? react_1.default.createElement(Page, { data: data, refresh: refresh }) : react_1.default.createElement(LoadingScreen_1.default, null)));
87
+ }, [params, searchParams, data]);
88
+ return (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement(LoadingScreen_1.default, null) }, Boolean(data != null || offline) && react_1.default.createElement(Page, { data: data, refresh: refresh })));
90
89
  };
91
90
  exports.default = PageLoader;
92
91
  //# sourceMappingURL=PageLoader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageLoader.js","sourceRoot":"","sources":["../../../src/containers/PageLoader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAwD;AACxD,uDAA8D;AAE9D,uDAAgD;AAEhD,2EAAmD;AAEnD,oEAA4C;AAE5C,MAAa,mBAAoB,SAAQ,KAAK;IACnC,QAAQ,CAAW;IAE5B,YAAY,QAAkB,EAAE,OAAgB;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAPD,kDAOC;AAUD,MAAM,UAAU,GAA8B,CAAC,EAC7C,KAAK,EACL,IAAI,EACJ,OAAO,EACP,OAAO,EACP,cAAc,GACf,EAAE,EAAE;IACH,OAAO,KAAK,KAAK,CAAC;IAElB,MAAM,IAAI,GAAG,IAAA,YAAI,EAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC7B,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;KACrC,CAAC,CAAC,CAAC;IACJ,MAAM,GAAG,GAAG,IAAA,mBAAM,GAAE,CAAC;IACrB,MAAM,MAAM,GAAG,IAAA,4BAAS,GAAE,CAAC;IAC3B,MAAM,CAAC,YAAY,CAAC,GAAG,IAAA,kCAAe,GAAE,CAAC;IAEzC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,IAAA,uBAAa,GAAE,CAAC;IAEnC,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,KAAK,GACT,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC;gBAC5C,CAAC,CAAC,cAAc,EAAE,KAAK,IAAI,IAAI;oBAC7B,CAAC,CAAC,cAAc,CAAC,KAAK,YAAY,eAAe;wBAC/C,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE;wBAChC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC;oBACxC,CAAC,CAAC,EAAE;gBACN,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAE7B,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;iBACrB,IAAI,CAAC;gBACJ,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE;gBACzC,KAAK,EAAE,IAAI,eAAe,CAAC;oBACzB,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;oBACpB,GAAG,KAAK,CAAC,IAAI,CACX,OAAO,EAAE,KAAK,IAAI,IAAI;wBACpB,CAAC,CAAC,OAAO,CAAC,KAAK,YAAY,eAAe;4BACxC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;4BACzB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;wBACjC,CAAC,CAAC,EAAE,CACP;iBACF,CAAC;aACH,CAAC;iBACD,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACvB,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBAChB,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACN,UAAU,CACR,IAAI,mBAAmB,CACrB,QAAQ,EACR,8BAA8B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACvE,CACF,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,UAAU,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IAEF,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;IAC/B,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;IAEtC,OAAO,CACL,8BAAC,gBAAQ,IAAC,QAAQ,EAAE,8BAAC,uBAAa,OAAG,IAClC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,8BAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC,CAAC,CAAC,8BAAC,uBAAa,OAAG,CAC5E,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"PageLoader.js","sourceRoot":"","sources":["../../../src/containers/PageLoader.tsx"],"names":[],"mappings":"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"}
@@ -24,35 +24,71 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.useDashboardFilter = exports.DashboardFilterContext = void 0;
27
+ exports.filterToQueryParams = filterToQueryParams;
27
28
  const react_1 = __importStar(require("react"));
28
29
  const luxon_1 = require("luxon");
29
- const initialFilter = () => {
30
- const storedFilter = sessionStorage.getItem("dashboard-filter");
31
- if (storedFilter == null) {
32
- return {
33
- start_date: luxon_1.DateTime.now().minus({ days: 6 }),
34
- end_date: luxon_1.DateTime.now(),
35
- granularity: "day",
36
- };
37
- }
38
- const parsed = JSON.parse(storedFilter);
39
- const filter = {
40
- ...parsed,
41
- start_date: luxon_1.DateTime.fromISO(parsed.start_date),
42
- end_date: luxon_1.DateTime.fromISO(parsed.end_date),
30
+ const RouterContext_1 = require("./RouterContext");
31
+ const contrib_1 = require("../extensions/pos/types/contrib");
32
+ /**
33
+ * The default filter for the dashboard,used when the filter is not present in the URL.
34
+ * Might as well be a function to avoid stale dates.
35
+ */
36
+ const defaultFilter = () => ({
37
+ startDate: luxon_1.DateTime.now().minus({ days: 6 }),
38
+ endDate: luxon_1.DateTime.now(),
39
+ endDateInclusive: luxon_1.DateTime.now().plus({ days: 1 }),
40
+ granularity: "day",
41
+ });
42
+ /**
43
+ * Load the initial filter from session storage.
44
+ * If the filter is not present or invalid, return `defaultFilter`.
45
+ */
46
+ const loadInitialFilter = () => {
47
+ // try to get a filter from the URL
48
+ const url = new URL(window.location.href);
49
+ // The URL always has to store the inclusive date since the backend expects it.
50
+ const end_date_inclusive = url.searchParams.get("end_date");
51
+ const start_date = url.searchParams.get("start_date");
52
+ const granularity = url.searchParams.get("granularity");
53
+ if (start_date == null || end_date_inclusive == null)
54
+ return defaultFilter();
55
+ if (!(0, contrib_1.isGranularity)(granularity))
56
+ return defaultFilter();
57
+ const startDate = luxon_1.DateTime.fromISO(start_date);
58
+ const endDateInclusive = luxon_1.DateTime.fromISO(end_date_inclusive);
59
+ return {
60
+ startDate,
61
+ endDateInclusive,
62
+ endDate: endDateInclusive.minus({ days: 1 }),
63
+ granularity,
43
64
  };
44
- return filter;
45
65
  };
46
66
  exports.DashboardFilterContext = react_1.default.createContext(undefined);
47
67
  const useDashboardFilter = () => react_1.default.useContext(exports.DashboardFilterContext);
48
68
  exports.useDashboardFilter = useDashboardFilter;
49
- const DashboardFilterContextProvider = ({ children }) => {
50
- const [filter, setFilter] = (0, react_1.useState)(initialFilter());
51
- const handleSetFilter = (0, react_1.useCallback)((filter) => {
52
- sessionStorage.setItem("dashboard-filter", JSON.stringify(filter));
53
- setFilter(filter);
54
- }, []);
55
- return (react_1.default.createElement(exports.DashboardFilterContext.Provider, { value: { filter, setFilter: handleSetFilter } }, children));
69
+ /**
70
+ * Convert `DashboardFilter` to a query string that can be used in the URL.
71
+ * Uses the inclusive `end_date` to make sure the backend always get the correct date.
72
+ */
73
+ function filterToQueryParams({ startDate, endDateInclusive, granularity, }) {
74
+ const start_date = startDate.toISO();
75
+ const end_date = endDateInclusive.toISO();
76
+ if (start_date == null || end_date == null)
77
+ return null;
78
+ return { start_date, end_date, granularity };
79
+ }
80
+ const DashboardFilterContextProvider = ({ children, }) => {
81
+ const { navigate } = (0, RouterContext_1.useRouter)();
82
+ const [filter, setFilter] = (0, react_1.useState)(loadInitialFilter());
83
+ (0, react_1.useEffect)(() => {
84
+ const query = filterToQueryParams(filter);
85
+ if (query == null) {
86
+ console.error("Invalid filter", filter);
87
+ return;
88
+ }
89
+ navigate(undefined, { query, replace: true });
90
+ }, [filter]);
91
+ return (react_1.default.createElement(exports.DashboardFilterContext.Provider, { value: { filter, setFilter } }, children));
56
92
  };
57
93
  exports.default = DashboardFilterContextProvider;
58
94
  //# sourceMappingURL=DashboardFilterContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardFilterContext.js","sourceRoot":"","sources":["../../../src/contexts/DashboardFilterContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAqD;AACrD,iCAAiC;AAcjC,MAAM,aAAa,GAAG,GAAoB,EAAE;IAC1C,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEhE,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QACzB,OAAO;YACL,UAAU,EAAE,gBAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC7C,QAAQ,EAAE,gBAAQ,CAAC,GAAG,EAAE;YACxB,WAAW,EAAE,KAAK;SACnB,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAExC,MAAM,MAAM,GAAoB;QAC9B,GAAG,MAAM;QACT,UAAU,EAAE,gBAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;QAC/C,QAAQ,EAAE,gBAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;KAC5C,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEW,QAAA,sBAAsB,GAAG,eAAK,CAAC,aAAa,CACvD,SAA8C,CAC/C,CAAC;AAEK,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,eAAK,CAAC,UAAU,CAAC,8BAAsB,CAAC,CAAC;AAApE,QAAA,kBAAkB,sBAAkD;AAMjF,MAAM,8BAA8B,GAAG,CAAC,EAAE,QAAQ,EAAuC,EAAE,EAAE;IAC3F,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,aAAa,EAAE,CAAC,CAAC;IAEtD,MAAM,eAAe,GAAG,IAAA,mBAAW,EAAC,CAAC,MAAuB,EAAE,EAAE;QAC9D,cAAc,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACnE,SAAS,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,8BAAC,8BAAsB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,IAC3E,QAAQ,CACuB,CACnC,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,8BAA8B,CAAC"}
1
+ {"version":3,"file":"DashboardFilterContext.js","sourceRoot":"","sources":["../../../src/contexts/DashboardFilterContext.tsx"],"names":[],"mappings":"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"}
@@ -94,7 +94,7 @@ const RouterContextProvider = ({ children, ...props }) => {
94
94
  // Direct operation id routes, requires reversing the operation id
95
95
  if (typeof route === "string") {
96
96
  const routeInfo = getRoute(route);
97
- if (routeInfo === undefined) {
97
+ if (routeInfo == null) {
98
98
  enqueueSnackbar("Failed to navigate, view console for more info", {
99
99
  variant: "error",
100
100
  });
@@ -103,7 +103,7 @@ const RouterContextProvider = ({ children, ...props }) => {
103
103
  route = routeInfo;
104
104
  }
105
105
  let pathname = route?.path;
106
- if (pathname) {
106
+ if (pathname != null) {
107
107
  for (const [key, value] of Object.entries(options?.params ?? {})) {
108
108
  pathname = pathname.replace(`:${key}`, encodeURIComponent(value));
109
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RouterContext.js","sourceRoot":"","sources":["../../../src/contexts/RouterContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RouterContext.js","sourceRoot":"","sources":["../../../src/contexts/RouterContext.tsx"],"names":[],"mappings":"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"}
@@ -25,18 +25,26 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.UserContextProvider = exports.useUser = void 0;
27
27
  const react_1 = __importStar(require("react"));
28
+ const useStorage_1 = require("../hooks/useStorage");
28
29
  const ApiContext_1 = require("./ApiContext");
29
30
  const UserContext = react_1.default.createContext(undefined);
30
31
  const useUser = () => react_1.default.useContext(UserContext);
31
32
  exports.useUser = useUser;
32
33
  const UserContextProvider = ({ children }) => {
33
34
  const api = (0, ApiContext_1.useApi)();
34
- const [user, setUser] = (0, react_1.useState)(null);
35
+ const [user, setUser] = (0, useStorage_1.useSessionStorage)("bcom-admin.user");
36
+ const [hasTriedToFetchUser, setHasTriedToFetchUser] = (0, react_1.useState)(false);
35
37
  (0, react_1.useEffect)(() => {
36
- if (api != null && user == null) {
37
- api.getAuthenticatedUser().then((u) => setUser(u));
38
- }
39
- }, [user, api]);
38
+ const getInitialUser = async () => {
39
+ if (api == null)
40
+ return;
41
+ const user = (await api.getAuthenticatedUser()) ?? undefined; // `undefined` has meaning here! It resets the sessionStorage.
42
+ setUser(user);
43
+ setHasTriedToFetchUser(true);
44
+ };
45
+ if (!hasTriedToFetchUser)
46
+ getInitialUser();
47
+ }, [hasTriedToFetchUser, user, api]);
40
48
  const login = async (username, password) => {
41
49
  const response = await api?.operations["bananas.login:create"].call({
42
50
  body: { username, password },
@@ -46,8 +54,10 @@ const UserContextProvider = ({ children }) => {
46
54
  setUser(user);
47
55
  return user;
48
56
  }
49
- setUser(null);
50
- return null;
57
+ else {
58
+ setUser(undefined);
59
+ return null;
60
+ }
51
61
  };
52
62
  const changePassword = async (oldPassword, newPassword1, newPassword2) => {
53
63
  const response = await api?.operations["bananas.change_password:create"].call({
@@ -64,12 +74,12 @@ const UserContextProvider = ({ children }) => {
64
74
  const logout = async () => {
65
75
  const response = await api?.operations["bananas.logout:create"].call();
66
76
  if (response?.ok) {
67
- setUser(null);
77
+ setUser(undefined);
68
78
  return;
69
79
  }
70
80
  throw new Error("Could not log out");
71
81
  };
72
- return (react_1.default.createElement(UserContext.Provider, { value: { user, login, logout, changePassword } }, children));
82
+ return (react_1.default.createElement(UserContext.Provider, { value: { user, login, logout, changePassword, hasTriedToFetchUser } }, children));
73
83
  };
74
84
  exports.UserContextProvider = UserContextProvider;
75
85
  exports.default = UserContext;
@@ -1 +1 @@
1
- {"version":3,"file":"UserContext.js","sourceRoot":"","sources":["../../../src/contexts/UserContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAmD;AAEnD,6CAAsC;AAuBtC,MAAM,WAAW,GAAG,eAAK,CAAC,aAAa,CAAc,SAAmC,CAAC,CAAC;AACnF,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,eAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAA9C,QAAA,OAAO,WAAuC;AAEpD,MAAM,mBAAmB,GAAsC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACrF,MAAM,GAAG,GAAG,IAAA,mBAAM,GAAE,CAAC;IACrB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAc,IAAI,CAAC,CAAC;IAEpD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YAChC,GAAG,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAEhB,MAAM,KAAK,GAAG,KAAK,EAAE,QAAgB,EAAE,QAAgB,EAAE,EAAE;QACzD,MAAM,QAAQ,GAAG,MAAM,GAAG,EAAE,UAAU,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC;YAClE,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;SAC7B,CAAC,CAAC;QAEH,IAAI,QAAQ,EAAE,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,KAAK,EAC1B,WAAmB,EACnB,YAAoB,EACpB,YAAoB,EACpB,EAAE;QACF,MAAM,QAAQ,GAAG,MAAM,GAAG,EAAE,UAAU,CAAC,gCAAgC,CAAC,CAAC,IAAI,CAAC;YAC5E,IAAI,EAAE;gBACJ,YAAY,EAAE,WAAW;gBACzB,aAAa,EAAE,YAAY;gBAC3B,aAAa,EAAE,YAAY;aAC5B;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;QACxB,MAAM,QAAQ,GAAG,MAAM,GAAG,EAAE,UAAU,CAAC,uBAAuB,CAAC,CAAC,IAAI,EAAE,CAAC;QAEvE,IAAI,QAAQ,EAAE,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,OAAO,CACL,8BAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,IACjE,QAAQ,CACY,CACxB,CAAC;AACJ,CAAC,CAAC;AA3DW,QAAA,mBAAmB,uBA2D9B;AAEF,kBAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"UserContext.js","sourceRoot":"","sources":["../../../src/contexts/UserContext.tsx"],"names":[],"mappings":"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"}
@@ -27,22 +27,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const react_1 = __importStar(require("react"));
30
- const Grid_1 = __importDefault(require("@mui/material/Grid"));
31
- const Paper_1 = __importDefault(require("@mui/material/Paper"));
30
+ // power off icon
31
+ const PowerSettingsNew_1 = __importDefault(require("@mui/icons-material/PowerSettingsNew"));
32
+ const material_1 = require("@mui/material");
32
33
  const TitleBar_1 = require("../../../../components/TitleBar");
33
34
  const Header_1 = require("../../../../components/Header");
34
35
  const Content_1 = __importDefault(require("../../../../containers/Content"));
35
36
  const UserContext_1 = require("../../../../contexts/UserContext");
36
37
  const PasswordChangeForm_1 = __importDefault(require("../../components/PasswordChangeForm"));
37
38
  const MePage = () => {
38
- const { user } = (0, UserContext_1.useUser)();
39
+ const { logout, user } = (0, UserContext_1.useUser)();
40
+ const handleLogout = (0, react_1.useCallback)(() => logout(), [logout]);
39
41
  return (react_1.default.createElement(react_1.default.Fragment, null,
40
42
  react_1.default.createElement(Header_1.Header, null,
41
- react_1.default.createElement(TitleBar_1.TitleBar, { title: user?.username ?? "Me" })),
43
+ react_1.default.createElement(TitleBar_1.TitleBar, { title: user?.username ?? "Me" },
44
+ react_1.default.createElement(material_1.Button, { color: "error", variant: "contained", onClick: handleLogout, size: "large", startIcon: react_1.default.createElement(PowerSettingsNew_1.default, null) }, "Logout"))),
42
45
  react_1.default.createElement(Content_1.default, null,
43
- react_1.default.createElement(Grid_1.default, { item: true },
44
- react_1.default.createElement(Paper_1.default, { sx: { p: 3, alignSelf: "flex-start", width: "fit-content" }, elevation: 1 },
45
- react_1.default.createElement(PasswordChangeForm_1.default, null))))));
46
+ react_1.default.createElement(material_1.Paper, { sx: { p: 3, alignSelf: "flex-start", width: "fit-content" }, elevation: 1 },
47
+ react_1.default.createElement(PasswordChangeForm_1.default, null)))));
46
48
  };
47
49
  exports.default = (0, react_1.memo)(MePage);
48
50
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../../src/extensions/bananas/pages/me/list.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAoC;AAEpC,8DAAsC;AACtC,gEAAwC;AAExC,8DAA2D;AAC3D,0DAAuD;AACvD,6EAAqD;AACrD,kEAA2D;AAE3D,6FAAqE;AAErE,MAAM,MAAM,GAAkB,GAAG,EAAE;IACjC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,qBAAO,GAAE,CAAC;IAE3B,OAAO,CACL;QACE,8BAAC,eAAM;YACL,8BAAC,mBAAQ,IAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI,GAAI,CACpC;QACT,8BAAC,iBAAO;YACN,8BAAC,cAAI,IAAC,IAAI;gBACR,8BAAC,eAAK,IAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,CAAC;oBAC9E,8BAAC,4BAAkB,OAAG,CAChB,CACH,CACC,CACT,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,IAAA,YAAI,EAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../../src/extensions/bananas/pages/me/list.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiD;AAEjD,iBAAiB;AACjB,4FAAwE;AACxE,4CAA8C;AAE9C,8DAA2D;AAC3D,0DAAuD;AACvD,6EAAqD;AACrD,kEAA2D;AAE3D,6FAAqE;AAErE,MAAM,MAAM,GAAkB,GAAG,EAAE;IACjC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,qBAAO,GAAE,CAAC;IAEnC,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3D,OAAO,CACL;QACE,8BAAC,eAAM;YACL,8BAAC,mBAAQ,IAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI;gBACrC,8BAAC,iBAAM,IACL,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE,YAAY,EACrB,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE,8BAAC,0BAAoB,OAAG,aAG5B,CACA,CACJ;QAET,8BAAC,iBAAO;YACN,8BAAC,gBAAK,IAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,CAAC;gBAC9E,8BAAC,4BAAkB,OAAG,CAChB,CACA,CACT,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,IAAA,YAAI,EAAC,MAAM,CAAC,CAAC"}