@thisisagile/easy-react 10.11.14 → 10.12.0

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.
@@ -1,9 +1,10 @@
1
- import { List, PageList, Validatable } from '@thisisagile/easy';
1
+ import { List, PageList, PageOptions, Validatable } from '@thisisagile/easy';
2
2
  export declare const useToggle: (initialState?: boolean) => [boolean, () => void];
3
3
  export declare const useA: <E extends Validatable>(item?: Partial<E>) => [E, (e: E) => E];
4
4
  export declare const useAn: <E extends Validatable>(item?: Partial<E>) => [E, (e: E) => E];
5
5
  export declare const useEntity: <E extends Validatable>(item?: Partial<E>) => [E, (e: E) => E];
6
6
  export declare const useList: <E>(...items: E[]) => [List<E>, (e: List<E>) => List<E>];
7
7
  export declare const usePageList: <E>(...items: E[]) => [PageList<E>, (e: List<E>) => PageList<E>];
8
+ export declare const usePaging: <E>(f: (options?: PageOptions) => Promise<PageList<E>>, options?: PageOptions) => [PageList<E>, (options?: PageOptions) => Promise<PageList<E>>, boolean, number, number];
8
9
  export declare const useGet: <E>(f: () => Promise<E>) => [E, () => Promise<E>];
9
10
  export declare const useGetList: <E>(f: () => Promise<PageList<E>>) => [PageList<E>, () => Promise<PageList<E>>];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useGetList = exports.useGet = exports.usePageList = exports.useList = exports.useEntity = exports.useAn = exports.useA = exports.useToggle = void 0;
3
+ exports.useGetList = exports.useGet = exports.usePaging = exports.usePageList = exports.useList = exports.useEntity = exports.useAn = exports.useA = exports.useToggle = void 0;
4
4
  const easy_1 = require("@thisisagile/easy");
5
5
  const react_1 = require("react");
6
6
  const useToggle = (initialState = false) => {
@@ -43,6 +43,17 @@ const usePageList = (...items) => {
43
43
  ];
44
44
  };
45
45
  exports.usePageList = usePageList;
46
+ const usePaging = (f, options) => {
47
+ const [list, setList] = (0, exports.usePageList)();
48
+ const [skip, setSkip] = (0, react_1.useState)(options?.skip ?? 0);
49
+ const [take] = (0, react_1.useState)(options?.take ?? 5);
50
+ const next = (options = { skip, take }) => f(options).then(items => {
51
+ setSkip(skip + take);
52
+ return setList((0, easy_1.toPageList)(list.add(items), items));
53
+ });
54
+ return [list, next, list.length < (list?.total ?? 0), skip, take];
55
+ };
56
+ exports.usePaging = usePaging;
46
57
  const useGet = (f) => {
47
58
  const [item, setItem] = (0, react_1.useState)({});
48
59
  const getter = () => f().then(i => {
@@ -1 +1 @@
1
- {"version":3,"file":"Hooks.js","sourceRoot":"","sources":["../../src/utils/Hooks.ts"],"names":[],"mappings":";;;AAAA,4CAAoF;AACpF,iCAAiC;AAE1B,MAAM,SAAS,GAAG,CAAC,YAAY,GAAG,KAAK,EAAyB,EAAE;IACvE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAU,YAAY,CAAC,CAAC;IAC1D,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC;AAHW,QAAA,SAAS,aAGpB;AAEK,MAAM,IAAI,GAAG,CAAwB,OAAmB,EAAgB,EAAoB,EAAE;IACnG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,EAAO,CAAC,CAAC;IACxE,OAAO;QACL,KAAK;QACL,CAAC,CAAI,EAAK,EAAE;YACV,QAAQ,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO,CAAC,CAAC;QACX,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,IAAI,QASf;AAEW,QAAA,KAAK,GAAG,YAAI,CAAC;AAEb,QAAA,SAAS,GAAG,YAAI,CAAC;AAEvB,MAAM,OAAO,GAAG,CAAI,GAAG,KAAU,EAAsC,EAAE;IAC9E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAU,IAAA,aAAM,EAAI,GAAG,KAAK,CAAC,CAAC,CAAC;IACjE,OAAO;QACL,KAAK;QACL,CAAC,CAAU,EAAW,EAAE;YACtB,QAAQ,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO,CAAC,CAAC;QACX,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,OAAO,WASlB;AAEK,MAAM,WAAW,GAAG,CAAI,GAAG,KAAU,EAA8C,EAAE;IAC1F,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAU,IAAA,iBAAU,EAAI,KAAK,CAAC,CAAC,CAAC;IAClE,OAAO;QACL,KAAK;QACL,CAAC,CAAU,EAAe,EAAE;YAC1B,QAAQ,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO,CAAC,CAAC;QACX,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,WAAW,eAStB;AAEK,MAAM,MAAM,GAAG,CAAI,CAAmB,EAAyB,EAAE;IACtE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAO,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,GAAG,EAAE,CAClB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QACX,OAAO,CAAC,CAAC,CAAC,CAAC;QACX,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACL,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxB,CAAC,CAAC;AARW,QAAA,MAAM,UAQjB;AAEK,MAAM,UAAU,GAAG,CAAI,CAA6B,EAA6C,EAAE;IACxG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,mBAAW,GAAK,CAAC;IACzC,MAAM,MAAM,GAAG,GAAG,EAAE,CAClB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QACX,OAAO,CAAC,CAAC,CAAC,CAAC;QACX,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACL,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxB,CAAC,CAAC;AARW,QAAA,UAAU,cAQrB"}
1
+ {"version":3,"file":"Hooks.js","sourceRoot":"","sources":["../../src/utils/Hooks.ts"],"names":[],"mappings":";;;AAAA,4CAAiG;AACjG,iCAAiC;AAE1B,MAAM,SAAS,GAAG,CAAC,YAAY,GAAG,KAAK,EAAyB,EAAE;IACvE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAU,YAAY,CAAC,CAAC;IAC1D,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC;AAHW,QAAA,SAAS,aAGpB;AAEK,MAAM,IAAI,GAAG,CAAwB,OAAmB,EAAgB,EAAoB,EAAE;IACnG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,EAAO,CAAC,CAAC;IACxE,OAAO;QACL,KAAK;QACL,CAAC,CAAI,EAAK,EAAE;YACV,QAAQ,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO,CAAC,CAAC;QACX,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,IAAI,QASf;AAEW,QAAA,KAAK,GAAG,YAAI,CAAC;AAEb,QAAA,SAAS,GAAG,YAAI,CAAC;AAEvB,MAAM,OAAO,GAAG,CAAI,GAAG,KAAU,EAAsC,EAAE;IAC9E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAU,IAAA,aAAM,EAAI,GAAG,KAAK,CAAC,CAAC,CAAC;IACjE,OAAO;QACL,KAAK;QACL,CAAC,CAAU,EAAW,EAAE;YACtB,QAAQ,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO,CAAC,CAAC;QACX,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,OAAO,WASlB;AAEK,MAAM,WAAW,GAAG,CAAI,GAAG,KAAU,EAA8C,EAAE;IAC1F,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAc,IAAA,iBAAU,EAAI,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO;QACL,KAAK;QACL,CAAC,CAAU,EAAe,EAAE;YAC1B,QAAQ,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO,CAAC,CAAC;QACX,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,WAAW,eAStB;AAEK,MAAM,SAAS,GAAG,CAAI,CAAkD,EAAE,OAAqB,EAA2F,EAAE;IACjM,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,mBAAW,GAAK,CAAC;IACzC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,CAAC,UAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CACrD,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACtB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QACrB,OAAO,OAAO,CAAC,IAAA,iBAAU,EAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IACL,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACpE,CAAC,CAAC;AAVW,QAAA,SAAS,aAUpB;AAEK,MAAM,MAAM,GAAG,CAAI,CAAmB,EAAyB,EAAE;IACtE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAO,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,GAAG,EAAE,CAClB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QACX,OAAO,CAAC,CAAC,CAAC,CAAC;QACX,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACL,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxB,CAAC,CAAC;AARW,QAAA,MAAM,UAQjB;AAEK,MAAM,UAAU,GAAG,CAAI,CAA6B,EAA6C,EAAE;IACxG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,mBAAW,GAAK,CAAC;IACzC,MAAM,MAAM,GAAG,GAAG,EAAE,CAClB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QACX,OAAO,CAAC,CAAC,CAAC,CAAC;QACX,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACL,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxB,CAAC,CAAC;AARW,QAAA,UAAU,cAQrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy-react",
3
- "version": "10.11.14",
3
+ "version": "10.12.0",
4
4
  "description": "Straightforward library building micro applications in react",
5
5
  "author": "Sander Hoogendoorn",
6
6
  "license": "MIT",
@@ -34,19 +34,19 @@
34
34
  "access": "public"
35
35
  },
36
36
  "devDependencies": {
37
- "@thisisagile/easy-test": "10.11.14",
38
- "@thisisagile/easy-test-react": "10.11.14",
37
+ "@thisisagile/easy-test": "10.12.0",
38
+ "@thisisagile/easy-test-react": "10.12.0",
39
39
  "@types/copyfiles": "^2",
40
40
  "copyfiles": "^2.4.1",
41
41
  "jest-environment-jsdom": "^28.1.0",
42
42
  "jest-transform-stub": "^2.0.0"
43
43
  },
44
44
  "dependencies": {
45
- "@thisisagile/easy": "10.11.14",
45
+ "@thisisagile/easy": "10.12.0",
46
46
  "next": "^12.1.6",
47
47
  "next-transpile-modules": "^9.0.0",
48
48
  "react": "^18.1.0",
49
49
  "react-dom": "^18.1.0",
50
- "sass": "^1.51.0"
50
+ "sass": "^1.52.1"
51
51
  }
52
52
  }
@@ -1,4 +1,4 @@
1
- import { List, PageList, toList, toPageList, Validatable } from '@thisisagile/easy';
1
+ import { List, PageList, PageOptions, toList, toPageList, Validatable } from '@thisisagile/easy';
2
2
  import { useState } from 'react';
3
3
 
4
4
  export const useToggle = (initialState = false): [boolean, () => void] => {
@@ -33,7 +33,7 @@ export const useList = <E>(...items: E[]): [List<E>, (e: List<E>) => List<E>] =>
33
33
  };
34
34
 
35
35
  export const usePageList = <E>(...items: E[]): [PageList<E>, (e: List<E>) => PageList<E>] => {
36
- const [pages, setPages] = useState<List<E>>(toPageList<E>(items));
36
+ const [pages, setPages] = useState<PageList<E>>(toPageList<E>(items));
37
37
  return [
38
38
  pages,
39
39
  (e: List<E>): PageList<E> => {
@@ -43,6 +43,18 @@ export const usePageList = <E>(...items: E[]): [PageList<E>, (e: List<E>) => Pag
43
43
  ];
44
44
  };
45
45
 
46
+ export const usePaging = <E>(f: (options?: PageOptions) => Promise<PageList<E>>, options?: PageOptions): [PageList<E>, (options?: PageOptions) => Promise<PageList<E>>, boolean, number, number] => {
47
+ const [list, setList] = usePageList<E>();
48
+ const [skip, setSkip] = useState(options?.skip ?? 0);
49
+ const [take] = useState(options?.take ?? 5);
50
+ const next = (options: PageOptions = { skip, take }) =>
51
+ f(options).then(items => {
52
+ setSkip(skip + take);
53
+ return setList(toPageList(list.add(items), items));
54
+ });
55
+ return [list, next, list.length < (list?.total ?? 0), skip, take];
56
+ };
57
+
46
58
  export const useGet = <E>(f: () => Promise<E>): [E, () => Promise<E>] => {
47
59
  const [item, setItem] = useState({} as E);
48
60
  const getter = () =>