@evlop/commons 1.0.121 → 1.0.122

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.
@@ -21,6 +21,7 @@ export * from './useMenuItems';
21
21
  export * from './useEditable';
22
22
  export * from './usePage';
23
23
  export * from './useParams';
24
+ export * from './useActionable';
24
25
  export * from './useAction';
25
26
  export * from './usePastePlainText';
26
27
  export * from './useResponsive';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.tsx"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.tsx"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
@@ -33,6 +33,7 @@ __exportStar(require("./useMenuItems"), exports);
33
33
  __exportStar(require("./useEditable"), exports);
34
34
  __exportStar(require("./usePage"), exports);
35
35
  __exportStar(require("./useParams"), exports);
36
+ __exportStar(require("./useActionable"), exports);
36
37
  __exportStar(require("./useAction"), exports);
37
38
  __exportStar(require("./usePastePlainText"), exports);
38
39
  __exportStar(require("./useResponsive"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAA+B;AAC/B,yDAAuC;AACvC,8CAA4B;AAC5B,kDAAgC;AAChC,4CAA0B;AAC1B,6CAA2B;AAC3B,qDAAmC;AACnC,gDAA8B;AAC9B,6CAA2B;AAC3B,2CAAyB;AACzB,6CAA2B;AAC3B,6CAA2B;AAC3B,kDAAgC;AAChC,0DAAwC;AACxC,wDAAsC;AACtC,gEAA8C;AAC9C,6DAA2C;AAC3C,4DAA0C;AAC1C,oDAAkC;AAClC,iDAA+B;AAC/B,gDAA8B;AAC9B,4CAA0B;AAC1B,8CAA4B;AAC5B,8CAA4B;AAC5B,sDAAoC;AACpC,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAA+B;AAC/B,yDAAuC;AACvC,8CAA4B;AAC5B,kDAAgC;AAChC,4CAA0B;AAC1B,6CAA2B;AAC3B,qDAAmC;AACnC,gDAA8B;AAC9B,6CAA2B;AAC3B,2CAAyB;AACzB,6CAA2B;AAC3B,6CAA2B;AAC3B,kDAAgC;AAChC,0DAAwC;AACxC,wDAAsC;AACtC,gEAA8C;AAC9C,6DAA2C;AAC3C,4DAA0C;AAC1C,oDAAkC;AAClC,iDAA+B;AAC/B,gDAA8B;AAC9B,4CAA0B;AAC1B,8CAA4B;AAC5B,kDAAgC;AAChC,8CAA4B;AAC5B,sDAAoC;AACpC,kDAAgC"}
@@ -1,18 +1,9 @@
1
+ import { Action } from './useActionable';
1
2
  /**
2
3
  * get a action function for
3
4
  * @param action action object ot function
4
5
  * @returns function
5
6
  */
6
- interface ActionObject {
7
- link: string;
8
- bindKey: string;
9
- route: string;
10
- navigate: Array<string> | string;
11
- page: Array<string> | string;
12
- dispatch: Object | Function;
13
- callback: Function;
14
- }
15
- declare type Action = ActionObject | Function | any;
16
- export declare const useAction: (action: Action) => (event: any) => any;
7
+ export declare const useAction: (action?: Action) => (event: any) => any;
17
8
  export default useAction;
18
9
  //# sourceMappingURL=useAction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAction.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAction.tsx"],"names":[],"mappings":"AASA;;;;GAIG;AAEF,UAAU,YAAY;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACjC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,QAAQ,EAAE,QAAQ,CAAC;CACtB;AAED,aAAK,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,GAAG,CAAA;AAE5C,eAAO,MAAM,SAAS,WAAY,MAAM,wBA+BvC,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"useAction.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAction.tsx"],"names":[],"mappings":"AACA,OAAsB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGxD;;;;GAIG;AAEH,eAAO,MAAM,SAAS,YAAa,MAAM,wBAIxC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -5,45 +5,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.useAction = void 0;
7
7
  const react_1 = require("react");
8
- const react_redux_1 = require("react-redux");
9
- const lodash_1 = require("lodash");
10
- const useNavigator_1 = require("./useNavigator");
11
- const useScope_1 = require("./useScope");
12
- const useTemplate_1 = __importDefault(require("./useTemplate"));
13
- const lodash_2 = require("lodash");
8
+ const useActionable_1 = __importDefault(require("./useActionable"));
9
+ // link, callback, dispatch, navigate
10
+ /**
11
+ * get a action function for
12
+ * @param action action object ot function
13
+ * @returns function
14
+ */
14
15
  const useAction = (action) => {
15
- const navigator = useNavigator_1.useNavigator();
16
- const dispatch = react_redux_1.useDispatch();
17
- const scope = useScope_1.useScope();
18
- const template = useTemplate_1.default();
19
- return react_1.useCallback((event) => {
20
- let actionToUse = action;
21
- while (actionToUse && actionToUse.bindKey) {
22
- actionToUse = lodash_1.get(scope, actionToUse.bindKey);
23
- }
24
- if (typeof actionToUse === 'function')
25
- return actionToUse(event);
26
- if (actionToUse) {
27
- const { link, navigate, push, page, params, dispatch: dispatchAction, route, callback } = actionToUse;
28
- if (link)
29
- return navigator.openURL(template(link));
30
- if (navigate)
31
- return navigator.navigate(...lodash_1.castArray(JSON.parse(template(JSON.stringify(navigate)))));
32
- if (push)
33
- return navigator.push(...lodash_1.castArray(JSON.parse(template(JSON.stringify(navigate)))));
34
- if (page) {
35
- const routeParams = lodash_2.mapValues(params, (paramValue) => template(paramValue.toString()));
36
- return navigator.openPage(page, routeParams);
37
- }
38
- ;
39
- if (route)
40
- return navigator.openRoute(template(route));
41
- if (dispatchAction)
42
- return dispatch(dispatchAction);
43
- if (callback)
44
- return callback({ event, navigator, dispatch });
45
- }
46
- }, [action, navigator, dispatch, template, scope]);
16
+ const createActionHandeller = useActionable_1.default();
17
+ return react_1.useMemo(() => createActionHandeller(action), [action, createActionHandeller]);
47
18
  };
48
19
  exports.useAction = useAction;
49
20
  exports.default = exports.useAction;
@@ -1 +1 @@
1
- {"version":3,"file":"useAction.js","sourceRoot":"","sources":["../../../src/hooks/useAction.tsx"],"names":[],"mappings":";;;;;;AAAA,iCAA6C;AAC7C,6CAA0C;AAC1C,mCAAwC;AACxC,iDAA4C;AAC5C,yCAAoC;AACpC,gEAAwC;AACxC,mCAAiC;AAqB1B,MAAM,SAAS,GAAG,CAAC,MAAc,EAAC,EAAE;IAEvC,MAAM,SAAS,GAAG,2BAAY,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,yBAAW,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,mBAAQ,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,qBAAW,EAAE,CAAC;IAE/B,OAAO,mBAAW,CAAC,CAAC,KAAK,EAAC,EAAE;QACxB,IAAI,WAAW,GAAG,MAAM,CAAC;QAEzB,OAAO,WAAW,IAAI,WAAW,CAAC,OAAO,EAAC;YACtC,WAAW,GAAG,YAAG,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;SACjD;QAED,IAAG,OAAO,WAAW,KAAK,UAAU;YAAE,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAEhE,IAAG,WAAW,EAAE;YACZ,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAC,GAAG,WAAW,CAAC;YAErG,IAAI,IAAI;gBAAE,OAAO,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,QAAQ;gBAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,kBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtG,IAAI,IAAI;gBAAE,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,kBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9F,IAAI,IAAI,EAAC;gBACL,MAAM,WAAW,GAAG,kBAAS,CAAC,MAAM,EAAE,CAAC,UAAiB,EAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;gBAC5F,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;aAC/C;YAAA,CAAC;YACF,IAAI,KAAK;gBAAE,OAAO,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YACvD,IAAI,cAAc;gBAAE,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;YACpD,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC,EAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAC,CAAC,CAAC;SAC/D;IACL,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AACvD,CAAC,CAAC;AA/BW,QAAA,SAAS,aA+BpB;AAEF,kBAAe,iBAAS,CAAC"}
1
+ {"version":3,"file":"useAction.js","sourceRoot":"","sources":["../../../src/hooks/useAction.tsx"],"names":[],"mappings":";;;;;;AAAA,iCAAgC;AAChC,oEAAwD;AAExD,qCAAqC;AACrC;;;;GAIG;AAEI,MAAM,SAAS,GAAG,CAAC,MAAe,EAAC,EAAE;IACxC,MAAM,qBAAqB,GAAG,uBAAa,EAAE,CAAC;IAE9C,OAAO,eAAO,CAAC,GAAE,EAAE,CAAA,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC;AACvF,CAAC,CAAC;AAJW,QAAA,SAAS,aAIpB;AAEF,kBAAe,iBAAS,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * get a action function for
3
+ * @param action action object ot function
4
+ * @returns function
5
+ */
6
+ export interface ActionObject {
7
+ link: string;
8
+ bindKey: string;
9
+ route: string;
10
+ navigate: Array<string> | string;
11
+ page: Array<string> | string;
12
+ dispatch: Object | Function;
13
+ callback: Function;
14
+ }
15
+ export declare type Action = ActionObject | Function | any;
16
+ /**
17
+ * @description a function to map action into action handeller function
18
+ */
19
+ export declare const useActionable: () => (action: Action) => (event: any) => any;
20
+ export default useActionable;
21
+ //# sourceMappingURL=useActionable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActionable.d.ts","sourceRoot":"","sources":["../../../src/hooks/useActionable.tsx"],"names":[],"mappings":"AASA;;;;GAIG;AAEF,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACjC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,QAAQ,EAAE,QAAQ,CAAC;CACtB;AAED,oBAAY,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,GAAG,CAAA;AAElD;;GAEG;AACJ,eAAO,MAAM,aAAa,iBAM8B,MAAM,aAAa,GAAG,QA0B7E,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useActionable = void 0;
7
+ const react_1 = require("react");
8
+ const react_redux_1 = require("react-redux");
9
+ const lodash_1 = require("lodash");
10
+ const useNavigator_1 = require("./useNavigator");
11
+ const useScope_1 = require("./useScope");
12
+ const useTemplate_1 = __importDefault(require("./useTemplate"));
13
+ const lodash_2 = require("lodash");
14
+ /**
15
+ * @description a function to map action into action handeller function
16
+ */
17
+ const useActionable = () => {
18
+ const navigator = useNavigator_1.useNavigator();
19
+ const dispatch = react_redux_1.useDispatch();
20
+ const scope = useScope_1.useScope();
21
+ const template = useTemplate_1.default();
22
+ const createActionHandeller = react_1.useCallback((action) => (event) => {
23
+ let actionToUse = action;
24
+ while (actionToUse && actionToUse.bindKey) {
25
+ actionToUse = lodash_1.get(scope, actionToUse.bindKey);
26
+ }
27
+ if (typeof actionToUse === 'function')
28
+ return actionToUse(event);
29
+ if (actionToUse) {
30
+ const { link, navigate, push, page, params, dispatch: dispatchAction, route, callback } = actionToUse;
31
+ if (link)
32
+ return navigator.openURL(template(link));
33
+ if (navigate)
34
+ return navigator.navigate(...lodash_1.castArray(JSON.parse(template(JSON.stringify(navigate)))));
35
+ if (push)
36
+ return navigator.push(...lodash_1.castArray(JSON.parse(template(JSON.stringify(navigate)))));
37
+ if (page) {
38
+ const routeParams = lodash_2.mapValues(params, (paramValue) => template(paramValue.toString()));
39
+ return navigator.openPage(page, routeParams);
40
+ }
41
+ ;
42
+ if (route)
43
+ return navigator.openRoute(template(route));
44
+ if (dispatchAction)
45
+ return dispatch(dispatchAction);
46
+ if (callback)
47
+ return callback({ event, navigator, dispatch });
48
+ }
49
+ }, [navigator, dispatch, template, scope]);
50
+ return createActionHandeller;
51
+ };
52
+ exports.useActionable = useActionable;
53
+ exports.default = exports.useActionable;
54
+ //# sourceMappingURL=useActionable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActionable.js","sourceRoot":"","sources":["../../../src/hooks/useActionable.tsx"],"names":[],"mappings":";;;;;;AAAA,iCAA6C;AAC7C,6CAA0C;AAC1C,mCAAwC;AACxC,iDAA4C;AAC5C,yCAAoC;AACpC,gEAAwC;AACxC,mCAAiC;AAqBhC;;GAEG;AACG,MAAM,aAAa,GAAG,GAAE,EAAE;IAC7B,MAAM,SAAS,GAAG,2BAAY,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,yBAAW,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,mBAAQ,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,qBAAW,EAAE,CAAC;IAE/B,MAAM,qBAAqB,GAAI,mBAAW,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,KAAU,EAAE,EAAE;QAC1E,IAAI,WAAW,GAAG,MAAM,CAAC;QAEzB,OAAO,WAAW,IAAI,WAAW,CAAC,OAAO,EAAC;YACtC,WAAW,GAAG,YAAG,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;SACjD;QAED,IAAG,OAAO,WAAW,KAAK,UAAU;YAAE,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAEhE,IAAG,WAAW,EAAE;YACZ,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAC,GAAG,WAAW,CAAC;YAErG,IAAI,IAAI;gBAAE,OAAO,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,QAAQ;gBAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,kBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtG,IAAI,IAAI;gBAAE,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,kBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9F,IAAI,IAAI,EAAC;gBACL,MAAM,WAAW,GAAG,kBAAS,CAAC,MAAM,EAAE,CAAC,UAAiB,EAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;gBAC5F,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;aAC/C;YAAA,CAAC;YACF,IAAI,KAAK;gBAAE,OAAO,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YACvD,IAAI,cAAc;gBAAE,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;YACpD,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC,EAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAC,CAAC,CAAC;SAC/D;IACL,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAE3C,OAAO,qBAAqB,CAAC;AACjC,CAAC,CAAC;AAhCW,QAAA,aAAa,iBAgCxB;AAEF,kBAAe,qBAAa,CAAC"}
@@ -21,7 +21,7 @@ export interface Notification {
21
21
  /**
22
22
  * @description where should the notification be displayed
23
23
  */
24
- position: 'top' | 'top-right' | 'bottom-right' | 'bottom' | 'bottom-left' | 'top-left' | 'center';
24
+ position: 'top' | 'top-right' | 'bottom-right' | 'bottom' | 'bottom-left' | 'top-left';
25
25
  /**
26
26
  * Action buttons for notification
27
27
  */
@@ -42,9 +42,12 @@ export interface Notification {
42
42
  */
43
43
  export declare const showNotification: (notification: Notification) => {
44
44
  type: string;
45
- notification: Notification & {
45
+ notification: {
46
46
  id: string;
47
- };
47
+ timeout: number;
48
+ type: string;
49
+ position: string;
50
+ } & Notification;
48
51
  };
49
52
  export declare const removeNotification: (id: any) => {
50
53
  type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../../src/reducers/notifications.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,MAAM,WAAW,YAAY;IACzB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAC,SAAS,GAAC,OAAO,GAAC,SAAS,CAAC;IAC1C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,EAAE,KAAK,GAAC,WAAW,GAAC,cAAc,GAAC,QAAQ,GAAC,aAAa,GAAC,UAAU,GAAC,QAAQ,CAAC;IACtF;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,GAAG,CAAC;KACf,CAAC,CAAA;IACF;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,iBAAkB,YAAY;;;;;CAGzD,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;CAG7B,CAAC;gCAIoB,MAAM,YAAY,CAAC;AAA1C,wBAYC"}
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../../src/reducers/notifications.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,MAAM,WAAW,YAAY;IACzB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAC,SAAS,GAAC,OAAO,GAAC,SAAS,CAAC;IAC1C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,EAAE,KAAK,GAAC,WAAW,GAAC,cAAc,GAAC,QAAQ,GAAC,aAAa,GAAC,UAAU,CAAC;IAC7E;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,GAAG,CAAC;KACf,CAAC,CAAA;IACF;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,iBAAkB,YAAY;;;;;;;;CAGzD,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;CAG7B,CAAC;gCAIoB,MAAM,YAAY,CAAC;AAA1C,wBAgBC"}
@@ -11,7 +11,7 @@ exports.REMOVE_NOTIFICATION = 'notification/remove';
11
11
  */
12
12
  const showNotification = (notification) => ({
13
13
  type: exports.SHOW_NOTIFICATION,
14
- notification: lodash_1.assign({}, notification, { id: lodash_1.random(false).toString(36) }),
14
+ notification: lodash_1.defaults(notification, { id: lodash_1.random(Number.MAX_SAFE_INTEGER).toString(36), timeout: 5000, type: 'info', position: 'bottom-right' }),
15
15
  });
16
16
  exports.showNotification = showNotification;
17
17
  const removeNotification = (id) => ({
@@ -23,10 +23,15 @@ let initialState = [];
23
23
  exports.default = (state = initialState, action) => {
24
24
  switch (action.type) {
25
25
  case exports.SHOW_NOTIFICATION:
26
- return [
27
- ...state,
28
- action.notification,
29
- ];
26
+ const notification = action.notification;
27
+ if (lodash_1.some(state, { id: notification.id })) {
28
+ // replace notification if notification with same id already exists
29
+ return state.map(_notification => notification.id === _notification.id ? notification : _notification);
30
+ }
31
+ else {
32
+ // append notification to state
33
+ return [...state, action.notification,];
34
+ }
30
35
  case exports.REMOVE_NOTIFICATION:
31
36
  return state.filter(m => m.id !== action.id);
32
37
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../src/reducers/notifications.tsx"],"names":[],"mappings":";;;AAAA,mCAAwC;AAE3B,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACxC,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAsCzD;;;;GAIG;AACI,MAAM,gBAAgB,GAAG,CAAC,YAA0B,EAAC,EAAE,CAAA,CAAC;IAC3D,IAAI,EAAE,yBAAiB;IACvB,YAAY,EAAE,eAAM,CAAC,EAAE,EAAC,YAAY,EAAE,EAAC,EAAE,EAAE,eAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;CAC3E,CAAC,CAAC;AAHU,QAAA,gBAAgB,oBAG1B;AAEI,MAAM,kBAAkB,GAAG,CAAC,EAAE,EAAC,EAAE,CAAA,CAAC;IACrC,IAAI,EAAE,2BAAmB;IACzB,EAAE;CACL,CAAC,CAAC;AAHU,QAAA,kBAAkB,sBAG5B;AAEH,IAAI,YAAY,GAAuB,EAAE,CAAC;AAE1C,kBAAe,CAAC,QAA6B,YAAY,EAAE,MAAM,EAAC,EAAE;IAChE,QAAQ,MAAM,CAAC,IAAI,EAAE;QACjB,KAAK,yBAAiB;YAClB,OAAO;gBACH,GAAG,KAAK;gBACR,MAAM,CAAC,YAAY;aACtB,CAAC;QACN,KAAK,2BAAmB;YACpB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7C;YACI,OAAO,KAAK,CAAC;KACpB;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../src/reducers/notifications.tsx"],"names":[],"mappings":";;;AAAA,mCAAgE;AAEnD,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACxC,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAsCzD;;;;GAIG;AACI,MAAM,gBAAgB,GAAG,CAAC,YAA0B,EAAC,EAAE,CAAA,CAAC;IAC3D,IAAI,EAAE,yBAAiB;IACvB,YAAY,EAAE,iBAAQ,CAAC,YAAY,EAAE,EAAC,EAAE,EAAE,eAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;CACnJ,CAAC,CAAC;AAHU,QAAA,gBAAgB,oBAG1B;AAEI,MAAM,kBAAkB,GAAG,CAAC,EAAE,EAAC,EAAE,CAAA,CAAC;IACrC,IAAI,EAAE,2BAAmB;IACzB,EAAE;CACL,CAAC,CAAC;AAHU,QAAA,kBAAkB,sBAG5B;AAEH,IAAI,YAAY,GAAuB,EAAE,CAAC;AAE1C,kBAAe,CAAC,QAA6B,YAAY,EAAE,MAAM,EAAC,EAAE;IAChE,QAAQ,MAAM,CAAC,IAAI,EAAE;QACjB,KAAK,yBAAiB;YAClB,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;YACzC,IAAG,aAAI,CAAC,KAAK,EAAE,EAAC,EAAE,EAAE,YAAY,CAAC,EAAE,EAAC,CAAC,EAAC;gBAClC,mEAAmE;gBACnE,OAAO,KAAK,CAAC,GAAG,CAAC,aAAa,CAAA,EAAE,CAAC,YAAY,CAAC,EAAE,KAAK,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAE,CAAA;aACzG;iBAAM;gBACH,+BAA+B;gBAC/B,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,CAAA;aAC1C;QACL,KAAK,2BAAmB;YACpB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7C;YACI,OAAO,KAAK,CAAC;KACpB;AACL,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evlop/commons",
3
- "version": "1.0.121",
3
+ "version": "1.0.122",
4
4
  "description": "",
5
5
  "main": "dist/main.js",
6
6
  "peerDependencies": {