bananas-commerce-admin 0.4.0 → 0.4.1
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/cjs/api.js +3 -3
- package/dist/cjs/api.js.map +1 -1
- package/dist/cjs/components/NavBar.js +2 -2
- package/dist/cjs/components/NavBar.js.map +1 -1
- package/dist/cjs/components/User.js +1 -1
- package/dist/cjs/components/User.js.map +1 -1
- package/dist/cjs/contexts/I18nContext.js +2 -2
- package/dist/cjs/contexts/I18nContext.js.map +1 -1
- package/dist/cjs/contexts/UserContext.js +5 -7
- package/dist/cjs/contexts/UserContext.js.map +1 -1
- package/dist/cjs/hooks/useStorage.js +71 -0
- package/dist/cjs/hooks/useStorage.js.map +1 -0
- package/dist/esm/api.js +3 -3
- package/dist/esm/api.js.map +1 -1
- package/dist/esm/components/NavBar.js +1 -1
- package/dist/esm/components/NavBar.js.map +1 -1
- package/dist/esm/components/User.js +1 -1
- package/dist/esm/components/User.js.map +1 -1
- package/dist/esm/contexts/I18nContext.js +2 -2
- package/dist/esm/contexts/I18nContext.js.map +1 -1
- package/dist/esm/contexts/UserContext.js +5 -7
- package/dist/esm/contexts/UserContext.js.map +1 -1
- package/dist/esm/hooks/useStorage.js +65 -0
- package/dist/esm/hooks/useStorage.js.map +1 -0
- package/dist/types/api.d.ts +2 -1
- package/dist/types/contexts/UserContext.d.ts +2 -2
- package/dist/types/hooks/useStorage.d.ts +31 -0
- package/package.json +1 -1
- package/src/api.ts +4 -3
- package/src/components/NavBar.tsx +1 -1
- package/src/components/User.tsx +1 -1
- package/src/contexts/I18nContext.tsx +2 -2
- package/src/contexts/UserContext.tsx +7 -9
- package/src/hooks/useStorage.ts +77 -0
- package/dist/cjs/hooks/useLocalStorage.js +0 -48
- package/dist/cjs/hooks/useLocalStorage.js.map +0 -1
- package/dist/esm/hooks/useLocalStorage.js +0 -42
- package/dist/esm/hooks/useLocalStorage.js.map +0 -1
- package/dist/types/hooks/useLocalStorage.d.ts +0 -2
- package/src/hooks/useLocalStorage.ts +0 -42
package/dist/cjs/api.js
CHANGED
|
@@ -279,7 +279,7 @@ var ApiClient = /** @class */ (function () {
|
|
|
279
279
|
});
|
|
280
280
|
});
|
|
281
281
|
};
|
|
282
|
-
ApiClient.prototype.
|
|
282
|
+
ApiClient.prototype.getAuthenticatedUser = function () {
|
|
283
283
|
return __awaiter(this, void 0, void 0, function () {
|
|
284
284
|
var response, _a;
|
|
285
285
|
return __generator(this, function (_b) {
|
|
@@ -289,10 +289,10 @@ var ApiClient = /** @class */ (function () {
|
|
|
289
289
|
return [4 /*yield*/, this.operations["bananas.me:list"].call()];
|
|
290
290
|
case 1:
|
|
291
291
|
response = _b.sent();
|
|
292
|
-
return [2 /*return*/, response.ok];
|
|
292
|
+
return [2 /*return*/, response.ok ? response.json() : null];
|
|
293
293
|
case 2:
|
|
294
294
|
_a = _b.sent();
|
|
295
|
-
return [2 /*return*/,
|
|
295
|
+
return [2 /*return*/, null];
|
|
296
296
|
case 3: return [2 /*return*/];
|
|
297
297
|
}
|
|
298
298
|
});
|
package/dist/cjs/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+EAAwD;AAIxD,gDAA8C;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ var Box_1 = __importDefault(require("@mui/material/Box"));
|
|
|
20
20
|
var Divider_1 = __importDefault(require("@mui/material/Divider"));
|
|
21
21
|
var Drawer_1 = __importDefault(require("@mui/material/Drawer"));
|
|
22
22
|
var styles_1 = require("@mui/material/styles");
|
|
23
|
-
var
|
|
23
|
+
var useStorage_1 = require("../hooks/useStorage");
|
|
24
24
|
var Branding_1 = __importDefault(require("./Branding"));
|
|
25
25
|
var Hamburger_1 = __importDefault(require("./Hamburger"));
|
|
26
26
|
var NavBarRoutes_1 = __importDefault(require("./NavBarRoutes"));
|
|
@@ -54,7 +54,7 @@ var NavBar = function (_a) {
|
|
|
54
54
|
var theme = (0, styles_1.useTheme)();
|
|
55
55
|
var navigate = (0, react_router_dom_1.useNavigate)();
|
|
56
56
|
var navigateHome = function () { return navigate("/", { replace: true }); };
|
|
57
|
-
var _b = (0,
|
|
57
|
+
var _b = (0, useStorage_1.useLocalStorage)("openNavBar", true), open = _b[0], setOpen = _b[1];
|
|
58
58
|
var toggleDrawerOpen = function () { return setOpen(!open); };
|
|
59
59
|
return (react_1.default.createElement(Drawer_1.default, { sx: __assign({ width: drawerWidth, flexShrink: 0, whiteSpace: "nowrap", boxSizing: "border-box" }, (open
|
|
60
60
|
? __assign(__assign({}, openedMixin(theme)), { "& .MuiDrawer-paper": openedMixin(theme) }) : __assign(__assign({}, closedMixin(theme)), { "& .MuiDrawer-paper": closedMixin(theme) }))), anchor: "left", variant: "permanent", open: open },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavBar.js","sourceRoot":"","sources":["../../../src/components/NavBar.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,qDAA+C;AAE/C,0DAAoC;AACpC,kEAA4C;AAC5C,gEAA0C;AAC1C,+CAAkE;AAElE,
|
|
1
|
+
{"version":3,"file":"NavBar.js","sourceRoot":"","sources":["../../../src/components/NavBar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -52,7 +52,7 @@ var User = function (_a) {
|
|
|
52
52
|
classes !== null && classes !== void 0 ? classes : (classes = styles((0, styles_1.useTheme)()));
|
|
53
53
|
var UserIcon = icon !== null && icon !== void 0 ? icon : AccountCircleOutlined_1.default;
|
|
54
54
|
var _d = react_1.default.useMemo(function () { return [getRoute("bananas.me:list"), getRoute("bananas.logout:create").title]; }, [routes]), route = _d[0], logoutText = _d[1];
|
|
55
|
-
return user
|
|
55
|
+
return user != null && route !== undefined ? (react_1.default.createElement(List_1.default, { sx: { paddingTop: 0, paddingBottom: 0 } },
|
|
56
56
|
react_1.default.createElement(NavBarItem_1.default, { route: route, open: open, icon: UserIcon, title: user.full_name, subtitle: react_1.default.createElement(ButtonBase_1.default, { sx: (0, select_styles_1.ss)(classes.link, classes.drawerLink), onClick: function (e) {
|
|
57
57
|
e.preventDefault();
|
|
58
58
|
logout();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/components/User.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA0B;AAE1B,oGAAkF;AAClF,wEAAkD;AAClD,4DAAsC;AACtC,+CAAuD;AACvD,wEAAkD;AAElD,2DAAsD;AACtD,uDAAkD;AAElD,uDAA2C;AAC3C,4DAAsC;AAEtC,IAAM,MAAM,GAAG,UAAC,KAAY,IAAK,OAAA,CAAC;IAChC,IAAI,aACF,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,EACV,cAAc,EAAE,CAAC,EACjB,cAAc,EAAE,OAAO,EACvB,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,IAClC,KAAK,CAAC,MAAM,CAAC,OAAO,CACxB;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE;YACP,QAAQ,EAAE,OAAO;SAClB;KACF;IACD,UAAU,EAAE;QACV,SAAS,EAAE;YACT,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;YACjC,OAAO,EAAE,CAAC;SACX;KACF;IACD,UAAU,EAAE;QACV,SAAS,EAAE;YACT,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK;YACpC,OAAO,EAAE,CAAC;SACX;KACF;CACF,CAAC,EA3B+B,CA2B/B,CAAC;AAQH,IAAM,IAAI,GAAwB,UAAC,EAAuB;QAArB,OAAO,aAAA,EAAE,IAAI,UAAA,EAAE,IAAI,UAAA;IAChD,IAAA,KAAmB,IAAA,qBAAO,GAAE,EAA1B,IAAI,UAAA,EAAE,MAAM,YAAc,CAAC;IAC7B,IAAA,KAAuB,IAAA,yBAAS,GAAE,EAAhC,MAAM,YAAA,EAAE,QAAQ,cAAgB,CAAC;IAEzC,OAAO,aAAP,OAAO,cAAP,OAAO,IAAP,OAAO,GAAK,MAAM,CAAC,IAAA,iBAAQ,GAAE,CAAC,EAAC;IAE/B,IAAM,QAAQ,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,+BAAyB,CAAC;IAC7C,IAAA,KAAsB,eAAK,CAAC,OAAO,CACvC,cAAM,OAAA,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,uBAAuB,CAAE,CAAC,KAAK,CAAC,EAAvE,CAAuE,EAC7E,CAAC,MAAM,CAAC,CACT,EAHM,KAAK,QAAA,EAAE,UAAU,QAGvB,CAAC;IAEF,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/components/User.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA0B;AAE1B,oGAAkF;AAClF,wEAAkD;AAClD,4DAAsC;AACtC,+CAAuD;AACvD,wEAAkD;AAElD,2DAAsD;AACtD,uDAAkD;AAElD,uDAA2C;AAC3C,4DAAsC;AAEtC,IAAM,MAAM,GAAG,UAAC,KAAY,IAAK,OAAA,CAAC;IAChC,IAAI,aACF,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,EACV,cAAc,EAAE,CAAC,EACjB,cAAc,EAAE,OAAO,EACvB,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,IAClC,KAAK,CAAC,MAAM,CAAC,OAAO,CACxB;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE;YACP,QAAQ,EAAE,OAAO;SAClB;KACF;IACD,UAAU,EAAE;QACV,SAAS,EAAE;YACT,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;YACjC,OAAO,EAAE,CAAC;SACX;KACF;IACD,UAAU,EAAE;QACV,SAAS,EAAE;YACT,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK;YACpC,OAAO,EAAE,CAAC;SACX;KACF;CACF,CAAC,EA3B+B,CA2B/B,CAAC;AAQH,IAAM,IAAI,GAAwB,UAAC,EAAuB;QAArB,OAAO,aAAA,EAAE,IAAI,UAAA,EAAE,IAAI,UAAA;IAChD,IAAA,KAAmB,IAAA,qBAAO,GAAE,EAA1B,IAAI,UAAA,EAAE,MAAM,YAAc,CAAC;IAC7B,IAAA,KAAuB,IAAA,yBAAS,GAAE,EAAhC,MAAM,YAAA,EAAE,QAAQ,cAAgB,CAAC;IAEzC,OAAO,aAAP,OAAO,cAAP,OAAO,IAAP,OAAO,GAAK,MAAM,CAAC,IAAA,iBAAQ,GAAE,CAAC,EAAC;IAE/B,IAAM,QAAQ,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,+BAAyB,CAAC;IAC7C,IAAA,KAAsB,eAAK,CAAC,OAAO,CACvC,cAAM,OAAA,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,uBAAuB,CAAE,CAAC,KAAK,CAAC,EAAvE,CAAuE,EAC7E,CAAC,MAAM,CAAC,CACT,EAHM,KAAK,QAAA,EAAE,UAAU,QAGvB,CAAC;IAEF,OAAO,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAC3C,8BAAC,cAAI,IAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;QAC3C,8BAAC,oBAAU,IACT,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,IAAI,CAAC,SAAS,EACrB,QAAQ,EACN,8BAAC,oBAAU,IACT,EAAE,EAAE,IAAA,kBAAE,EAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,EACxC,OAAO,EAAE,UAAC,CAAC;oBACT,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,MAAM,EAAE,CAAC;gBACX,CAAC;gBAED,8BAAC,oBAAU,IAAC,KAAK,EAAC,SAAS,IAAE,UAAU,CAAc,CAC1C,GAEf,CACG,CACR,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC;AAEF,kBAAe,IAAI,CAAC"}
|
|
@@ -41,7 +41,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
42
|
exports.I18nContextProvider = exports.useI18n = exports.interpolateString = void 0;
|
|
43
43
|
var react_1 = __importDefault(require("react"));
|
|
44
|
-
var
|
|
44
|
+
var useStorage_1 = require("../hooks/useStorage");
|
|
45
45
|
var ApiContext_1 = require("./ApiContext");
|
|
46
46
|
function interpolateString(string, params) {
|
|
47
47
|
return Array.isArray(params)
|
|
@@ -58,7 +58,7 @@ exports.useI18n = useI18n;
|
|
|
58
58
|
var I18nContextProvider = function (_a) {
|
|
59
59
|
var children = _a.children;
|
|
60
60
|
var api = (0, ApiContext_1.useApi)();
|
|
61
|
-
var _b = (0,
|
|
61
|
+
var _b = (0, useStorage_1.useSessionStorage)("i18n", undefined), i18n = _b[0], setI18n = _b[1];
|
|
62
62
|
react_1.default.useEffect(function () {
|
|
63
63
|
if (api && i18n === undefined) {
|
|
64
64
|
api.operations["bananas.i18n:list"].call().then(function (response) { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"I18nContext.js","sourceRoot":"","sources":["../../../src/contexts/I18nContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAE1B,
|
|
1
|
+
{"version":3,"file":"I18nContext.js","sourceRoot":"","sources":["../../../src/contexts/I18nContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAE1B,kDAAwD;AACxD,2CAAsC;AAEtC,SAAgB,iBAAiB,CAC/B,MAAc,EACd,MAAyC;IAEzC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,KAAK,IAAK,OAAA,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAA9B,CAA8B,EAAE,MAAM,CAAC;QACrE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAC3B,UAAC,CAAC,EAAE,EAAY;gBAAX,GAAG,QAAA,EAAE,KAAK,QAAA;YAAM,OAAA,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,cAAO,GAAG,wBAAc,GAAG,QAAK,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC;QAAnE,CAAmE,EACxF,MAAM,CACP,CAAC;AACR,CAAC;AAVD,8CAUC;AAOD,IAAM,WAAW,GAAG,eAAK,CAAC,aAAa,CAAc,SAAmC,CAAC,CAAC;AACnF,IAAM,OAAO,GAAG,cAAM,OAAA,eAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAA7B,CAA6B,CAAC;AAA9C,QAAA,OAAO,WAAuC;AAEpD,IAAM,mBAAmB,GAAsC,UAAC,EAAY;QAAV,QAAQ,cAAA;IAC/E,IAAM,GAAG,GAAG,IAAA,mBAAM,GAAE,CAAC;IACf,IAAA,KAAkB,IAAA,8BAAiB,EAAqC,MAAM,EAAE,SAAS,CAAC,EAAzF,IAAI,QAAA,EAAE,OAAO,QAA4E,CAAC;IAEjG,eAAK,CAAC,SAAS,CAAC;QACd,IAAI,GAAG,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAO,QAAQ;;;;gCAC/C,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;;4BAA7B,IAAI,GAAG,CAAC,SAAqB,CAAC,CAAC,OAAO;4BAC5C,OAAO,CAAC,IAAI,CAAC,CAAC;;;;iBACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAEhB,IAAM,CAAC,GAAG,UAAC,GAAW,EAAE,MAA0C;;QAChE,IAAM,KAAK,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,GAAG,CAAC,mCAAI,GAAG,CAAC;QACjC,OAAO,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3D,CAAC,CAAC;IAEF,OAAO,8BAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,IAAI,MAAA,EAAE,CAAC,GAAA,EAAE,IAAG,QAAQ,CAAwB,CAAC;AACrF,CAAC,CAAC;AAnBW,QAAA,mBAAmB,uBAmB9B;AAEF,kBAAe,WAAW,CAAC"}
|
|
@@ -41,7 +41,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
42
|
exports.UserContextProvider = exports.useUser = void 0;
|
|
43
43
|
var react_1 = __importDefault(require("react"));
|
|
44
|
-
var
|
|
44
|
+
var useStorage_1 = require("../hooks/useStorage");
|
|
45
45
|
var ApiContext_1 = require("./ApiContext");
|
|
46
46
|
var UserContext = react_1.default.createContext(undefined);
|
|
47
47
|
var useUser = function () { return react_1.default.useContext(UserContext); };
|
|
@@ -49,13 +49,11 @@ exports.useUser = useUser;
|
|
|
49
49
|
var UserContextProvider = function (_a) {
|
|
50
50
|
var children = _a.children;
|
|
51
51
|
var api = (0, ApiContext_1.useApi)();
|
|
52
|
-
var _b = (0,
|
|
52
|
+
var _b = (0, useStorage_1.useSessionStorage)("user", undefined), user = _b[0], setUser = _b[1];
|
|
53
53
|
react_1.default.useEffect(function () {
|
|
54
|
-
if (api !== undefined) {
|
|
55
|
-
api.
|
|
56
|
-
|
|
57
|
-
setUser(null);
|
|
58
|
-
}
|
|
54
|
+
if (api !== undefined && user === undefined) {
|
|
55
|
+
api.getAuthenticatedUser().then(function (u) {
|
|
56
|
+
setUser(u);
|
|
59
57
|
});
|
|
60
58
|
}
|
|
61
59
|
}, [user, api]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserContext.js","sourceRoot":"","sources":["../../../src/contexts/UserContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAE1B,
|
|
1
|
+
{"version":3,"file":"UserContext.js","sourceRoot":"","sources":["../../../src/contexts/UserContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useSessionStorage = exports.useLocalStorage = exports.useStorage = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
/**
|
|
6
|
+
* The `useStorage` hook is a generic hook for reactively storing state in a
|
|
7
|
+
* similar fashion to reacts usual {@link useState} hook. There is however some
|
|
8
|
+
* caveats which are good to keep in mind:
|
|
9
|
+
* - Any value of type `T` needs to be JSON (de-)serializeable. That means
|
|
10
|
+
* storing certain non-serializeable values can result in unexpected
|
|
11
|
+
* behavior, for example storing `Date` objects will stringify them.
|
|
12
|
+
* - Setting the value to `undefined` is equivalent to deleting the storage
|
|
13
|
+
* entry, not storing an `undefined` value. The reasoning behind this is
|
|
14
|
+
* that because JSON doesn't support `undefined` it should instead indicate
|
|
15
|
+
* an `undefined` value.
|
|
16
|
+
* - The hook is designed to listen to the global `storage` event which
|
|
17
|
+
* should make state changes propagate within the same context. If the
|
|
18
|
+
* storage is for example modified from another tab that change should
|
|
19
|
+
* trigger a state update in the current tab too. The behaviour of this may
|
|
20
|
+
* be browser dependant.
|
|
21
|
+
*/
|
|
22
|
+
function useStorage(storage, key, initial) {
|
|
23
|
+
var stored = storage.getItem(key);
|
|
24
|
+
var value = stored === null ? initial : JSON.parse(stored);
|
|
25
|
+
var _a = (0, react_1.useState)(value), state = _a[0], setState = _a[1];
|
|
26
|
+
(0, react_1.useEffect)(function () {
|
|
27
|
+
if (state === undefined) {
|
|
28
|
+
storage.removeItem(key);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
storage.setItem(key, JSON.stringify(state));
|
|
32
|
+
}
|
|
33
|
+
}, [state]);
|
|
34
|
+
(0, react_1.useEffect)(function () {
|
|
35
|
+
var listener = function (event) {
|
|
36
|
+
if (event.storageArea !== storage) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (event.key === null) {
|
|
40
|
+
setState(initial);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (event.key === key && event.newValue !== event.oldValue && event.newValue !== state) {
|
|
44
|
+
setState(event.newValue !== null ? JSON.parse(event.newValue) : null);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
addEventListener("storage", listener);
|
|
48
|
+
return function () { return removeEventListener("storage", listener); };
|
|
49
|
+
}, [storage]);
|
|
50
|
+
return [state, setState];
|
|
51
|
+
}
|
|
52
|
+
exports.useStorage = useStorage;
|
|
53
|
+
/**
|
|
54
|
+
* A hook for storing react state in `localStorage`.
|
|
55
|
+
*
|
|
56
|
+
* @see useStorage
|
|
57
|
+
*/
|
|
58
|
+
function useLocalStorage(key, initial) {
|
|
59
|
+
return useStorage(localStorage, key, initial);
|
|
60
|
+
}
|
|
61
|
+
exports.useLocalStorage = useLocalStorage;
|
|
62
|
+
/**
|
|
63
|
+
* A hook for storing react state in `sessionStorage`.
|
|
64
|
+
*
|
|
65
|
+
* @see useStorage
|
|
66
|
+
*/
|
|
67
|
+
function useSessionStorage(key, initial) {
|
|
68
|
+
return useStorage(sessionStorage, key, initial);
|
|
69
|
+
}
|
|
70
|
+
exports.useSessionStorage = useSessionStorage;
|
|
71
|
+
//# sourceMappingURL=useStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStorage.js","sourceRoot":"","sources":["../../../src/hooks/useStorage.ts"],"names":[],"mappings":";;;AAAA,+BAA4C;AAE5C;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,UAAU,CACxB,OAAgB,EAChB,GAAW,EACX,OAAU;IAEV,IAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,IAAM,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvD,IAAA,KAAoB,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAlC,KAAK,QAAA,EAAE,QAAQ,QAAmB,CAAC;IAE1C,IAAA,iBAAS,EAAC;QACR,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,IAAA,iBAAS,EAAC;QACR,IAAM,QAAQ,GAAG,UAAC,KAAmB;YACnC,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAClB,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACvF,QAAQ,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxE,CAAC;QACH,CAAC,CAAC;QAEF,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAEtC,OAAO,cAAM,OAAA,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAxC,CAAwC,CAAC;IACxD,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAvCD,gCAuCC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAI,GAAW,EAAE,OAAU;IACxD,OAAO,UAAU,CAAC,YAAY,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAFD,0CAEC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAI,GAAW,EAAE,OAAU;IAC1D,OAAO,UAAU,CAAC,cAAc,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAFD,8CAEC"}
|
package/dist/esm/api.js
CHANGED
|
@@ -273,7 +273,7 @@ var ApiClient = /** @class */ (function () {
|
|
|
273
273
|
});
|
|
274
274
|
});
|
|
275
275
|
};
|
|
276
|
-
ApiClient.prototype.
|
|
276
|
+
ApiClient.prototype.getAuthenticatedUser = function () {
|
|
277
277
|
return __awaiter(this, void 0, void 0, function () {
|
|
278
278
|
var response, _a;
|
|
279
279
|
return __generator(this, function (_b) {
|
|
@@ -283,10 +283,10 @@ var ApiClient = /** @class */ (function () {
|
|
|
283
283
|
return [4 /*yield*/, this.operations["bananas.me:list"].call()];
|
|
284
284
|
case 1:
|
|
285
285
|
response = _b.sent();
|
|
286
|
-
return [2 /*return*/, response.ok];
|
|
286
|
+
return [2 /*return*/, response.ok ? response.json() : null];
|
|
287
287
|
case 2:
|
|
288
288
|
_a = _b.sent();
|
|
289
|
-
return [2 /*return*/,
|
|
289
|
+
return [2 /*return*/, null];
|
|
290
290
|
case 3: return [2 /*return*/];
|
|
291
291
|
}
|
|
292
292
|
});
|
package/dist/esm/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,aAAa,MAAM,6BAA6B,CAAC;AAIxD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ import Box from "@mui/material/Box";
|
|
|
15
15
|
import Divider from "@mui/material/Divider";
|
|
16
16
|
import Drawer from "@mui/material/Drawer";
|
|
17
17
|
import { useTheme } from "@mui/material/styles";
|
|
18
|
-
import useLocalStorage from "../hooks/
|
|
18
|
+
import { useLocalStorage } from "../hooks/useStorage";
|
|
19
19
|
import Branding from "./Branding";
|
|
20
20
|
import Hamburger from "./Hamburger";
|
|
21
21
|
import NavBarRoutes from "./NavBarRoutes";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavBar.js","sourceRoot":"","sources":["../../../src/components/NavBar.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,EAAoB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,eAAe,MAAM,
|
|
1
|
+
{"version":3,"file":"NavBar.js","sourceRoot":"","sources":["../../../src/components/NavBar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -47,7 +47,7 @@ var User = function (_a) {
|
|
|
47
47
|
classes !== null && classes !== void 0 ? classes : (classes = styles(useTheme()));
|
|
48
48
|
var UserIcon = icon !== null && icon !== void 0 ? icon : AccountCircleOutlinedIcon;
|
|
49
49
|
var _d = React.useMemo(function () { return [getRoute("bananas.me:list"), getRoute("bananas.logout:create").title]; }, [routes]), route = _d[0], logoutText = _d[1];
|
|
50
|
-
return user
|
|
50
|
+
return user != null && route !== undefined ? (React.createElement(List, { sx: { paddingTop: 0, paddingBottom: 0 } },
|
|
51
51
|
React.createElement(NavBarItem, { route: route, open: open, icon: UserIcon, title: user.full_name, subtitle: React.createElement(ButtonBase, { sx: ss(classes.link, classes.drawerLink), onClick: function (e) {
|
|
52
52
|
e.preventDefault();
|
|
53
53
|
logout();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/components/User.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,yBAAyB,MAAM,2CAA2C,CAAC;AAClF,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,EAAS,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAC3C,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,IAAM,MAAM,GAAG,UAAC,KAAY,IAAK,OAAA,CAAC;IAChC,IAAI,aACF,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,EACV,cAAc,EAAE,CAAC,EACjB,cAAc,EAAE,OAAO,EACvB,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,IAClC,KAAK,CAAC,MAAM,CAAC,OAAO,CACxB;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE;YACP,QAAQ,EAAE,OAAO;SAClB;KACF;IACD,UAAU,EAAE;QACV,SAAS,EAAE;YACT,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;YACjC,OAAO,EAAE,CAAC;SACX;KACF;IACD,UAAU,EAAE;QACV,SAAS,EAAE;YACT,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK;YACpC,OAAO,EAAE,CAAC;SACX;KACF;CACF,CAAC,EA3B+B,CA2B/B,CAAC;AAQH,IAAM,IAAI,GAAwB,UAAC,EAAuB;QAArB,OAAO,aAAA,EAAE,IAAI,UAAA,EAAE,IAAI,UAAA;IAChD,IAAA,KAAmB,OAAO,EAAE,EAA1B,IAAI,UAAA,EAAE,MAAM,YAAc,CAAC;IAC7B,IAAA,KAAuB,SAAS,EAAE,EAAhC,MAAM,YAAA,EAAE,QAAQ,cAAgB,CAAC;IAEzC,OAAO,aAAP,OAAO,cAAP,OAAO,IAAP,OAAO,GAAK,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAC;IAE/B,IAAM,QAAQ,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,yBAAyB,CAAC;IAC7C,IAAA,KAAsB,KAAK,CAAC,OAAO,CACvC,cAAM,OAAA,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,uBAAuB,CAAE,CAAC,KAAK,CAAC,EAAvE,CAAuE,EAC7E,CAAC,MAAM,CAAC,CACT,EAHM,KAAK,QAAA,EAAE,UAAU,QAGvB,CAAC;IAEF,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/components/User.tsx"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
import React from "react";
|
|
38
|
-
import
|
|
38
|
+
import { useSessionStorage } from "../hooks/useStorage";
|
|
39
39
|
import { useApi } from "./ApiContext";
|
|
40
40
|
export function interpolateString(string, params) {
|
|
41
41
|
return Array.isArray(params)
|
|
@@ -50,7 +50,7 @@ export var useI18n = function () { return React.useContext(I18nContext); };
|
|
|
50
50
|
export var I18nContextProvider = function (_a) {
|
|
51
51
|
var children = _a.children;
|
|
52
52
|
var api = useApi();
|
|
53
|
-
var _b =
|
|
53
|
+
var _b = useSessionStorage("i18n", undefined), i18n = _b[0], setI18n = _b[1];
|
|
54
54
|
React.useEffect(function () {
|
|
55
55
|
if (api && i18n === undefined) {
|
|
56
56
|
api.operations["bananas.i18n:list"].call().then(function (response) { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"I18nContext.js","sourceRoot":"","sources":["../../../src/contexts/I18nContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,
|
|
1
|
+
{"version":3,"file":"I18nContext.js","sourceRoot":"","sources":["../../../src/contexts/I18nContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,UAAU,iBAAiB,CAC/B,MAAc,EACd,MAAyC;IAEzC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,KAAK,IAAK,OAAA,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAA9B,CAA8B,EAAE,MAAM,CAAC;QACrE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAC3B,UAAC,CAAC,EAAE,EAAY;gBAAX,GAAG,QAAA,EAAE,KAAK,QAAA;YAAM,OAAA,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,cAAO,GAAG,wBAAc,GAAG,QAAK,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC;QAAnE,CAAmE,EACxF,MAAM,CACP,CAAC;AACR,CAAC;AAOD,IAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAc,SAAmC,CAAC,CAAC;AAC1F,MAAM,CAAC,IAAM,OAAO,GAAG,cAAM,OAAA,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAA7B,CAA6B,CAAC;AAE3D,MAAM,CAAC,IAAM,mBAAmB,GAAsC,UAAC,EAAY;QAAV,QAAQ,cAAA;IAC/E,IAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACf,IAAA,KAAkB,iBAAiB,CAAqC,MAAM,EAAE,SAAS,CAAC,EAAzF,IAAI,QAAA,EAAE,OAAO,QAA4E,CAAC;IAEjG,KAAK,CAAC,SAAS,CAAC;QACd,IAAI,GAAG,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAO,QAAQ;;;;gCAC/C,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;;4BAA7B,IAAI,GAAG,CAAC,SAAqB,CAAC,CAAC,OAAO;4BAC5C,OAAO,CAAC,IAAI,CAAC,CAAC;;;;iBACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAEhB,IAAM,CAAC,GAAG,UAAC,GAAW,EAAE,MAA0C;;QAChE,IAAM,KAAK,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,GAAG,CAAC,mCAAI,GAAG,CAAC;QACjC,OAAO,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3D,CAAC,CAAC;IAEF,OAAO,oBAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,IAAI,MAAA,EAAE,CAAC,GAAA,EAAE,IAAG,QAAQ,CAAwB,CAAC;AACrF,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -35,20 +35,18 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
import React from "react";
|
|
38
|
-
import
|
|
38
|
+
import { useSessionStorage } from "../hooks/useStorage";
|
|
39
39
|
import { useApi } from "./ApiContext";
|
|
40
40
|
var UserContext = React.createContext(undefined);
|
|
41
41
|
export var useUser = function () { return React.useContext(UserContext); };
|
|
42
42
|
export var UserContextProvider = function (_a) {
|
|
43
43
|
var children = _a.children;
|
|
44
44
|
var api = useApi();
|
|
45
|
-
var _b =
|
|
45
|
+
var _b = useSessionStorage("user", undefined), user = _b[0], setUser = _b[1];
|
|
46
46
|
React.useEffect(function () {
|
|
47
|
-
if (api !== undefined) {
|
|
48
|
-
api.
|
|
49
|
-
|
|
50
|
-
setUser(null);
|
|
51
|
-
}
|
|
47
|
+
if (api !== undefined && user === undefined) {
|
|
48
|
+
api.getAuthenticatedUser().then(function (u) {
|
|
49
|
+
setUser(u);
|
|
52
50
|
});
|
|
53
51
|
}
|
|
54
52
|
}, [user, api]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserContext.js","sourceRoot":"","sources":["../../../src/contexts/UserContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,
|
|
1
|
+
{"version":3,"file":"UserContext.js","sourceRoot":"","sources":["../../../src/contexts/UserContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* The `useStorage` hook is a generic hook for reactively storing state in a
|
|
4
|
+
* similar fashion to reacts usual {@link useState} hook. There is however some
|
|
5
|
+
* caveats which are good to keep in mind:
|
|
6
|
+
* - Any value of type `T` needs to be JSON (de-)serializeable. That means
|
|
7
|
+
* storing certain non-serializeable values can result in unexpected
|
|
8
|
+
* behavior, for example storing `Date` objects will stringify them.
|
|
9
|
+
* - Setting the value to `undefined` is equivalent to deleting the storage
|
|
10
|
+
* entry, not storing an `undefined` value. The reasoning behind this is
|
|
11
|
+
* that because JSON doesn't support `undefined` it should instead indicate
|
|
12
|
+
* an `undefined` value.
|
|
13
|
+
* - The hook is designed to listen to the global `storage` event which
|
|
14
|
+
* should make state changes propagate within the same context. If the
|
|
15
|
+
* storage is for example modified from another tab that change should
|
|
16
|
+
* trigger a state update in the current tab too. The behaviour of this may
|
|
17
|
+
* be browser dependant.
|
|
18
|
+
*/
|
|
19
|
+
export function useStorage(storage, key, initial) {
|
|
20
|
+
var stored = storage.getItem(key);
|
|
21
|
+
var value = stored === null ? initial : JSON.parse(stored);
|
|
22
|
+
var _a = useState(value), state = _a[0], setState = _a[1];
|
|
23
|
+
useEffect(function () {
|
|
24
|
+
if (state === undefined) {
|
|
25
|
+
storage.removeItem(key);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
storage.setItem(key, JSON.stringify(state));
|
|
29
|
+
}
|
|
30
|
+
}, [state]);
|
|
31
|
+
useEffect(function () {
|
|
32
|
+
var listener = function (event) {
|
|
33
|
+
if (event.storageArea !== storage) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (event.key === null) {
|
|
37
|
+
setState(initial);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (event.key === key && event.newValue !== event.oldValue && event.newValue !== state) {
|
|
41
|
+
setState(event.newValue !== null ? JSON.parse(event.newValue) : null);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
addEventListener("storage", listener);
|
|
45
|
+
return function () { return removeEventListener("storage", listener); };
|
|
46
|
+
}, [storage]);
|
|
47
|
+
return [state, setState];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* A hook for storing react state in `localStorage`.
|
|
51
|
+
*
|
|
52
|
+
* @see useStorage
|
|
53
|
+
*/
|
|
54
|
+
export function useLocalStorage(key, initial) {
|
|
55
|
+
return useStorage(localStorage, key, initial);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* A hook for storing react state in `sessionStorage`.
|
|
59
|
+
*
|
|
60
|
+
* @see useStorage
|
|
61
|
+
*/
|
|
62
|
+
export function useSessionStorage(key, initial) {
|
|
63
|
+
return useStorage(sessionStorage, key, initial);
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=useStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStorage.js","sourceRoot":"","sources":["../../../src/hooks/useStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,UAAU,CACxB,OAAgB,EAChB,GAAW,EACX,OAAU;IAEV,IAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,IAAM,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvD,IAAA,KAAoB,QAAQ,CAAC,KAAK,CAAC,EAAlC,KAAK,QAAA,EAAE,QAAQ,QAAmB,CAAC;IAE1C,SAAS,CAAC;QACR,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,SAAS,CAAC;QACR,IAAM,QAAQ,GAAG,UAAC,KAAmB;YACnC,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAClB,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACvF,QAAQ,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxE,CAAC;QACH,CAAC,CAAC;QAEF,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAEtC,OAAO,cAAM,OAAA,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAxC,CAAwC,CAAC;IACxD,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAI,GAAW,EAAE,OAAU;IACxD,OAAO,UAAU,CAAC,YAAY,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAI,GAAW,EAAE,OAAU;IAC1D,OAAO,UAAU,CAAC,cAAc,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC"}
|
package/dist/types/api.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OpenAPI } from "openapi-types";
|
|
2
2
|
import { PageContribComponent } from "./types";
|
|
3
|
+
import { User } from "./contexts/UserContext";
|
|
3
4
|
export declare const BODY_APPLICATION_TYPES: readonly ["application/json", "multipart/form-data"];
|
|
4
5
|
export type BodyApplicationType = (typeof BODY_APPLICATION_TYPES)[number];
|
|
5
6
|
export interface Request extends OpenAPI.Request {
|
|
@@ -34,6 +35,6 @@ export declare class ApiClient {
|
|
|
34
35
|
readonly contrib: Record<string, Record<string, ApiOperation>>;
|
|
35
36
|
static load(source: string | URL, server?: string | URL): Promise<ApiClient>;
|
|
36
37
|
constructor(document: OpenAPI.Document, server?: string | URL);
|
|
37
|
-
|
|
38
|
+
getAuthenticatedUser(): Promise<User | null>;
|
|
38
39
|
findContrib(prefix: string): ApiOperation[];
|
|
39
40
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
interface User {
|
|
2
|
+
export interface User {
|
|
3
3
|
id: string;
|
|
4
4
|
email: string;
|
|
5
5
|
is_superuser: boolean;
|
|
@@ -9,7 +9,7 @@ interface User {
|
|
|
9
9
|
permissions: string[];
|
|
10
10
|
}
|
|
11
11
|
interface UserContext {
|
|
12
|
-
user: User | null;
|
|
12
|
+
user: User | null | undefined;
|
|
13
13
|
login: (username: string, password: string) => Promise<User | null>;
|
|
14
14
|
logout: () => Promise<void>;
|
|
15
15
|
changePassword: (oldPassword: string, newPassword1: string, newPassword2: string) => Promise<void>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* The `useStorage` hook is a generic hook for reactively storing state in a
|
|
4
|
+
* similar fashion to reacts usual {@link useState} hook. There is however some
|
|
5
|
+
* caveats which are good to keep in mind:
|
|
6
|
+
* - Any value of type `T` needs to be JSON (de-)serializeable. That means
|
|
7
|
+
* storing certain non-serializeable values can result in unexpected
|
|
8
|
+
* behavior, for example storing `Date` objects will stringify them.
|
|
9
|
+
* - Setting the value to `undefined` is equivalent to deleting the storage
|
|
10
|
+
* entry, not storing an `undefined` value. The reasoning behind this is
|
|
11
|
+
* that because JSON doesn't support `undefined` it should instead indicate
|
|
12
|
+
* an `undefined` value.
|
|
13
|
+
* - The hook is designed to listen to the global `storage` event which
|
|
14
|
+
* should make state changes propagate within the same context. If the
|
|
15
|
+
* storage is for example modified from another tab that change should
|
|
16
|
+
* trigger a state update in the current tab too. The behaviour of this may
|
|
17
|
+
* be browser dependant.
|
|
18
|
+
*/
|
|
19
|
+
export declare function useStorage<T>(storage: Storage, key: string, initial: T): [T, React.Dispatch<React.SetStateAction<T>>];
|
|
20
|
+
/**
|
|
21
|
+
* A hook for storing react state in `localStorage`.
|
|
22
|
+
*
|
|
23
|
+
* @see useStorage
|
|
24
|
+
*/
|
|
25
|
+
export declare function useLocalStorage<T>(key: string, initial: T): [T, import("react").Dispatch<import("react").SetStateAction<T>>];
|
|
26
|
+
/**
|
|
27
|
+
* A hook for storing react state in `sessionStorage`.
|
|
28
|
+
*
|
|
29
|
+
* @see useStorage
|
|
30
|
+
*/
|
|
31
|
+
export declare function useSessionStorage<T>(key: string, initial: T): [T, import("react").Dispatch<import("react").SetStateAction<T>>];
|
package/package.json
CHANGED
package/src/api.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { OpenAPI } from "openapi-types";
|
|
|
3
3
|
|
|
4
4
|
import { PageContribComponent } from "./types";
|
|
5
5
|
import { getCookie } from "./util/get_cookie";
|
|
6
|
+
import { User } from "./contexts/UserContext";
|
|
6
7
|
|
|
7
8
|
export const BODY_APPLICATION_TYPES = ["application/json", "multipart/form-data"] as const;
|
|
8
9
|
export type BodyApplicationType = (typeof BODY_APPLICATION_TYPES)[number];
|
|
@@ -283,12 +284,12 @@ export class ApiClient {
|
|
|
283
284
|
}
|
|
284
285
|
}
|
|
285
286
|
|
|
286
|
-
async
|
|
287
|
+
async getAuthenticatedUser() {
|
|
287
288
|
try {
|
|
288
289
|
const response = await this.operations["bananas.me:list"].call();
|
|
289
|
-
return response.ok;
|
|
290
|
+
return response.ok ? (response.json() as Promise<User>) : null;
|
|
290
291
|
} catch {
|
|
291
|
-
return
|
|
292
|
+
return null;
|
|
292
293
|
}
|
|
293
294
|
}
|
|
294
295
|
|
|
@@ -6,7 +6,7 @@ import Divider from "@mui/material/Divider";
|
|
|
6
6
|
import Drawer from "@mui/material/Drawer";
|
|
7
7
|
import { CSSObject, Theme, useTheme } from "@mui/material/styles";
|
|
8
8
|
|
|
9
|
-
import useLocalStorage from "../hooks/
|
|
9
|
+
import { useLocalStorage } from "../hooks/useStorage";
|
|
10
10
|
import { LogoType, NavigationOverrides } from "../types";
|
|
11
11
|
import Branding from "./Branding";
|
|
12
12
|
import Hamburger from "./Hamburger";
|
package/src/components/User.tsx
CHANGED
|
@@ -59,7 +59,7 @@ const User: React.FC<UserProps> = ({ classes, open, icon }) => {
|
|
|
59
59
|
[routes],
|
|
60
60
|
);
|
|
61
61
|
|
|
62
|
-
return user
|
|
62
|
+
return user != null && route !== undefined ? (
|
|
63
63
|
<List sx={{ paddingTop: 0, paddingBottom: 0 }}>
|
|
64
64
|
<NavBarItem
|
|
65
65
|
route={route}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { useSessionStorage } from "../hooks/useStorage";
|
|
4
4
|
import { useApi } from "./ApiContext";
|
|
5
5
|
|
|
6
6
|
export function interpolateString(
|
|
@@ -25,7 +25,7 @@ export const useI18n = () => React.useContext(I18nContext);
|
|
|
25
25
|
|
|
26
26
|
export const I18nContextProvider: React.FC<React.PropsWithChildren> = ({ children }) => {
|
|
27
27
|
const api = useApi();
|
|
28
|
-
const [i18n, setI18n] =
|
|
28
|
+
const [i18n, setI18n] = useSessionStorage<Record<string, string> | undefined>("i18n", undefined);
|
|
29
29
|
|
|
30
30
|
React.useEffect(() => {
|
|
31
31
|
if (api && i18n === undefined) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { useSessionStorage } from "../hooks/useStorage";
|
|
4
4
|
import { useApi } from "./ApiContext";
|
|
5
5
|
|
|
6
|
-
interface User {
|
|
6
|
+
export interface User {
|
|
7
7
|
id: string;
|
|
8
8
|
email: string;
|
|
9
9
|
is_superuser: boolean;
|
|
@@ -14,7 +14,7 @@ interface User {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
interface UserContext {
|
|
17
|
-
user: User | null;
|
|
17
|
+
user: User | null | undefined;
|
|
18
18
|
login: (username: string, password: string) => Promise<User | null>;
|
|
19
19
|
logout: () => Promise<void>;
|
|
20
20
|
changePassword: (
|
|
@@ -29,14 +29,12 @@ export const useUser = () => React.useContext(UserContext);
|
|
|
29
29
|
|
|
30
30
|
export const UserContextProvider: React.FC<React.PropsWithChildren> = ({ children }) => {
|
|
31
31
|
const api = useApi();
|
|
32
|
-
const [user, setUser] =
|
|
32
|
+
const [user, setUser] = useSessionStorage<User | null | undefined>("user", undefined);
|
|
33
33
|
|
|
34
34
|
React.useEffect(() => {
|
|
35
|
-
if (api !== undefined) {
|
|
36
|
-
api.
|
|
37
|
-
|
|
38
|
-
setUser(null);
|
|
39
|
-
}
|
|
35
|
+
if (api !== undefined && user === undefined) {
|
|
36
|
+
api.getAuthenticatedUser().then((u) => {
|
|
37
|
+
setUser(u);
|
|
40
38
|
});
|
|
41
39
|
}
|
|
42
40
|
}, [user, api]);
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The `useStorage` hook is a generic hook for reactively storing state in a
|
|
5
|
+
* similar fashion to reacts usual {@link useState} hook. There is however some
|
|
6
|
+
* caveats which are good to keep in mind:
|
|
7
|
+
* - Any value of type `T` needs to be JSON (de-)serializeable. That means
|
|
8
|
+
* storing certain non-serializeable values can result in unexpected
|
|
9
|
+
* behavior, for example storing `Date` objects will stringify them.
|
|
10
|
+
* - Setting the value to `undefined` is equivalent to deleting the storage
|
|
11
|
+
* entry, not storing an `undefined` value. The reasoning behind this is
|
|
12
|
+
* that because JSON doesn't support `undefined` it should instead indicate
|
|
13
|
+
* an `undefined` value.
|
|
14
|
+
* - The hook is designed to listen to the global `storage` event which
|
|
15
|
+
* should make state changes propagate within the same context. If the
|
|
16
|
+
* storage is for example modified from another tab that change should
|
|
17
|
+
* trigger a state update in the current tab too. The behaviour of this may
|
|
18
|
+
* be browser dependant.
|
|
19
|
+
*/
|
|
20
|
+
export function useStorage<T>(
|
|
21
|
+
storage: Storage,
|
|
22
|
+
key: string,
|
|
23
|
+
initial: T,
|
|
24
|
+
): [T, React.Dispatch<React.SetStateAction<T>>] {
|
|
25
|
+
const stored = storage.getItem(key);
|
|
26
|
+
const value = stored === null ? initial : JSON.parse(stored);
|
|
27
|
+
const [state, setState] = useState(value);
|
|
28
|
+
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
if (state === undefined) {
|
|
31
|
+
storage.removeItem(key);
|
|
32
|
+
} else {
|
|
33
|
+
storage.setItem(key, JSON.stringify(state));
|
|
34
|
+
}
|
|
35
|
+
}, [state]);
|
|
36
|
+
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
const listener = (event: StorageEvent) => {
|
|
39
|
+
if (event.storageArea !== storage) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (event.key === null) {
|
|
44
|
+
setState(initial);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (event.key === key && event.newValue !== event.oldValue && event.newValue !== state) {
|
|
49
|
+
setState(event.newValue !== null ? JSON.parse(event.newValue) : null);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
addEventListener("storage", listener);
|
|
54
|
+
|
|
55
|
+
return () => removeEventListener("storage", listener);
|
|
56
|
+
}, [storage]);
|
|
57
|
+
|
|
58
|
+
return [state, setState];
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* A hook for storing react state in `localStorage`.
|
|
63
|
+
*
|
|
64
|
+
* @see useStorage
|
|
65
|
+
*/
|
|
66
|
+
export function useLocalStorage<T>(key: string, initial: T) {
|
|
67
|
+
return useStorage(localStorage, key, initial);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* A hook for storing react state in `sessionStorage`.
|
|
72
|
+
*
|
|
73
|
+
* @see useStorage
|
|
74
|
+
*/
|
|
75
|
+
export function useSessionStorage<T>(key: string, initial: T) {
|
|
76
|
+
return useStorage(sessionStorage, key, initial);
|
|
77
|
+
}
|
|
@@ -1,48 +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
|
-
var react_1 = __importDefault(require("react"));
|
|
7
|
-
function useLocalStorage(key, defaultValue) {
|
|
8
|
-
var _a;
|
|
9
|
-
var _b = react_1.default.useState((_a = getState(key)) !== null && _a !== void 0 ? _a : defaultValue), state = _b[0], setState = _b[1];
|
|
10
|
-
var _c = react_1.default.useState(false), mounted = _c[0], setMounted = _c[1];
|
|
11
|
-
react_1.default.useEffect(function () {
|
|
12
|
-
if (mounted)
|
|
13
|
-
return;
|
|
14
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
15
|
-
if (localStorage) {
|
|
16
|
-
var value = getState(key);
|
|
17
|
-
if (value)
|
|
18
|
-
setState(value);
|
|
19
|
-
setMounted(true);
|
|
20
|
-
}
|
|
21
|
-
}, [key, mounted]);
|
|
22
|
-
react_1.default.useEffect(function () {
|
|
23
|
-
if (mounted)
|
|
24
|
-
setLocalState(key, state);
|
|
25
|
-
}, [state, key, mounted]);
|
|
26
|
-
return [state, setState];
|
|
27
|
-
}
|
|
28
|
-
exports.default = useLocalStorage;
|
|
29
|
-
function getState(key) {
|
|
30
|
-
return tryJSONParse(localStorage.getItem(buildStorageKey(key)));
|
|
31
|
-
}
|
|
32
|
-
function setLocalState(key, state) {
|
|
33
|
-
localStorage.setItem(buildStorageKey(key), JSON.stringify(state));
|
|
34
|
-
}
|
|
35
|
-
function buildStorageKey(key) {
|
|
36
|
-
return "__useLocalStorage_".concat(key);
|
|
37
|
-
}
|
|
38
|
-
function tryJSONParse(json) {
|
|
39
|
-
if (!json)
|
|
40
|
-
return null;
|
|
41
|
-
try {
|
|
42
|
-
return JSON.parse(json);
|
|
43
|
-
}
|
|
44
|
-
catch (_a) {
|
|
45
|
-
return null;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=useLocalStorage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useLocalStorage.js","sourceRoot":"","sources":["../../../src/hooks/useLocalStorage.ts"],"names":[],"mappings":";;;;;AAAA,gDAA0B;AAE1B,SAAwB,eAAe,CAAI,GAAW,EAAE,YAAe;;IAC/D,IAAA,KAAoB,eAAK,CAAC,QAAQ,CAAI,MAAA,QAAQ,CAAC,GAAG,CAAC,mCAAI,YAAY,CAAC,EAAnE,KAAK,QAAA,EAAE,QAAQ,QAAoD,CAAC;IACrE,IAAA,KAAwB,eAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAA5C,OAAO,QAAA,EAAE,UAAU,QAAyB,CAAC;IACpD,eAAK,CAAC,SAAS,CAAC;QACd,IAAI,OAAO;YAAE,OAAO;QACpB,uEAAuE;QACvE,IAAI,YAAY,EAAE,CAAC;YACjB,IAAM,KAAK,GAAG,QAAQ,CAAI,GAAG,CAAC,CAAC;YAC/B,IAAI,KAAK;gBAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAEnB,eAAK,CAAC,SAAS,CAAC;QACd,IAAI,OAAO;YAAE,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1B,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAU,CAAC;AACpC,CAAC;AAlBD,kCAkBC;AAED,SAAS,QAAQ,CAAI,GAAW;IAC9B,OAAO,YAAY,CAAI,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,aAAa,CAAI,GAAW,EAAE,KAAQ;IAC7C,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,4BAAqB,GAAG,CAAE,CAAC;AACpC,CAAC;AAED,SAAS,YAAY,CAAI,IAA+B;IACtD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;IAC/B,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
export default function useLocalStorage(key, defaultValue) {
|
|
3
|
-
var _a;
|
|
4
|
-
var _b = React.useState((_a = getState(key)) !== null && _a !== void 0 ? _a : defaultValue), state = _b[0], setState = _b[1];
|
|
5
|
-
var _c = React.useState(false), mounted = _c[0], setMounted = _c[1];
|
|
6
|
-
React.useEffect(function () {
|
|
7
|
-
if (mounted)
|
|
8
|
-
return;
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
10
|
-
if (localStorage) {
|
|
11
|
-
var value = getState(key);
|
|
12
|
-
if (value)
|
|
13
|
-
setState(value);
|
|
14
|
-
setMounted(true);
|
|
15
|
-
}
|
|
16
|
-
}, [key, mounted]);
|
|
17
|
-
React.useEffect(function () {
|
|
18
|
-
if (mounted)
|
|
19
|
-
setLocalState(key, state);
|
|
20
|
-
}, [state, key, mounted]);
|
|
21
|
-
return [state, setState];
|
|
22
|
-
}
|
|
23
|
-
function getState(key) {
|
|
24
|
-
return tryJSONParse(localStorage.getItem(buildStorageKey(key)));
|
|
25
|
-
}
|
|
26
|
-
function setLocalState(key, state) {
|
|
27
|
-
localStorage.setItem(buildStorageKey(key), JSON.stringify(state));
|
|
28
|
-
}
|
|
29
|
-
function buildStorageKey(key) {
|
|
30
|
-
return "__useLocalStorage_".concat(key);
|
|
31
|
-
}
|
|
32
|
-
function tryJSONParse(json) {
|
|
33
|
-
if (!json)
|
|
34
|
-
return null;
|
|
35
|
-
try {
|
|
36
|
-
return JSON.parse(json);
|
|
37
|
-
}
|
|
38
|
-
catch (_a) {
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=useLocalStorage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useLocalStorage.js","sourceRoot":"","sources":["../../../src/hooks/useLocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,OAAO,UAAU,eAAe,CAAI,GAAW,EAAE,YAAe;;IAC/D,IAAA,KAAoB,KAAK,CAAC,QAAQ,CAAI,MAAA,QAAQ,CAAC,GAAG,CAAC,mCAAI,YAAY,CAAC,EAAnE,KAAK,QAAA,EAAE,QAAQ,QAAoD,CAAC;IACrE,IAAA,KAAwB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAA5C,OAAO,QAAA,EAAE,UAAU,QAAyB,CAAC;IACpD,KAAK,CAAC,SAAS,CAAC;QACd,IAAI,OAAO;YAAE,OAAO;QACpB,uEAAuE;QACvE,IAAI,YAAY,EAAE,CAAC;YACjB,IAAM,KAAK,GAAG,QAAQ,CAAI,GAAG,CAAC,CAAC;YAC/B,IAAI,KAAK;gBAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAEnB,KAAK,CAAC,SAAS,CAAC;QACd,IAAI,OAAO;YAAE,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1B,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAU,CAAC;AACpC,CAAC;AAED,SAAS,QAAQ,CAAI,GAAW;IAC9B,OAAO,YAAY,CAAI,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,aAAa,CAAI,GAAW,EAAE,KAAQ;IAC7C,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,4BAAqB,GAAG,CAAE,CAAC;AACpC,CAAC;AAED,SAAS,YAAY,CAAI,IAA+B;IACtD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;IAC/B,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
|
|
3
|
-
export default function useLocalStorage<T>(key: string, defaultValue: T) {
|
|
4
|
-
const [state, setState] = React.useState<T>(getState(key) ?? defaultValue);
|
|
5
|
-
const [mounted, setMounted] = React.useState(false);
|
|
6
|
-
React.useEffect(() => {
|
|
7
|
-
if (mounted) return;
|
|
8
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
9
|
-
if (localStorage) {
|
|
10
|
-
const value = getState<T>(key);
|
|
11
|
-
if (value) setState(value);
|
|
12
|
-
setMounted(true);
|
|
13
|
-
}
|
|
14
|
-
}, [key, mounted]);
|
|
15
|
-
|
|
16
|
-
React.useEffect(() => {
|
|
17
|
-
if (mounted) setLocalState(key, state);
|
|
18
|
-
}, [state, key, mounted]);
|
|
19
|
-
|
|
20
|
-
return [state, setState] as const;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function getState<T>(key: string): T | null {
|
|
24
|
-
return tryJSONParse<T>(localStorage.getItem(buildStorageKey(key)));
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function setLocalState<T>(key: string, state: T) {
|
|
28
|
-
localStorage.setItem(buildStorageKey(key), JSON.stringify(state));
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function buildStorageKey(key: string) {
|
|
32
|
-
return `__useLocalStorage_${key}`;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function tryJSONParse<T>(json: string | null | undefined): T | null {
|
|
36
|
-
if (!json) return null;
|
|
37
|
-
try {
|
|
38
|
-
return JSON.parse(json) as T;
|
|
39
|
-
} catch {
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
}
|