nuudel-core 0.1.134 → 0.1.137

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.
@@ -31,6 +31,7 @@ import MultiSelect from './MultiSelect';
31
31
  import ReCaptcha from './ReCaptcha';
32
32
  import ColorPicker from './ColorPicker';
33
33
  import useLongPress from './useLongPress';
34
+ import useStateIfMounted from './useStateIfMounted';
34
35
  import Message, { SNACKBAR_STATE_QUERY, TOGGLE_SNACKBAR_MUTATION } from './Material/SuccessMessage';
35
- export { Message, SNACKBAR_STATE_QUERY, TOGGLE_SNACKBAR_MUTATION, Text, H1, Label, TextField, Button, Spinner, Container, MessageBox, NoSsr, MessageBar, Checkbox, Choices, Drawer, Link, Menu, Rating, Select, Slider, Switch, Tooltip, Grid, IFrame, Divider, Box, TagsInput, Dialog, ColorBox, Stepper, Image, NumberFormatInput, Upload, MultiSelect, ReCaptcha, ColorPicker, useLongPress, };
36
+ export { Message, SNACKBAR_STATE_QUERY, TOGGLE_SNACKBAR_MUTATION, Text, H1, Label, TextField, Button, Spinner, Container, MessageBox, NoSsr, MessageBar, Checkbox, Choices, Drawer, Link, Menu, Rating, Select, Slider, Switch, Tooltip, Grid, IFrame, Divider, Box, TagsInput, Dialog, ColorBox, Stepper, Image, NumberFormatInput, Upload, MultiSelect, ReCaptcha, ColorPicker, useLongPress, useStateIfMounted, };
36
37
  export type { MessageBarType, INotificationMessages };
@@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.useLongPress = exports.ColorPicker = exports.ReCaptcha = exports.MultiSelect = exports.Upload = exports.NumberFormatInput = exports.Image = exports.Stepper = exports.ColorBox = exports.Dialog = exports.TagsInput = exports.Box = exports.Divider = exports.IFrame = exports.Grid = exports.Tooltip = exports.Switch = exports.Slider = exports.Select = exports.Rating = exports.Menu = exports.Link = exports.Drawer = exports.Choices = exports.Checkbox = exports.MessageBar = exports.NoSsr = exports.MessageBox = exports.Container = exports.Spinner = exports.Button = exports.TextField = exports.Label = exports.H1 = exports.Text = exports.TOGGLE_SNACKBAR_MUTATION = exports.SNACKBAR_STATE_QUERY = exports.Message = void 0;
25
+ exports.useStateIfMounted = exports.useLongPress = exports.ColorPicker = exports.ReCaptcha = exports.MultiSelect = exports.Upload = exports.NumberFormatInput = exports.Image = exports.Stepper = exports.ColorBox = exports.Dialog = exports.TagsInput = exports.Box = exports.Divider = exports.IFrame = exports.Grid = exports.Tooltip = exports.Switch = exports.Slider = exports.Select = exports.Rating = exports.Menu = exports.Link = exports.Drawer = exports.Choices = exports.Checkbox = exports.MessageBar = exports.NoSsr = exports.MessageBox = exports.Container = exports.Spinner = exports.Button = exports.TextField = exports.Label = exports.H1 = exports.Text = exports.TOGGLE_SNACKBAR_MUTATION = exports.SNACKBAR_STATE_QUERY = exports.Message = void 0;
26
26
  const Text_1 = __importStar(require("./Text"));
27
27
  exports.Text = Text_1.default;
28
28
  Object.defineProperty(exports, "H1", { enumerable: true, get: function () { return Text_1.H1; } });
@@ -91,8 +91,10 @@ const ColorPicker_1 = __importDefault(require("./ColorPicker"));
91
91
  exports.ColorPicker = ColorPicker_1.default;
92
92
  const useLongPress_1 = __importDefault(require("./useLongPress"));
93
93
  exports.useLongPress = useLongPress_1.default;
94
+ const useStateIfMounted_1 = __importDefault(require("./useStateIfMounted"));
95
+ exports.useStateIfMounted = useStateIfMounted_1.default;
94
96
  const SuccessMessage_1 = __importStar(require("./Material/SuccessMessage"));
95
97
  exports.Message = SuccessMessage_1.default;
96
98
  Object.defineProperty(exports, "SNACKBAR_STATE_QUERY", { enumerable: true, get: function () { return SuccessMessage_1.SNACKBAR_STATE_QUERY; } });
97
99
  Object.defineProperty(exports, "TOGGLE_SNACKBAR_MUTATION", { enumerable: true, get: function () { return SuccessMessage_1.TOGGLE_SNACKBAR_MUTATION; } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQTZDdkMsZUE3Q0ssY0FBSSxDQTZDTDtBQUNKLG1GQTlDYSxTQUFFLE9BOENiO0FBQ0Ysc0ZBL0NpQixZQUFLLE9BK0NqQjtBQTlDUCw0REFBb0M7QUErQ2xDLG9CQS9DSyxtQkFBUyxDQStDTDtBQTlDWCxzREFBOEI7QUErQzVCLGlCQS9DSyxnQkFBTSxDQStDTDtBQTlDUix3REFBZ0M7QUErQzlCLGtCQS9DSyxpQkFBTyxDQStDTDtBQTlDVCw0REFBb0M7QUErQ2xDLG9CQS9DSyxtQkFBUyxDQStDTDtBQTlDWCw4REFBc0M7QUErQ3BDLHFCQS9DSyxvQkFBVSxDQStDTDtBQTlDWixvREFBNEI7QUErQzFCLGdCQS9DSyxlQUFLLENBK0NMO0FBOUNQLDhEQUdzQjtBQTRDcEIscUJBL0NLLG9CQUFVLENBK0NMO0FBM0NaLDBEQUFrQztBQTRDaEMsbUJBNUNLLGtCQUFRLENBNENMO0FBM0NWLHdEQUFnQztBQTRDOUIsa0JBNUNLLGlCQUFPLENBNENMO0FBM0NULHNEQUE4QjtBQTRDNUIsaUJBNUNLLGdCQUFNLENBNENMO0FBM0NSLGtEQUEwQjtBQTRDeEIsZUE1Q0ssY0FBSSxDQTRDTDtBQTNDTixrREFBMEI7QUE0Q3hCLGVBNUNLLGNBQUksQ0E0Q0w7QUEzQ04sc0RBQThCO0FBNEM1QixpQkE1Q0ssZ0JBQU0sQ0E0Q0w7QUEzQ1Isc0RBQThCO0FBNEM1QixpQkE1Q0ssZ0JBQU0sQ0E0Q0w7QUEzQ1Isc0RBQThCO0FBNEM1QixpQkE1Q0ssZ0JBQU0sQ0E0Q0w7QUEzQ1Isc0RBQThCO0FBNEM1QixpQkE1Q0ssZ0JBQU0sQ0E0Q0w7QUEzQ1Isd0RBQWdDO0FBNEM5QixrQkE1Q0ssaUJBQU8sQ0E0Q0w7QUEzQ1Qsa0RBQTBCO0FBNEN4QixlQTVDSyxjQUFJLENBNENMO0FBM0NOLHNEQUE4QjtBQTRDNUIsaUJBNUNLLGdCQUFNLENBNENMO0FBM0NSLHdEQUFnQztBQTRDOUIsa0JBNUNLLGlCQUFPLENBNENMO0FBM0NULGdEQUF3QjtBQTRDdEIsY0E1Q0ssYUFBRyxDQTRDTDtBQTNDTCwyQ0FBd0M7QUE0Q3RDLDBGQTVDTyxxQkFBUyxPQTRDUDtBQTNDWCxzREFBOEI7QUE0QzVCLGlCQTVDSyxnQkFBTSxDQTRDTDtBQTNDUiwwREFBa0M7QUE0Q2hDLG1CQTVDSyxrQkFBUSxDQTRDTDtBQTNDVix3REFBZ0M7QUE0QzlCLGtCQTVDSyxpQkFBTyxDQTRDTDtBQTNDVCxvREFBNEI7QUE0QzFCLGdCQTVDSyxlQUFLLENBNENMO0FBM0NQLDRFQUFvRDtBQTRDbEQsNEJBNUNLLDJCQUFpQixDQTRDTDtBQTNDbkIsc0RBQThCO0FBNEM1QixpQkE1Q0ssZ0JBQU0sQ0E0Q0w7QUEzQ1IsZ0VBQXdDO0FBNEN0QyxzQkE1Q0sscUJBQVcsQ0E0Q0w7QUEzQ2IsNERBQW9DO0FBNENsQyxvQkE1Q0ssbUJBQVMsQ0E0Q0w7QUEzQ1gsZ0VBQXdDO0FBNEN0QyxzQkE1Q0sscUJBQVcsQ0E0Q0w7QUEzQ2Isa0VBQTBDO0FBNEN4Qyx1QkE1Q0ssc0JBQVksQ0E0Q0w7QUEzQ2QsNEVBR21DO0FBR2pDLGtCQU5LLHdCQUFPLENBTUw7QUFDUCxxR0FOQSxxQ0FBb0IsT0FNQTtBQUNwQix5R0FOQSx5Q0FBd0IsT0FNQSJ9
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQThDdkMsZUE5Q0ssY0FBSSxDQThDTDtBQUNKLG1GQS9DYSxTQUFFLE9BK0NiO0FBQ0Ysc0ZBaERpQixZQUFLLE9BZ0RqQjtBQS9DUCw0REFBb0M7QUFnRGxDLG9CQWhESyxtQkFBUyxDQWdETDtBQS9DWCxzREFBOEI7QUFnRDVCLGlCQWhESyxnQkFBTSxDQWdETDtBQS9DUix3REFBZ0M7QUFnRDlCLGtCQWhESyxpQkFBTyxDQWdETDtBQS9DVCw0REFBb0M7QUFnRGxDLG9CQWhESyxtQkFBUyxDQWdETDtBQS9DWCw4REFBc0M7QUFnRHBDLHFCQWhESyxvQkFBVSxDQWdETDtBQS9DWixvREFBNEI7QUFnRDFCLGdCQWhESyxlQUFLLENBZ0RMO0FBL0NQLDhEQUdzQjtBQTZDcEIscUJBaERLLG9CQUFVLENBZ0RMO0FBNUNaLDBEQUFrQztBQTZDaEMsbUJBN0NLLGtCQUFRLENBNkNMO0FBNUNWLHdEQUFnQztBQTZDOUIsa0JBN0NLLGlCQUFPLENBNkNMO0FBNUNULHNEQUE4QjtBQTZDNUIsaUJBN0NLLGdCQUFNLENBNkNMO0FBNUNSLGtEQUEwQjtBQTZDeEIsZUE3Q0ssY0FBSSxDQTZDTDtBQTVDTixrREFBMEI7QUE2Q3hCLGVBN0NLLGNBQUksQ0E2Q0w7QUE1Q04sc0RBQThCO0FBNkM1QixpQkE3Q0ssZ0JBQU0sQ0E2Q0w7QUE1Q1Isc0RBQThCO0FBNkM1QixpQkE3Q0ssZ0JBQU0sQ0E2Q0w7QUE1Q1Isc0RBQThCO0FBNkM1QixpQkE3Q0ssZ0JBQU0sQ0E2Q0w7QUE1Q1Isc0RBQThCO0FBNkM1QixpQkE3Q0ssZ0JBQU0sQ0E2Q0w7QUE1Q1Isd0RBQWdDO0FBNkM5QixrQkE3Q0ssaUJBQU8sQ0E2Q0w7QUE1Q1Qsa0RBQTBCO0FBNkN4QixlQTdDSyxjQUFJLENBNkNMO0FBNUNOLHNEQUE4QjtBQTZDNUIsaUJBN0NLLGdCQUFNLENBNkNMO0FBNUNSLHdEQUFnQztBQTZDOUIsa0JBN0NLLGlCQUFPLENBNkNMO0FBNUNULGdEQUF3QjtBQTZDdEIsY0E3Q0ssYUFBRyxDQTZDTDtBQTVDTCwyQ0FBd0M7QUE2Q3RDLDBGQTdDTyxxQkFBUyxPQTZDUDtBQTVDWCxzREFBOEI7QUE2QzVCLGlCQTdDSyxnQkFBTSxDQTZDTDtBQTVDUiwwREFBa0M7QUE2Q2hDLG1CQTdDSyxrQkFBUSxDQTZDTDtBQTVDVix3REFBZ0M7QUE2QzlCLGtCQTdDSyxpQkFBTyxDQTZDTDtBQTVDVCxvREFBNEI7QUE2QzFCLGdCQTdDSyxlQUFLLENBNkNMO0FBNUNQLDRFQUFvRDtBQTZDbEQsNEJBN0NLLDJCQUFpQixDQTZDTDtBQTVDbkIsc0RBQThCO0FBNkM1QixpQkE3Q0ssZ0JBQU0sQ0E2Q0w7QUE1Q1IsZ0VBQXdDO0FBNkN0QyxzQkE3Q0sscUJBQVcsQ0E2Q0w7QUE1Q2IsNERBQW9DO0FBNkNsQyxvQkE3Q0ssbUJBQVMsQ0E2Q0w7QUE1Q1gsZ0VBQXdDO0FBNkN0QyxzQkE3Q0sscUJBQVcsQ0E2Q0w7QUE1Q2Isa0VBQTBDO0FBNkN4Qyx1QkE3Q0ssc0JBQVksQ0E2Q0w7QUE1Q2QsNEVBQW9EO0FBNkNsRCw0QkE3Q0ssMkJBQWlCLENBNkNMO0FBNUNuQiw0RUFHbUM7QUFHakMsa0JBTkssd0JBQU8sQ0FNTDtBQUNQLHFHQU5BLHFDQUFvQixPQU1BO0FBQ3BCLHlHQU5BLHlDQUF3QixPQU1BIn0=
@@ -0,0 +1 @@
1
+ export default function useStateIfMounted(initialValue: any): any[];
@@ -0,0 +1,19 @@
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
+ const useIsComponentMounted_1 = __importDefault(require("./useIsComponentMounted"));
7
+ const react_1 = require("react");
8
+ function useStateIfMounted(initialValue) {
9
+ const isComponentMounted = (0, useIsComponentMounted_1.default)();
10
+ const [state, setState] = (0, react_1.useState)(initialValue);
11
+ const newSetState = (0, react_1.useCallback)((value) => {
12
+ if (isComponentMounted.current) {
13
+ setState(value);
14
+ }
15
+ }, [isComponentMounted]);
16
+ return [state, newSetState];
17
+ }
18
+ exports.default = useStateIfMounted;
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdXNlU3RhdGVJZk1vdW50ZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvRkFBNEQ7QUFDNUQsaUNBQThDO0FBYTlDLFNBQXdCLGlCQUFpQixDQUFDLFlBQVk7SUFDcEQsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLCtCQUFxQixHQUFFLENBQUM7SUFDbkQsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFBLGdCQUFRLEVBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsTUFBTSxXQUFXLEdBQUcsSUFBQSxtQkFBVyxFQUM3QixDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ1IsSUFBSSxrQkFBa0IsQ0FBQyxPQUFPLEVBQUU7WUFDOUIsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQyxFQUNELENBQUMsa0JBQWtCLENBQUMsQ0FDckIsQ0FBQztJQUNGLE9BQU8sQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQVpELG9DQVlDIn0=
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export default function useIsComponentMounted(): import("react").MutableRefObject<boolean>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const react_1 = require("react");
4
+ function useIsComponentMounted() {
5
+ const isMounted = (0, react_1.useRef)(false);
6
+ (0, react_1.useEffect)(() => {
7
+ isMounted.current = true;
8
+ return () => {
9
+ isMounted.current = false;
10
+ };
11
+ }, []);
12
+ return isMounted;
13
+ }
14
+ exports.default = useIsComponentMounted;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlSXNDb21wb25lbnRNb3VudGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3VzZVN0YXRlSWZNb3VudGVkL3VzZUlzQ29tcG9uZW50TW91bnRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGlDQUEwQztBQUUxQyxTQUF3QixxQkFBcUI7SUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBQSxjQUFNLEVBQVUsS0FBSyxDQUFDLENBQUM7SUFDekMsSUFBQSxpQkFBUyxFQUFDLEdBQUcsRUFBRTtRQUNiLFNBQVMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLE9BQU8sR0FBRyxFQUFFO1lBQ1YsU0FBUyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDNUIsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1AsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQVRELHdDQVNDIn0=
@@ -12,18 +12,46 @@ const fetcher_1 = require("../../services/fetcher");
12
12
  const Query_1 = require("./Query");
13
13
  const nuudel_utils_1 = require("nuudel-utils");
14
14
  const swr_1 = __importDefault(require("swr"));
15
+ const router_1 = __importDefault(require("next/router"));
16
+ function getRedirectTo() {
17
+ if (typeof window !== 'undefined' && (window === null || window === void 0 ? void 0 : window.location)) {
18
+ return window.location;
19
+ }
20
+ return {};
21
+ }
15
22
  var initialState = {};
16
23
  exports.UserContext = (0, react_1.createContext)(initialState);
17
24
  exports.UserContext.displayName = 'userContext';
18
25
  const withUser = (WrappedComponent) => (props) => {
19
- const token = UI_1.UI.getItem(nuudel_utils_1.USER_TOKEN);
26
+ let token = UI_1.UI.getItem(nuudel_utils_1.USER_TOKEN);
20
27
  const userId = UI_1.UI.getItem(nuudel_utils_1.USER_ID);
21
- const username = UI_1.UI.getItem(nuudel_utils_1.USER_KEY);
22
- const [state, dispatch] = (0, react_1.useReducer)(reducer_1.reducer, Object.assign(Object.assign({}, initialState), { _id: userId, email: (username === null || username === void 0 ? void 0 : username.includes('@')) ? username : null, username: !(username === null || username === void 0 ? void 0 : username.includes('@')) ? username : null }));
28
+ let cuser = null;
29
+ const obj = (0, nuudel_utils_1.tokenObj)(token);
30
+ if ((obj === null || obj === void 0 ? void 0 : obj._id) &&
31
+ userId === obj._id &&
32
+ (obj === null || obj === void 0 ? void 0 : obj.exp) > Math.ceil(Date.now() / 1000)) {
33
+ cuser = {
34
+ _id: obj._id,
35
+ username: obj.username,
36
+ email: obj.email,
37
+ };
38
+ }
39
+ const [state, dispatch] = (0, react_1.useReducer)(reducer_1.reducer, Object.assign(Object.assign({}, initialState), cuser));
23
40
  const { data: fetchedUser, error } = (0, swr_1.default)(!token || !!(state === null || state === void 0 ? void 0 : state.type) ? null : Query_1.currentUserQuery, fetcher_1.fetcher, {
24
41
  revalidateOnFocus: false,
25
42
  revalidateIfStale: false,
43
+ revalidateOnReconnect: false,
44
+ loadingTimeout: 10000,
45
+ focusThrottleInterval: 0,
46
+ dedupingInterval: 10000,
47
+ errorRetryInterval: 10000,
48
+ errorRetryCount: 1,
49
+ shouldRetryOnError: false,
26
50
  });
51
+ if (token && error && error.includes('not logged')) {
52
+ const redir = getRedirectTo();
53
+ router_1.default.replace(`/admin/login?r=${redir.pathname + encodeURIComponent(redir.search)}`, '/admin/login', { shallow: true });
54
+ }
27
55
  (0, react_1.useEffect)(() => {
28
56
  var _a;
29
57
  if ((_a = fetchedUser === null || fetchedUser === void 0 ? void 0 : fetchedUser.data) === null || _a === void 0 ? void 0 : _a.currentUser) {
@@ -36,4 +64,4 @@ exports.withUser = withUser;
36
64
  const useAuth = () => (0, react_1.useContext)(exports.UserContext);
37
65
  exports.useAuth = useAuth;
38
66
  exports.default = exports.withUser;
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2hvY3Mvd2l0aFVzZXIvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxpQ0FNZTtBQUNmLG9EQUFpRDtBQUNqRCx3Q0FBcUM7QUFDckMsb0RBQWlEO0FBRWpELG1DQUEyQztBQUMzQywrQ0FBNkQ7QUFDN0QsOENBQXlCO0FBV3pCLElBQUksWUFBWSxHQUFRLEVBQUUsQ0FBQztBQUdkLFFBQUEsV0FBVyxHQUFHLElBQUEscUJBQWEsRUFBQyxZQUFZLENBQUMsQ0FBQztBQUN2RCxtQkFBVyxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUM7QUFFakMsTUFBTSxRQUFRLEdBQ25CLENBQUMsZ0JBQXFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7SUFDeEQsTUFBTSxLQUFLLEdBQUcsT0FBRSxDQUFDLE9BQU8sQ0FBQyx5QkFBVSxDQUFDLENBQUM7SUFDckMsTUFBTSxNQUFNLEdBQUcsT0FBRSxDQUFDLE9BQU8sQ0FBQyxzQkFBTyxDQUFDLENBQUM7SUFDbkMsTUFBTSxRQUFRLEdBQUcsT0FBRSxDQUFDLE9BQU8sQ0FBQyx1QkFBUSxDQUFDLENBQUM7SUFDdEMsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFBLGtCQUFVLEVBQUMsaUJBQU8sa0NBQ3ZDLFlBQVksS0FDZixHQUFHLEVBQUUsTUFBTSxFQUNYLEtBQUssRUFBRSxDQUFBLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUNoRCxRQUFRLEVBQUUsQ0FBQyxDQUFBLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQ3BELENBQUM7SUFFSCxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFBLGFBQU0sRUFDekMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLElBQUksQ0FBQSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHdCQUFnQixFQUNqRCxpQkFBTyxFQUNQO1FBQ0UsaUJBQWlCLEVBQUUsS0FBSztRQUN4QixpQkFBaUIsRUFBRSxLQUFLO0tBQ3pCLENBQ0YsQ0FBQztJQUVGLElBQUEsaUJBQVMsRUFBQyxHQUFHLEVBQUU7O1FBQ2IsSUFBSSxNQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxJQUFJLDBDQUFFLFdBQVcsRUFBRTtZQUNsQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFjbEIsT0FBTyxDQUNMLHVCQUFDLG1CQUFXLENBQUMsUUFBUSxrQkFBQyxLQUFLLEVBQUUsS0FBSyxnQkFDaEMsdUJBQUMsZ0JBQWdCLG9CQUFLLEtBQUssSUFBRSxRQUFRLEVBQUUsUUFBUSxZQUFJLFlBQzlCLENBQ3hCLENBQUM7QUFDSixDQUFDLENBQUM7QUE1Q1MsUUFBQSxRQUFRLFlBNENqQjtBQUVHLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUEsa0JBQVUsRUFBQyxtQkFBVyxDQUFDLENBQUM7QUFBeEMsUUFBQSxPQUFPLFdBQWlDO0FBQ3JELGtCQUFlLGdCQUFRLENBQUMifQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2hvY3Mvd2l0aFVzZXIvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxpQ0FNZTtBQUNmLG9EQUFpRDtBQUNqRCx3Q0FBcUM7QUFDckMsb0RBQWlEO0FBRWpELG1DQUEyQztBQUMzQywrQ0FBNkQ7QUFDN0QsOENBQXlCO0FBRXpCLHlEQUFpQztBQUNqQyxTQUFTLGFBQWE7SUFDcEIsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEtBQUksTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFFBQVEsQ0FBQSxFQUFFO1FBQ3JELE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQztLQUN4QjtJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUdELElBQUksWUFBWSxHQUFRLEVBQUUsQ0FBQztBQUdkLFFBQUEsV0FBVyxHQUFHLElBQUEscUJBQWEsRUFBQyxZQUFZLENBQUMsQ0FBQztBQUN2RCxtQkFBVyxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUM7QUFFakMsTUFBTSxRQUFRLEdBQ25CLENBQUMsZ0JBQXFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7SUFDeEQsSUFBSSxLQUFLLEdBQUcsT0FBRSxDQUFDLE9BQU8sQ0FBQyx5QkFBVSxDQUFDLENBQUM7SUFDbkMsTUFBTSxNQUFNLEdBQUcsT0FBRSxDQUFDLE9BQU8sQ0FBQyxzQkFBTyxDQUFDLENBQUM7SUFDbkMsSUFBSSxLQUFLLEdBQVEsSUFBSSxDQUFDO0lBQ3RCLE1BQU0sR0FBRyxHQUFHLElBQUEsdUJBQVEsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixJQUNFLENBQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLEdBQUc7UUFDUixNQUFNLEtBQUssR0FBRyxDQUFDLEdBQUc7UUFDbEIsQ0FBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsR0FBRyxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUN2QztRQUNBLEtBQUssR0FBRztZQUNOLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRztZQUNaLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtZQUN0QixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7U0FFakIsQ0FBQztLQUNIO0lBRUQsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFBLGtCQUFVLEVBQUMsaUJBQU8sa0NBQ3ZDLFlBQVksR0FDWixLQUFLLEVBQ1IsQ0FBQztJQUVILE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUEsYUFBTSxFQUN6QyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxDQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsd0JBQWdCLEVBQ2pELGlCQUFPLEVBQ1A7UUFDRSxpQkFBaUIsRUFBRSxLQUFLO1FBQ3hCLGlCQUFpQixFQUFFLEtBQUs7UUFDeEIscUJBQXFCLEVBQUUsS0FBSztRQUM1QixjQUFjLEVBQUUsS0FBSztRQUNyQixxQkFBcUIsRUFBRSxDQUFDO1FBQ3hCLGdCQUFnQixFQUFFLEtBQUs7UUFDdkIsa0JBQWtCLEVBQUUsS0FBSztRQUN6QixlQUFlLEVBQUUsQ0FBQztRQUNsQixrQkFBa0IsRUFBRSxLQUFLO0tBQzFCLENBQ0YsQ0FBQztJQUVGLElBQUksS0FBSyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQ2xELE1BQU0sS0FBSyxHQUFRLGFBQWEsRUFBRSxDQUFDO1FBQ25DLGdCQUFNLENBQUMsT0FBTyxDQUNaLGtCQUFrQixLQUFLLENBQUMsUUFBUSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUNyRSxjQUFjLEVBQ2QsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQ2xCLENBQUM7S0FDSDtJQUVELElBQUEsaUJBQVMsRUFBQyxHQUFHLEVBQUU7O1FBQ2IsSUFBSSxNQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxJQUFJLDBDQUFFLFdBQVcsRUFBRTtZQUNsQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFFbEIsT0FBTyxDQUNMLHVCQUFDLG1CQUFXLENBQUMsUUFBUSxrQkFBQyxLQUFLLEVBQUUsS0FBSyxnQkFDaEMsdUJBQUMsZ0JBQWdCLG9CQUFLLEtBQUssSUFBRSxRQUFRLEVBQUUsUUFBUSxZQUFJLFlBQzlCLENBQ3hCLENBQUM7QUFDSixDQUFDLENBQUM7QUE1RFMsUUFBQSxRQUFRLFlBNERqQjtBQUVHLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUEsa0JBQVUsRUFBQyxtQkFBVyxDQUFDLENBQUM7QUFBeEMsUUFBQSxPQUFPLFdBQWlDO0FBQ3JELGtCQUFlLGdCQUFRLENBQUMifQ==
@@ -31,6 +31,7 @@ import MultiSelect from './MultiSelect';
31
31
  import ReCaptcha from './ReCaptcha';
32
32
  import ColorPicker from './ColorPicker';
33
33
  import useLongPress from './useLongPress';
34
+ import useStateIfMounted from './useStateIfMounted';
34
35
  import Message, { SNACKBAR_STATE_QUERY, TOGGLE_SNACKBAR_MUTATION } from './Material/SuccessMessage';
35
- export { Message, SNACKBAR_STATE_QUERY, TOGGLE_SNACKBAR_MUTATION, Text, H1, Label, TextField, Button, Spinner, Container, MessageBox, NoSsr, MessageBar, Checkbox, Choices, Drawer, Link, Menu, Rating, Select, Slider, Switch, Tooltip, Grid, IFrame, Divider, Box, TagsInput, Dialog, ColorBox, Stepper, Image, NumberFormatInput, Upload, MultiSelect, ReCaptcha, ColorPicker, useLongPress, };
36
+ export { Message, SNACKBAR_STATE_QUERY, TOGGLE_SNACKBAR_MUTATION, Text, H1, Label, TextField, Button, Spinner, Container, MessageBox, NoSsr, MessageBar, Checkbox, Choices, Drawer, Link, Menu, Rating, Select, Slider, Switch, Tooltip, Grid, IFrame, Divider, Box, TagsInput, Dialog, ColorBox, Stepper, Image, NumberFormatInput, Upload, MultiSelect, ReCaptcha, ColorPicker, useLongPress, useStateIfMounted, };
36
37
  export type { MessageBarType, INotificationMessages };
@@ -31,6 +31,7 @@ import MultiSelect from './MultiSelect';
31
31
  import ReCaptcha from './ReCaptcha';
32
32
  import ColorPicker from './ColorPicker';
33
33
  import useLongPress from './useLongPress';
34
+ import useStateIfMounted from './useStateIfMounted';
34
35
  import Message, { SNACKBAR_STATE_QUERY, TOGGLE_SNACKBAR_MUTATION, } from './Material/SuccessMessage';
35
- export { Message, SNACKBAR_STATE_QUERY, TOGGLE_SNACKBAR_MUTATION, Text, H1, Label, TextField, Button, Spinner, Container, MessageBox, NoSsr, MessageBar, Checkbox, Choices, Drawer, Link, Menu, Rating, Select, Slider, Switch, Tooltip, Grid, IFrame, Divider, Box, TagsInput, Dialog, ColorBox, Stepper, Image, NumberFormatInput, Upload, MultiSelect, ReCaptcha, ColorPicker, useLongPress, };
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3pDLE9BQU8sU0FBUyxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLE1BQU0sTUFBTSxVQUFVLENBQUM7QUFDOUIsT0FBTyxPQUFPLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sU0FBUyxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLFVBQVUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxLQUFLLE1BQU0sU0FBUyxDQUFDO0FBQzVCLE9BQU8sVUFHTixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLFFBQVEsTUFBTSxZQUFZLENBQUM7QUFDbEMsT0FBTyxPQUFPLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sTUFBTSxNQUFNLFVBQVUsQ0FBQztBQUM5QixPQUFPLElBQUksTUFBTSxRQUFRLENBQUM7QUFDMUIsT0FBTyxJQUFJLE1BQU0sUUFBUSxDQUFDO0FBQzFCLE9BQU8sTUFBTSxNQUFNLFVBQVUsQ0FBQztBQUM5QixPQUFPLE1BQU0sTUFBTSxVQUFVLENBQUM7QUFDOUIsT0FBTyxNQUFNLE1BQU0sVUFBVSxDQUFDO0FBQzlCLE9BQU8sTUFBTSxNQUFNLFVBQVUsQ0FBQztBQUM5QixPQUFPLE9BQU8sTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxJQUFJLE1BQU0sUUFBUSxDQUFDO0FBQzFCLE9BQU8sTUFBTSxNQUFNLFVBQVUsQ0FBQztBQUM5QixPQUFPLE9BQU8sTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxNQUFNLE1BQU0sVUFBVSxDQUFDO0FBQzlCLE9BQU8sUUFBUSxNQUFNLFlBQVksQ0FBQztBQUNsQyxPQUFPLE9BQU8sTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxLQUFLLE1BQU0sU0FBUyxDQUFDO0FBQzVCLE9BQU8saUJBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxNQUFNLE1BQU0sVUFBVSxDQUFDO0FBQzlCLE9BQU8sV0FBVyxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLFNBQVMsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxXQUFXLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sT0FBTyxFQUFFLEVBQ2Qsb0JBQW9CLEVBQ3BCLHdCQUF3QixHQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFDTCxPQUFPLEVBQ1Asb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4QixJQUFJLEVBQ0osRUFBRSxFQUNGLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLE9BQU8sRUFDUCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxVQUFVLEVBQ1YsUUFBUSxFQUNSLE9BQU8sRUFDUCxNQUFNLEVBQ04sSUFBSSxFQUNKLElBQUksRUFDSixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ04sT0FBTyxFQUNQLElBQUksRUFDSixNQUFNLEVBQ04sT0FBTyxFQUNQLEdBQUcsRUFDSCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixPQUFPLEVBQ1AsS0FBSyxFQUNMLGlCQUFpQixFQUNqQixNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxHQUNiLENBQUMifQ==
36
+ export { Message, SNACKBAR_STATE_QUERY, TOGGLE_SNACKBAR_MUTATION, Text, H1, Label, TextField, Button, Spinner, Container, MessageBox, NoSsr, MessageBar, Checkbox, Choices, Drawer, Link, Menu, Rating, Select, Slider, Switch, Tooltip, Grid, IFrame, Divider, Box, TagsInput, Dialog, ColorBox, Stepper, Image, NumberFormatInput, Upload, MultiSelect, ReCaptcha, ColorPicker, useLongPress, useStateIfMounted, };
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3pDLE9BQU8sU0FBUyxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLE1BQU0sTUFBTSxVQUFVLENBQUM7QUFDOUIsT0FBTyxPQUFPLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sU0FBUyxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLFVBQVUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxLQUFLLE1BQU0sU0FBUyxDQUFDO0FBQzVCLE9BQU8sVUFHTixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLFFBQVEsTUFBTSxZQUFZLENBQUM7QUFDbEMsT0FBTyxPQUFPLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sTUFBTSxNQUFNLFVBQVUsQ0FBQztBQUM5QixPQUFPLElBQUksTUFBTSxRQUFRLENBQUM7QUFDMUIsT0FBTyxJQUFJLE1BQU0sUUFBUSxDQUFDO0FBQzFCLE9BQU8sTUFBTSxNQUFNLFVBQVUsQ0FBQztBQUM5QixPQUFPLE1BQU0sTUFBTSxVQUFVLENBQUM7QUFDOUIsT0FBTyxNQUFNLE1BQU0sVUFBVSxDQUFDO0FBQzlCLE9BQU8sTUFBTSxNQUFNLFVBQVUsQ0FBQztBQUM5QixPQUFPLE9BQU8sTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxJQUFJLE1BQU0sUUFBUSxDQUFDO0FBQzFCLE9BQU8sTUFBTSxNQUFNLFVBQVUsQ0FBQztBQUM5QixPQUFPLE9BQU8sTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxNQUFNLE1BQU0sVUFBVSxDQUFDO0FBQzlCLE9BQU8sUUFBUSxNQUFNLFlBQVksQ0FBQztBQUNsQyxPQUFPLE9BQU8sTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxLQUFLLE1BQU0sU0FBUyxDQUFDO0FBQzVCLE9BQU8saUJBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxNQUFNLE1BQU0sVUFBVSxDQUFDO0FBQzlCLE9BQU8sV0FBVyxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLFNBQVMsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxXQUFXLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8saUJBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxPQUFPLEVBQUUsRUFDZCxvQkFBb0IsRUFDcEIsd0JBQXdCLEdBQ3pCLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsT0FBTyxFQUNMLE9BQU8sRUFDUCxvQkFBb0IsRUFDcEIsd0JBQXdCLEVBQ3hCLElBQUksRUFDSixFQUFFLEVBQ0YsS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sT0FBTyxFQUNQLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFVBQVUsRUFDVixRQUFRLEVBQ1IsT0FBTyxFQUNQLE1BQU0sRUFDTixJQUFJLEVBQ0osSUFBSSxFQUNKLE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixPQUFPLEVBQ1AsSUFBSSxFQUNKLE1BQU0sRUFDTixPQUFPLEVBQ1AsR0FBRyxFQUNILFNBQVMsRUFDVCxNQUFNLEVBQ04sUUFBUSxFQUNSLE9BQU8sRUFDUCxLQUFLLEVBQ0wsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osaUJBQWlCLEdBQ2xCLENBQUMifQ==
@@ -0,0 +1 @@
1
+ export default function useStateIfMounted(initialValue: any): any[];
@@ -0,0 +1,13 @@
1
+ import useIsComponentMounted from './useIsComponentMounted';
2
+ import { useState, useCallback } from 'react';
3
+ export default function useStateIfMounted(initialValue) {
4
+ const isComponentMounted = useIsComponentMounted();
5
+ const [state, setState] = useState(initialValue);
6
+ const newSetState = useCallback((value) => {
7
+ if (isComponentMounted.current) {
8
+ setState(value);
9
+ }
10
+ }, [isComponentMounted]);
11
+ return [state, newSetState];
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdXNlU3RhdGVJZk1vdW50ZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxxQkFBcUIsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQWE5QyxNQUFNLENBQUMsT0FBTyxVQUFVLGlCQUFpQixDQUFDLFlBQVk7SUFDcEQsTUFBTSxrQkFBa0IsR0FBRyxxQkFBcUIsRUFBRSxDQUFDO0lBQ25ELE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FDN0IsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNSLElBQUksa0JBQWtCLENBQUMsT0FBTyxFQUFFO1lBQzlCLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqQjtJQUNILENBQUMsRUFDRCxDQUFDLGtCQUFrQixDQUFDLENBQ3JCLENBQUM7SUFDRixPQUFPLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzlCLENBQUMifQ==
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export default function useIsComponentMounted(): import("react").MutableRefObject<boolean>;
@@ -0,0 +1,12 @@
1
+ import { useEffect, useRef } from 'react';
2
+ export default function useIsComponentMounted() {
3
+ const isMounted = useRef(false);
4
+ useEffect(() => {
5
+ isMounted.current = true;
6
+ return () => {
7
+ isMounted.current = false;
8
+ };
9
+ }, []);
10
+ return isMounted;
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlSXNDb21wb25lbnRNb3VudGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3VzZVN0YXRlSWZNb3VudGVkL3VzZUlzQ29tcG9uZW50TW91bnRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUUxQyxNQUFNLENBQUMsT0FBTyxVQUFVLHFCQUFxQjtJQUMzQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDekMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLFNBQVMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLE9BQU8sR0FBRyxFQUFFO1lBQ1YsU0FBUyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDNUIsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1AsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyJ9
@@ -4,25 +4,51 @@ import { reducer } from '../withContext/reducer';
4
4
  import { UI } from '../../common/UI';
5
5
  import { fetcher } from '../../services/fetcher';
6
6
  import { currentUserQuery } from './Query';
7
- import { USER_ID, USER_TOKEN, USER_KEY } from 'nuudel-utils';
7
+ import { USER_TOKEN, tokenObj, USER_ID } from 'nuudel-utils';
8
8
  import useSWR from 'swr';
9
+ import Router from 'next/router';
10
+ function getRedirectTo() {
11
+ if (typeof window !== 'undefined' && window?.location) {
12
+ return window.location;
13
+ }
14
+ return {};
15
+ }
9
16
  var initialState = {};
10
17
  export const UserContext = createContext(initialState);
11
18
  UserContext.displayName = 'userContext';
12
19
  export const withUser = (WrappedComponent) => (props) => {
13
- const token = UI.getItem(USER_TOKEN);
20
+ let token = UI.getItem(USER_TOKEN);
14
21
  const userId = UI.getItem(USER_ID);
15
- const username = UI.getItem(USER_KEY);
22
+ let cuser = null;
23
+ const obj = tokenObj(token);
24
+ if (obj?._id &&
25
+ userId === obj._id &&
26
+ obj?.exp > Math.ceil(Date.now() / 1000)) {
27
+ cuser = {
28
+ _id: obj._id,
29
+ username: obj.username,
30
+ email: obj.email,
31
+ };
32
+ }
16
33
  const [state, dispatch] = useReducer(reducer, {
17
34
  ...initialState,
18
- _id: userId,
19
- email: username?.includes('@') ? username : null,
20
- username: !username?.includes('@') ? username : null,
35
+ ...cuser,
21
36
  });
22
37
  const { data: fetchedUser, error } = useSWR(!token || !!state?.type ? null : currentUserQuery, fetcher, {
23
38
  revalidateOnFocus: false,
24
39
  revalidateIfStale: false,
40
+ revalidateOnReconnect: false,
41
+ loadingTimeout: 10000,
42
+ focusThrottleInterval: 0,
43
+ dedupingInterval: 10000,
44
+ errorRetryInterval: 10000,
45
+ errorRetryCount: 1,
46
+ shouldRetryOnError: false,
25
47
  });
48
+ if (token && error && error.includes('not logged')) {
49
+ const redir = getRedirectTo();
50
+ Router.replace(`/admin/login?r=${redir.pathname + encodeURIComponent(redir.search)}`, '/admin/login', { shallow: true });
51
+ }
26
52
  useEffect(() => {
27
53
  if (fetchedUser?.data?.currentUser) {
28
54
  dispatch(fetchedUser.data.currentUser);
@@ -32,4 +58,4 @@ export const withUser = (WrappedComponent) => (props) => {
32
58
  };
33
59
  export const useAuth = () => useContext(UserContext);
34
60
  export default withUser;
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2hvY3Mvd2l0aFVzZXIvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLGFBQWEsRUFFYixVQUFVLEVBQ1YsU0FBUyxHQUNWLE1BQU0sT0FBTyxDQUFDO0FBQ2YsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RCxPQUFPLE1BQU0sTUFBTSxLQUFLLENBQUM7QUFXekIsSUFBSSxZQUFZLEdBQVEsRUFBRSxDQUFDO0FBRzNCLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDdkQsV0FBVyxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUNuQixDQUFDLGdCQUFxQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO0lBQ3hELE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEdBQUcsVUFBVSxDQUFDLE9BQU8sRUFBRTtRQUM1QyxHQUFHLFlBQVk7UUFDZixHQUFHLEVBQUUsTUFBTTtRQUNYLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUk7UUFDaEQsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJO0tBQ3JELENBQUMsQ0FBQztJQUVILE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sQ0FDekMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQ2pELE9BQU8sRUFDUDtRQUNFLGlCQUFpQixFQUFFLEtBQUs7UUFDeEIsaUJBQWlCLEVBQUUsS0FBSztLQUN6QixDQUNGLENBQUM7SUFFRixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsSUFBSSxXQUFXLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUNsQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFjbEIsT0FBTyxDQUNMLEtBQUMsV0FBVyxDQUFDLFFBQVEsSUFBQyxLQUFLLEVBQUUsS0FBSyxZQUNoQyxLQUFDLGdCQUFnQixPQUFLLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxXQUFJLFdBQzlCLENBQ3hCLENBQUM7QUFDSixDQUFDLENBQUM7QUFFSixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3JELGVBQWUsUUFBUSxDQUFDIn0=
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2hvY3Mvd2l0aFVzZXIvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLGFBQWEsRUFFYixVQUFVLEVBQ1YsU0FBUyxHQUNWLE1BQU0sT0FBTyxDQUFDO0FBQ2YsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RCxPQUFPLE1BQU0sTUFBTSxLQUFLLENBQUM7QUFFekIsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLFNBQVMsYUFBYTtJQUNwQixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxNQUFNLEVBQUUsUUFBUSxFQUFFO1FBQ3JELE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQztLQUN4QjtJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUdELElBQUksWUFBWSxHQUFRLEVBQUUsQ0FBQztBQUczQixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3ZELFdBQVcsQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FDbkIsQ0FBQyxnQkFBcUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtJQUN4RCxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLE1B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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nuudel-core",
3
- "version": "0.1.134",
3
+ "version": "0.1.137",
4
4
  "description": "Web components for react with material UI",
5
5
  "main": "build/main/index.js",
6
6
  "typings": "build/main/index.d.ts",
@@ -66,7 +66,7 @@
66
66
  "i18next": "^21.6.6",
67
67
  "material-ui-chip-input": "^1.1.0",
68
68
  "next-with-apollo": "^5.2.1",
69
- "nuudel-utils": "^0.1.57",
69
+ "nuudel-utils": "^0.1.58",
70
70
  "pica": "^9.0.1",
71
71
  "react-colorful": "^5.6.1",
72
72
  "react-device-detect": "^2.1.2",