@redneckz/wildless-cms-uni-blocks 0.14.1064 → 0.14.1065

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +49 -27
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/RatesTable/RatesTable.d.ts +3 -0
  5. package/bundle/components/RatesTable/RatesTableContent.d.ts +13 -3
  6. package/bundle/components/RatesTable/RatesTableItem.d.ts +2 -2
  7. package/bundle/hooks/useRates.d.ts +11 -2
  8. package/dist/components/RatesTable/RatesTable.d.ts +3 -0
  9. package/dist/components/RatesTable/RatesTable.js +23 -5
  10. package/dist/components/RatesTable/RatesTable.js.map +1 -1
  11. package/dist/components/RatesTable/RatesTableContent.d.ts +13 -3
  12. package/dist/components/RatesTable/RatesTableItem.d.ts +2 -2
  13. package/dist/components/RatesTable/RatesTableItem.js.map +1 -1
  14. package/dist/hooks/useRates.d.ts +11 -2
  15. package/dist/hooks/useRates.js +28 -20
  16. package/dist/hooks/useRates.js.map +1 -1
  17. package/lib/components/RatesTable/RatesTable.d.ts +3 -0
  18. package/lib/components/RatesTable/RatesTable.fixture.d.ts +1 -1
  19. package/lib/components/RatesTable/RatesTable.fixture.mobile.d.ts +1 -1
  20. package/lib/components/RatesTable/RatesTable.js +23 -5
  21. package/lib/components/RatesTable/RatesTable.js.map +1 -1
  22. package/lib/components/RatesTable/RatesTableContent.d.ts +13 -3
  23. package/lib/components/RatesTable/RatesTableItem.d.ts +2 -2
  24. package/lib/components/RatesTable/RatesTableItem.js.map +1 -1
  25. package/lib/hooks/useRates.d.ts +11 -2
  26. package/lib/hooks/useRates.js +28 -20
  27. package/lib/hooks/useRates.js.map +1 -1
  28. package/mobile/bundle/bundle.umd.js +49 -27
  29. package/mobile/bundle/bundle.umd.min.js +1 -1
  30. package/mobile/bundle/components/RatesTable/RatesTable.d.ts +3 -0
  31. package/mobile/bundle/components/RatesTable/RatesTableContent.d.ts +13 -3
  32. package/mobile/bundle/components/RatesTable/RatesTableItem.d.ts +2 -2
  33. package/mobile/bundle/hooks/useRates.d.ts +11 -2
  34. package/mobile/dist/components/RatesTable/RatesTable.d.ts +3 -0
  35. package/mobile/dist/components/RatesTable/RatesTable.js +23 -5
  36. package/mobile/dist/components/RatesTable/RatesTable.js.map +1 -1
  37. package/mobile/dist/components/RatesTable/RatesTableContent.d.ts +13 -3
  38. package/mobile/dist/components/RatesTable/RatesTableItem.d.ts +2 -2
  39. package/mobile/dist/components/RatesTable/RatesTableItem.js.map +1 -1
  40. package/mobile/dist/hooks/useRates.d.ts +11 -2
  41. package/mobile/dist/hooks/useRates.js +28 -20
  42. package/mobile/dist/hooks/useRates.js.map +1 -1
  43. package/mobile/lib/components/RatesTable/RatesTable.d.ts +3 -0
  44. package/mobile/lib/components/RatesTable/RatesTable.js +23 -5
  45. package/mobile/lib/components/RatesTable/RatesTable.js.map +1 -1
  46. package/mobile/lib/components/RatesTable/RatesTableContent.d.ts +13 -3
  47. package/mobile/lib/components/RatesTable/RatesTableItem.d.ts +2 -2
  48. package/mobile/lib/components/RatesTable/RatesTableItem.js.map +1 -1
  49. package/mobile/lib/hooks/useRates.d.ts +11 -2
  50. package/mobile/lib/hooks/useRates.js +28 -20
  51. package/mobile/lib/hooks/useRates.js.map +1 -1
  52. package/mobile/src/components/RatesTable/RatesTable.example.json +5 -3
  53. package/mobile/src/components/RatesTable/RatesTable.tsx +71 -16
  54. package/mobile/src/components/RatesTable/RatesTableContent.ts +14 -3
  55. package/mobile/src/components/RatesTable/RatesTableItem.tsx +2 -1
  56. package/mobile/src/hooks/useRates.ts +46 -23
  57. package/package.json +1 -1
  58. package/src/components/RatesTable/RatesTable.example.json +5 -3
  59. package/src/components/RatesTable/RatesTable.fixture.mobile.tsx +10 -5
  60. package/src/components/RatesTable/RatesTable.fixture.tsx +10 -5
  61. package/src/components/RatesTable/RatesTable.tsx +71 -16
  62. package/src/components/RatesTable/RatesTableContent.ts +14 -3
  63. package/src/components/RatesTable/RatesTableItem.tsx +2 -1
  64. package/src/hooks/useRates.ts +46 -23
@@ -2,5 +2,8 @@ import { type UniBlockProps } from '../../UniBlock/UniBlockProps';
2
2
  import { type RatesTableContent } from './RatesTableContent';
3
3
  interface RatesTableProps extends RatesTableContent, UniBlockProps {
4
4
  }
5
+ export declare type ArchiveRates = {
6
+ isArchive?: boolean;
7
+ };
5
8
  export declare const RatesTable: import("@redneckz/uni-jsx").UNIComponent<RatesTableProps, any, any>;
6
9
  export {};
@@ -1,12 +1,22 @@
1
1
  import { type HrefProps } from '../../model/LinkProps';
2
2
  /**
3
- * @title Таблица курсов
3
+ * @title Тип курсов
4
+ * @default "Курсы для физ.лиц"
5
+ * @enumNames [
6
+ * "Курсы для физ.лиц",
7
+ * "Курсы для держателей карт"
8
+ * ]
9
+ */
10
+ export declare type RatesType = 'natural' | 'cards';
11
+ /**
12
+ * @title Кросс-курсы
4
13
  */
5
14
  export interface RatesTableContent extends HrefProps {
6
15
  /** @title Информационное сообщение */
7
16
  infoMessage?: string;
8
17
  /** @title Заголовок */
9
18
  title?: string;
10
- /** @hidden */
11
- isArchive?: boolean;
19
+ ratesType?: RatesType;
20
+ /** @title Сообщение при отсутствии ставок */
21
+ notFoundMessage?: string;
12
22
  }
@@ -1,9 +1,9 @@
1
1
  import { type RateItem } from '../../ui-kit/Rate/Rate';
2
+ import { type ArchiveRates } from './RatesTable';
2
3
  import { type RatesTableContent } from './RatesTableContent';
3
- interface RatesTableItemProps extends RatesTableContent {
4
+ export interface RatesTableItemProps extends RatesTableContent, ArchiveRates {
4
5
  maxDate?: string;
5
6
  isRatesValid?: boolean;
6
7
  list: RateItem[];
7
8
  }
8
9
  export declare const RatesTableItem: import("@redneckz/uni-jsx").UNIComponent<RatesTableItemProps, any, any>;
9
- export {};
@@ -1,4 +1,13 @@
1
+ import { type RatesType } from '../components/RatesTable/RatesTableContent';
1
2
  import { type RateItem } from '../ui-kit/Rate/Rate';
2
- declare type RateItemList = RateItem[];
3
- export declare function useRates(isArchive: boolean): RateItemList[];
3
+ export declare type RateItemList = RateItem[];
4
+ declare type FetchRatesProps = {
5
+ ratesType?: RatesType;
6
+ date?: Date;
7
+ fetchArchive?: boolean;
8
+ };
9
+ export declare function useRates({ ratesType, fetchArchive }: FetchRatesProps): {
10
+ ratesList: any;
11
+ isLoad: boolean;
12
+ };
4
13
  export {};
@@ -2,5 +2,8 @@ import { type UniBlockProps } from '../../UniBlock/UniBlockProps';
2
2
  import { type RatesTableContent } from './RatesTableContent';
3
3
  interface RatesTableProps extends RatesTableContent, UniBlockProps {
4
4
  }
5
+ export declare type ArchiveRates = {
6
+ isArchive?: boolean;
7
+ };
5
8
  export declare const RatesTable: import("@redneckz/uni-jsx").UNIComponent<RatesTableProps, any, any>;
6
9
  export {};
@@ -2,16 +2,34 @@ Object.defineProperty(exports, "__esModule", { value: true });
2
2
  exports.RatesTable = void 0;
3
3
  const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
4
  const uni_jsx_1 = require("@redneckz/uni-jsx");
5
+ const hooks_1 = require("@redneckz/uni-jsx/lib/hooks");
5
6
  const useRates_1 = require("../../hooks/useRates");
6
7
  const BlockWrapper_1 = require("../../ui-kit/BlockWrapper");
7
8
  const Heading_1 = require("../../ui-kit/Heading/Heading");
9
+ const Loader_1 = require("../../ui-kit/Loader/Loader");
10
+ const NotFound_1 = require("../../ui-kit/NotFound/NotFound");
8
11
  const style_1 = require("../../utils/style");
9
12
  const RatesTableItem_1 = require("./RatesTableItem");
10
- const renderDataPickForm_1 = require("./renderDataPickForm");
11
13
  const renderLink_1 = require("./renderLink");
12
- exports.RatesTable = (0, uni_jsx_1.JSX)(({ href, className = '', infoMessage, title, isArchive = false, ...rest }) => {
13
- const ratesList = (0, useRates_1.useRates)(isArchive);
14
- const isRatesValid = ratesList[0].length > 0;
15
- return ((0, jsx_runtime_1.jsxs)(BlockWrapper_1.BlockWrapper, { className: (0, style_1.style)('p-6xl space-y-xl', className), defaultPadding: "p-0", ...rest, children: [(0, jsx_runtime_1.jsx)(Heading_1.Heading, { className: "mb-xl", children: title }), isArchive ? (0, renderDataPickForm_1.renderDataPickForm)() : null, ratesList.map((list, i) => ((0, jsx_runtime_1.jsx)(RatesTableItem_1.RatesTableItem, { list: list, isRatesValid: isRatesValid, isArchive: isArchive, infoMessage: infoMessage }, String(i)))), href ? (0, renderLink_1.renderLink)(href) : null] }));
14
+ exports.RatesTable = (0, uni_jsx_1.JSX)(({ href, ratesType = 'natural', className = '', infoMessage, notFoundMessage, title, ...rest }) => {
15
+ // const [date, setDate] = useState<Date>();
16
+ const [fetchArchive, setFetchArchive] = (0, hooks_1.useState)(true);
17
+ //const isArchive = ratesType === 'archive';
18
+ const { ratesList, isLoad } = (0, useRates_1.useRates)({
19
+ ratesType,
20
+ fetchArchive,
21
+ });
22
+ (0, hooks_1.useEffect)(() => {
23
+ setFetchArchive(false);
24
+ }, []);
25
+ const isRatesValid = ratesList?.length > 0;
26
+ return ((0, jsx_runtime_1.jsxs)(BlockWrapper_1.BlockWrapper, { className: (0, style_1.style)('p-6xl space-y-xl', className), defaultPadding: "p-0", ...rest, children: [(0, jsx_runtime_1.jsx)(Heading_1.Heading, { className: "mb-xl", children: title }), isLoad ? (renderRatesContent({
27
+ ratesList,
28
+ isArchive: false,
29
+ infoMessage,
30
+ isRatesValid,
31
+ notFoundMessage,
32
+ })) : ((0, jsx_runtime_1.jsx)(Loader_1.Loader, { position: "static" })), href ? (0, renderLink_1.renderLink)(href) : null] }));
16
33
  });
34
+ const renderRatesContent = ({ ratesList = [], isArchive = false, infoMessage, isRatesValid, notFoundMessage, }) => ratesList.length > 0 ? (ratesList.map((list, i) => ((0, jsx_runtime_1.jsx)(RatesTableItem_1.RatesTableItem, { list: list, isRatesValid: isRatesValid, isArchive: isArchive, infoMessage: infoMessage }, String(i))))) : ((0, jsx_runtime_1.jsx)(NotFound_1.NotFound, { description: notFoundMessage }));
17
35
  //# sourceMappingURL=RatesTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RatesTable.js","sourceRoot":"","sources":["../../../src/components/RatesTable/RatesTable.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,mDAAgD;AAChD,4DAAyD;AACzD,0DAAuD;AAEvD,6CAA0C;AAE1C,qDAAkD;AAClD,6DAA0D;AAC1D,6CAA0C;AAI7B,QAAA,UAAU,GAAG,IAAA,aAAG,EAC3B,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC3E,MAAM,SAAS,GAAG,IAAA,mBAAQ,EAAC,SAAS,CAAC,CAAC;IAEtC,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAE7C,OAAO,CACL,wBAAC,2BAAY,IAAC,SAAS,EAAE,IAAA,aAAK,EAAC,kBAAkB,EAAE,SAAS,CAAC,EAAE,cAAc,EAAC,KAAK,KAAK,IAAI,aAC1F,uBAAC,iBAAO,IAAC,SAAS,EAAC,OAAO,YAAE,KAAK,GAAW,EAC3C,SAAS,CAAC,CAAC,CAAC,IAAA,uCAAkB,GAAE,CAAC,CAAC,CAAC,IAAI,EACvC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC1B,uBAAC,+BAAc,IACb,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EAEpB,WAAW,EAAE,WAAW,IADnB,MAAM,CAAC,CAAC,CAAC,CAEd,CACH,CAAC,EAED,IAAI,CAAC,CAAC,CAAC,IAAA,uBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAClB,CAChB,CAAC;AACJ,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"RatesTable.js","sourceRoot":"","sources":["../../../src/components/RatesTable/RatesTable.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,uDAAkE;AAClE,mDAAmE;AACnE,4DAAyD;AACzD,0DAAuD;AACvD,uDAAoD;AACpD,6DAA0D;AAE1D,6CAA0C;AAE1C,qDAAkD;AAClD,6CAA0C;AAa7B,QAAA,UAAU,GAAG,IAAA,aAAG,EAC3B,CAAC,EACC,IAAI,EACJ,SAAS,GAAG,SAAS,EACrB,SAAS,GAAG,EAAE,EACd,WAAW,EACX,eAAe,EACf,KAAK,EACL,GAAG,IAAI,EACR,EAAE,EAAE;IACH,4CAA4C;IAC5C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAU,IAAI,CAAC,CAAC;IAEhE,4CAA4C;IAE5C,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAA,mBAAQ,EAAC;QACrC,SAAS;QACT,YAAY;KACb,CAAC,CAAC;IAEH,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,eAAe,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,YAAY,GAAG,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC;IAE3C,OAAO,CACL,wBAAC,2BAAY,IAAC,SAAS,EAAE,IAAA,aAAK,EAAC,kBAAkB,EAAE,SAAS,CAAC,EAAE,cAAc,EAAC,KAAK,KAAK,IAAI,aAC1F,uBAAC,iBAAO,IAAC,SAAS,EAAC,OAAO,YAAE,KAAK,GAAW,EAI3C,MAAM,CAAC,CAAC,CAAC,CACR,kBAAkB,CAAC;gBACjB,SAAS;gBACT,SAAS,EAAE,KAAK;gBAChB,WAAW;gBACX,YAAY;gBACZ,eAAe;aAChB,CAAC,CACH,CAAC,CAAC,CAAC,CACF,uBAAC,eAAM,IAAC,QAAQ,EAAC,QAAQ,GAAG,CAC7B,EACA,IAAI,CAAC,CAAC,CAAC,IAAA,uBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAClB,CAChB,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,EAC1B,SAAS,GAAG,EAAE,EACd,SAAS,GAAG,KAAK,EACjB,WAAW,EACX,YAAY,EACZ,eAAe,GACI,EAAE,EAAE,CACvB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACrB,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACzB,uBAAC,+BAAc,IACb,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EAEpB,WAAW,EAAE,WAAW,IADnB,MAAM,CAAC,CAAC,CAAC,CAEd,CACH,CAAC,CACH,CAAC,CAAC,CAAC,CACF,uBAAC,mBAAQ,IAAC,WAAW,EAAE,eAAe,GAAI,CAC3C,CAAC"}
@@ -1,12 +1,22 @@
1
1
  import { type HrefProps } from '../../model/LinkProps';
2
2
  /**
3
- * @title Таблица курсов
3
+ * @title Тип курсов
4
+ * @default "Курсы для физ.лиц"
5
+ * @enumNames [
6
+ * "Курсы для физ.лиц",
7
+ * "Курсы для держателей карт"
8
+ * ]
9
+ */
10
+ export declare type RatesType = 'natural' | 'cards';
11
+ /**
12
+ * @title Кросс-курсы
4
13
  */
5
14
  export interface RatesTableContent extends HrefProps {
6
15
  /** @title Информационное сообщение */
7
16
  infoMessage?: string;
8
17
  /** @title Заголовок */
9
18
  title?: string;
10
- /** @hidden */
11
- isArchive?: boolean;
19
+ ratesType?: RatesType;
20
+ /** @title Сообщение при отсутствии ставок */
21
+ notFoundMessage?: string;
12
22
  }
@@ -1,9 +1,9 @@
1
1
  import { type RateItem } from '../../ui-kit/Rate/Rate';
2
+ import { type ArchiveRates } from './RatesTable';
2
3
  import { type RatesTableContent } from './RatesTableContent';
3
- interface RatesTableItemProps extends RatesTableContent {
4
+ export interface RatesTableItemProps extends RatesTableContent, ArchiveRates {
4
5
  maxDate?: string;
5
6
  isRatesValid?: boolean;
6
7
  list: RateItem[];
7
8
  }
8
9
  export declare const RatesTableItem: import("@redneckz/uni-jsx").UNIComponent<RatesTableItemProps, any, any>;
9
- export {};
@@ -1 +1 @@
1
- {"version":3,"file":"RatesTableItem.js","sourceRoot":"","sources":["../../../src/components/RatesTable/RatesTableItem.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,gEAA6D;AAC7D,iDAAiF;AACjF,iDAA8C;AAC9C,6CAA0C;AAE1C,6CAA0C;AAQ7B,QAAA,cAAc,GAAG,IAAA,aAAG,EAC/B,CAAC,EAAE,SAAS,GAAG,KAAK,EAAE,YAAY,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IAC9D,MAAM,OAAO,GAAG,YAAY;QAC1B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,CACL,iCAAK,SAAS,EAAC,mBAAmB,aAC/B,OAAO,IAAI,IAAA,uBAAU,EAAC,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAC1D,iCAAK,SAAS,EAAE,IAAA,aAAK,EAAC,yBAAkB,CAAC,aACvC,uBAAC,WAAI,IAAC,IAAI,EAAC,aAAa,qDAAc,EACtC,uBAAC,WAAI,IAAC,IAAI,EAAC,aAAa,2DAAe,EACvC,uBAAC,WAAI,IAAC,IAAI,EAAC,aAAa,2DAAe,IACnC,EACL,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACjB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,uBAAC,WAAI,OAAqB,IAAI,IAAnB,MAAM,CAAC,CAAC,CAAC,CAAc,CAAC,CAC1D,CAAC,CAAC,CAAC,CACF,uBAAC,qBAAS,mJAAoC,CAC/C,EAED,uBAAC,qBAAS,IAAC,KAAK,EAAC,qBAAqB,YAAE,WAAW,GAAa,IAC5D,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"RatesTableItem.js","sourceRoot":"","sources":["../../../src/components/RatesTable/RatesTableItem.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,gEAA6D;AAC7D,iDAAiF;AACjF,iDAA8C;AAC9C,6CAA0C;AAG1C,6CAA0C;AAQ7B,QAAA,cAAc,GAAG,IAAA,aAAG,EAC/B,CAAC,EAAE,SAAS,GAAG,KAAK,EAAE,YAAY,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IAC9D,MAAM,OAAO,GAAG,YAAY;QAC1B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,CACL,iCAAK,SAAS,EAAC,mBAAmB,aAC/B,OAAO,IAAI,IAAA,uBAAU,EAAC,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAC1D,iCAAK,SAAS,EAAE,IAAA,aAAK,EAAC,yBAAkB,CAAC,aACvC,uBAAC,WAAI,IAAC,IAAI,EAAC,aAAa,qDAAc,EACtC,uBAAC,WAAI,IAAC,IAAI,EAAC,aAAa,2DAAe,EACvC,uBAAC,WAAI,IAAC,IAAI,EAAC,aAAa,2DAAe,IACnC,EACL,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACjB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,uBAAC,WAAI,OAAqB,IAAI,IAAnB,MAAM,CAAC,CAAC,CAAC,CAAc,CAAC,CAC1D,CAAC,CAAC,CAAC,CACF,uBAAC,qBAAS,mJAAoC,CAC/C,EAED,uBAAC,qBAAS,IAAC,KAAK,EAAC,qBAAqB,YAAE,WAAW,GAAa,IAC5D,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -1,4 +1,13 @@
1
+ import { type RatesType } from '../components/RatesTable/RatesTableContent';
1
2
  import { type RateItem } from '../ui-kit/Rate/Rate';
2
- declare type RateItemList = RateItem[];
3
- export declare function useRates(isArchive: boolean): RateItemList[];
3
+ export declare type RateItemList = RateItem[];
4
+ declare type FetchRatesProps = {
5
+ ratesType?: RatesType;
6
+ date?: Date;
7
+ fetchArchive?: boolean;
8
+ };
9
+ export declare function useRates({ ratesType, fetchArchive }: FetchRatesProps): {
10
+ ratesList: any;
11
+ isLoad: boolean;
12
+ };
4
13
  export {};
@@ -4,39 +4,47 @@ const useAsyncData_1 = require("@redneckz/uni-jsx/lib/hooks/useAsyncData");
4
4
  const useLocalStore_1 = require("@redneckz/uni-jsx/lib/Store/useLocalStore");
5
5
  const apiBaseUrl_1 = require("../api/apiBaseUrl");
6
6
  const fetchJSON_1 = require("../utils/fetchJSON");
7
- const RATES_URL = `${apiBaseUrl_1.API_BASE_URI}/rates`;
8
- const ARCHIVE_RATES_URL = `${apiBaseUrl_1.API_BASE_URI}/historyrates`;
9
- const EMPTY_RATES = [
10
- [
11
- {
12
- currencyPair: 'Валютная пара',
13
- buyRate: 0,
14
- sellRate: 0,
15
- },
16
- ],
17
- ];
18
- function useRates(isArchive) {
19
- const url = isArchive ? ARCHIVE_RATES_URL : RATES_URL;
20
- const rateKey = isArchive ? 'archiveRates' : 'rates';
7
+ const EMPTY_RATES = [];
8
+ const RATES_URL = {
9
+ natural: `${apiBaseUrl_1.API_BASE_URI}/rates`,
10
+ cards: `${apiBaseUrl_1.API_BASE_URI}/ratescards`,
11
+ //archive: `${API_BASE_URI}/historyrates`,
12
+ };
13
+ const RATES_KEY = {
14
+ natural: 'rates',
15
+ cards: 'ratescards',
16
+ //archive: 'historyrates',
17
+ };
18
+ // TODO: для архива прокинуть date
19
+ function useRates({ ratesType = 'natural', fetchArchive = true }) {
20
+ //const url = ratesType === 'archive' ? getArchiveRatesURL(date) : RATES_URL[ratesType];
21
+ const url = RATES_URL[ratesType];
22
+ const rateKey = RATES_KEY[ratesType];
21
23
  const ratesStore = (0, useLocalStore_1.useLocalStore)();
22
24
  // проверяем, надо ли обновлять значения ставок
23
- const shouldUpdate = getShouldUpdate(isArchive, ratesStore);
25
+ const shouldUpdate = getShouldUpdate(rateKey, ratesStore, fetchArchive);
24
26
  // костыль, не отправлять запрос на бэк, если уже был запрос менее 15 мин назад
25
27
  const { data } = (0, useAsyncData_1.useAsyncData)(shouldUpdate ? url : '', fetchJSON_1.fetchJSONUnsafe);
26
28
  // если есть data и значение надо обновить, то обновляем локалсторадж
27
29
  if (shouldUpdate && data) {
28
30
  const nextUpdate = getTimeAfter15Minutes();
29
- ratesStore[rateKey] = { rate: data, nextUpdate };
31
+ ratesStore[rateKey] = { rate: data ?? [], nextUpdate };
30
32
  }
31
33
  // берем данные из локалсторадж
32
34
  const rates = ratesStore[rateKey]?.rate;
35
+ const isLoad = Array.isArray(rates);
33
36
  // возвращаем данные из локалсторадж или заглушку
34
- return Array.isArray(rates) ? rates : EMPTY_RATES;
37
+ return { ratesList: rates ?? EMPTY_RATES, isLoad };
35
38
  }
36
39
  exports.useRates = useRates;
37
40
  // Отсчитываем 15 минут с текущего момента
38
41
  const getTimeAfter15Minutes = () => Date.now() + 15 * 60 * 1000;
39
- const getShouldUpdate = (isArchive, ratesStore) => isArchive
40
- ? !ratesStore?.archiveRates || ratesStore?.archiveRates.nextUpdate <= Date.now()
41
- : !ratesStore?.rates || ratesStore?.rates.nextUpdate <= Date.now();
42
+ const getShouldUpdate = (rateKey, ratesStore, fetchArchive) => rateKey === 'archive'
43
+ ? (!ratesStore?.[rateKey] || ratesStore?.[rateKey].nextUpdate <= Date.now()) && fetchArchive
44
+ : !ratesStore?.[rateKey] || ratesStore?.[rateKey].nextUpdate <= Date.now();
45
+ /*const getArchiveRatesURL = (date?: Date) => {
46
+ const formattedDate = date && formatDate(date, true);
47
+
48
+ return formattedDate ? `${RATES_URL['archive']}?date=${formattedDate}` : RATES_URL['archive'];
49
+ };*/
42
50
  //# sourceMappingURL=useRates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRates.js","sourceRoot":"","sources":["../../src/hooks/useRates.ts"],"names":[],"mappings":";;AAAA,2EAAwE;AACxE,6EAA0E;AAC1E,kDAAiD;AAEjD,kDAA+E;AAc/E,MAAM,SAAS,GAAG,GAAG,yBAAY,QAAQ,CAAC;AAC1C,MAAM,iBAAiB,GAAG,GAAG,yBAAY,eAAe,CAAC;AACzD,MAAM,WAAW,GAAmB;IAClC;QACE;YACE,YAAY,EAAE,eAAe;YAC7B,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,CAAC;SACZ;KACF;CACF,CAAC;AAEF,SAAgB,QAAQ,CAAC,SAAkB;IACzC,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;IACtD,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;IAErD,MAAM,UAAU,GAAG,IAAA,6BAAa,GAAmB,CAAC;IAEpD,+CAA+C;IAC/C,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,EAAE,UAA6B,CAAC,CAAC;IAE/E,+EAA+E;IAC/E,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,2BAAY,EAC3B,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EACvB,2BAAsD,CACvD,CAAC;IAEF,qEAAqE;IACrE,IAAI,YAAY,IAAI,IAAI,EAAE;QACxB,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;QAC3C,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;KAClD;IAED,+BAA+B;IAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IAExC,iDAAiD;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;AACpD,CAAC;AA1BD,4BA0BC;AAED,0CAA0C;AAC1C,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhE,MAAM,eAAe,GAAG,CAAC,SAAkB,EAAE,UAAkC,EAAE,EAAE,CACjF,SAAS;IACP,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,IAAI,UAAU,EAAE,YAAY,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE;IAChF,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,IAAI,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"useRates.js","sourceRoot":"","sources":["../../src/hooks/useRates.ts"],"names":[],"mappings":";;AAAA,2EAAwE;AACxE,6EAA0E;AAC1E,kDAAiD;AAGjD,kDAA+E;AAoB/E,MAAM,WAAW,GAAmB,EAAE,CAAC;AAEvC,MAAM,SAAS,GAA8B;IAC3C,OAAO,EAAE,GAAG,yBAAY,QAAQ;IAChC,KAAK,EAAE,GAAG,yBAAY,aAAa;IACnC,0CAA0C;CAC3C,CAAC;AAEF,MAAM,SAAS,GAA8B;IAC3C,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,YAAY;IACnB,0BAA0B;CAC3B,CAAC;AAEF,kCAAkC;AAClC,SAAgB,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,YAAY,GAAG,IAAI,EAAmB;IACtF,wFAAwF;IACxF,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAErC,MAAM,UAAU,GAAG,IAAA,6BAAa,GAAmB,CAAC;IAEpD,+CAA+C;IAC/C,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,EAAE,UAA6B,EAAE,YAAY,CAAC,CAAC;IAE3F,+EAA+E;IAC/E,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,2BAAY,EAC3B,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EACvB,2BAAsD,CACvD,CAAC;IAEF,qEAAqE;IACrE,IAAI,YAAY,IAAI,IAAI,EAAE;QACxB,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;QAC3C,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC;KACxD;IAED,+BAA+B;IAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IAExC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEpC,iDAAiD;IACjD,OAAO,EAAE,SAAS,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,EAAE,CAAC;AACrD,CAAC;AA7BD,4BA6BC;AAED,0CAA0C;AAC1C,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhE,MAAM,eAAe,GAAG,CACtB,OAAe,EACf,UAAkC,EAClC,YAAqB,EACrB,EAAE,CACF,OAAO,KAAK,SAAS;IACnB,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,YAAY;IAC5F,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AAE/E;;;;IAII"}
@@ -2,5 +2,8 @@ import { type UniBlockProps } from '../../UniBlock/UniBlockProps';
2
2
  import { type RatesTableContent } from './RatesTableContent';
3
3
  interface RatesTableProps extends RatesTableContent, UniBlockProps {
4
4
  }
5
+ export declare type ArchiveRates = {
6
+ isArchive?: boolean;
7
+ };
5
8
  export declare const RatesTable: import("@redneckz/uni-jsx").UNIComponent<RatesTableProps, any, any>;
6
9
  export {};
@@ -1,6 +1,6 @@
1
1
  import '../../setup-fixture';
2
2
  declare const _default: {
3
3
  default: any;
4
- archive: any;
4
+ cards: any;
5
5
  };
6
6
  export default _default;
@@ -1,6 +1,6 @@
1
1
  import '../../setup-fixture';
2
2
  declare const _default: {
3
3
  default: any;
4
- archive: any;
4
+ cards: any;
5
5
  };
6
6
  export default _default;
@@ -1,15 +1,33 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
+ import { useEffect, useState } from '@redneckz/uni-jsx/lib/hooks';
3
4
  import { useRates } from '../../hooks/useRates.js';
4
5
  import { BlockWrapper } from '../../ui-kit/BlockWrapper.js';
5
6
  import { Heading } from '../../ui-kit/Heading/Heading.js';
7
+ import { Loader } from '../../ui-kit/Loader/Loader.js';
8
+ import { NotFound } from '../../ui-kit/NotFound/NotFound.js';
6
9
  import { style } from '../../utils/style.js';
7
10
  import { RatesTableItem } from './RatesTableItem.js';
8
- import { renderDataPickForm } from './renderDataPickForm.js';
9
11
  import { renderLink } from './renderLink.js';
10
- export const RatesTable = JSX(({ href, className = '', infoMessage, title, isArchive = false, ...rest }) => {
11
- const ratesList = useRates(isArchive);
12
- const isRatesValid = ratesList[0].length > 0;
13
- return (_jsxs(BlockWrapper, { className: style('p-6xl space-y-xl', className), defaultPadding: "p-0", ...rest, children: [_jsx(Heading, { className: "mb-xl", children: title }), isArchive ? renderDataPickForm() : null, ratesList.map((list, i) => (_jsx(RatesTableItem, { list: list, isRatesValid: isRatesValid, isArchive: isArchive, infoMessage: infoMessage }, String(i)))), href ? renderLink(href) : null] }));
12
+ export const RatesTable = JSX(({ href, ratesType = 'natural', className = '', infoMessage, notFoundMessage, title, ...rest }) => {
13
+ // const [date, setDate] = useState<Date>();
14
+ const [fetchArchive, setFetchArchive] = useState(true);
15
+ //const isArchive = ratesType === 'archive';
16
+ const { ratesList, isLoad } = useRates({
17
+ ratesType,
18
+ fetchArchive,
19
+ });
20
+ useEffect(() => {
21
+ setFetchArchive(false);
22
+ }, []);
23
+ const isRatesValid = ratesList?.length > 0;
24
+ return (_jsxs(BlockWrapper, { className: style('p-6xl space-y-xl', className), defaultPadding: "p-0", ...rest, children: [_jsx(Heading, { className: "mb-xl", children: title }), isLoad ? (renderRatesContent({
25
+ ratesList,
26
+ isArchive: false,
27
+ infoMessage,
28
+ isRatesValid,
29
+ notFoundMessage,
30
+ })) : (_jsx(Loader, { position: "static" })), href ? renderLink(href) : null] }));
14
31
  });
32
+ const renderRatesContent = ({ ratesList = [], isArchive = false, infoMessage, isRatesValid, notFoundMessage, }) => ratesList.length > 0 ? (ratesList.map((list, i) => (_jsx(RatesTableItem, { list: list, isRatesValid: isRatesValid, isArchive: isArchive, infoMessage: infoMessage }, String(i))))) : (_jsx(NotFound, { description: notFoundMessage }));
15
33
  //# sourceMappingURL=RatesTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RatesTable.js","sourceRoot":"","sources":["../../../src/components/RatesTable/RatesTable.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAC3B,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC3E,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAEtC,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAE7C,OAAO,CACL,MAAC,YAAY,IAAC,SAAS,EAAE,KAAK,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAAE,cAAc,EAAC,KAAK,KAAK,IAAI,aAC1F,KAAC,OAAO,IAAC,SAAS,EAAC,OAAO,YAAE,KAAK,GAAW,EAC3C,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,EACvC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC1B,KAAC,cAAc,IACb,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EAEpB,WAAW,EAAE,WAAW,IADnB,MAAM,CAAC,CAAC,CAAC,CAEd,CACH,CAAC,EAED,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAClB,CAChB,CAAC;AACJ,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"RatesTable.js","sourceRoot":"","sources":["../../../src/components/RatesTable/RatesTable.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAqB,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1D,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAa1C,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAC3B,CAAC,EACC,IAAI,EACJ,SAAS,GAAG,SAAS,EACrB,SAAS,GAAG,EAAE,EACd,WAAW,EACX,eAAe,EACf,KAAK,EACL,GAAG,IAAI,EACR,EAAE,EAAE;IACH,4CAA4C;IAC5C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAU,IAAI,CAAC,CAAC;IAEhE,4CAA4C;IAE5C,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;QACrC,SAAS;QACT,YAAY;KACb,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,YAAY,GAAG,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC;IAE3C,OAAO,CACL,MAAC,YAAY,IAAC,SAAS,EAAE,KAAK,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAAE,cAAc,EAAC,KAAK,KAAK,IAAI,aAC1F,KAAC,OAAO,IAAC,SAAS,EAAC,OAAO,YAAE,KAAK,GAAW,EAI3C,MAAM,CAAC,CAAC,CAAC,CACR,kBAAkB,CAAC;gBACjB,SAAS;gBACT,SAAS,EAAE,KAAK;gBAChB,WAAW;gBACX,YAAY;gBACZ,eAAe;aAChB,CAAC,CACH,CAAC,CAAC,CAAC,CACF,KAAC,MAAM,IAAC,QAAQ,EAAC,QAAQ,GAAG,CAC7B,EACA,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAClB,CAChB,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,EAC1B,SAAS,GAAG,EAAE,EACd,SAAS,GAAG,KAAK,EACjB,WAAW,EACX,YAAY,EACZ,eAAe,GACI,EAAE,EAAE,CACvB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACrB,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACzB,KAAC,cAAc,IACb,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EAEpB,WAAW,EAAE,WAAW,IADnB,MAAM,CAAC,CAAC,CAAC,CAEd,CACH,CAAC,CACH,CAAC,CAAC,CAAC,CACF,KAAC,QAAQ,IAAC,WAAW,EAAE,eAAe,GAAI,CAC3C,CAAC"}
@@ -1,12 +1,22 @@
1
1
  import { type HrefProps } from '../../model/LinkProps';
2
2
  /**
3
- * @title Таблица курсов
3
+ * @title Тип курсов
4
+ * @default "Курсы для физ.лиц"
5
+ * @enumNames [
6
+ * "Курсы для физ.лиц",
7
+ * "Курсы для держателей карт"
8
+ * ]
9
+ */
10
+ export declare type RatesType = 'natural' | 'cards';
11
+ /**
12
+ * @title Кросс-курсы
4
13
  */
5
14
  export interface RatesTableContent extends HrefProps {
6
15
  /** @title Информационное сообщение */
7
16
  infoMessage?: string;
8
17
  /** @title Заголовок */
9
18
  title?: string;
10
- /** @hidden */
11
- isArchive?: boolean;
19
+ ratesType?: RatesType;
20
+ /** @title Сообщение при отсутствии ставок */
21
+ notFoundMessage?: string;
12
22
  }
@@ -1,9 +1,9 @@
1
1
  import { type RateItem } from '../../ui-kit/Rate/Rate';
2
+ import { type ArchiveRates } from './RatesTable';
2
3
  import { type RatesTableContent } from './RatesTableContent';
3
- interface RatesTableItemProps extends RatesTableContent {
4
+ export interface RatesTableItemProps extends RatesTableContent, ArchiveRates {
4
5
  maxDate?: string;
5
6
  isRatesValid?: boolean;
6
7
  list: RateItem[];
7
8
  }
8
9
  export declare const RatesTableItem: import("@redneckz/uni-jsx").UNIComponent<RatesTableItemProps, any, any>;
9
- export {};
@@ -1 +1 @@
1
- {"version":3,"file":"RatesTableItem.js","sourceRoot":"","sources":["../../../src/components/RatesTable/RatesTableItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAiB,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAC/B,CAAC,EAAE,SAAS,GAAG,KAAK,EAAE,YAAY,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IAC9D,MAAM,OAAO,GAAG,YAAY;QAC1B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,CACL,eAAK,SAAS,EAAC,mBAAmB,aAC/B,OAAO,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAC1D,eAAK,SAAS,EAAE,KAAK,CAAC,kBAAkB,CAAC,aACvC,KAAC,IAAI,IAAC,IAAI,EAAC,aAAa,qDAAc,EACtC,KAAC,IAAI,IAAC,IAAI,EAAC,aAAa,2DAAe,EACvC,KAAC,IAAI,IAAC,IAAI,EAAC,aAAa,2DAAe,IACnC,EACL,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACjB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,KAAC,IAAI,OAAqB,IAAI,IAAnB,MAAM,CAAC,CAAC,CAAC,CAAc,CAAC,CAC1D,CAAC,CAAC,CAAC,CACF,KAAC,SAAS,mJAAoC,CAC/C,EAED,KAAC,SAAS,IAAC,KAAK,EAAC,qBAAqB,YAAE,WAAW,GAAa,IAC5D,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"RatesTableItem.js","sourceRoot":"","sources":["../../../src/components/RatesTable/RatesTableItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAiB,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAC/B,CAAC,EAAE,SAAS,GAAG,KAAK,EAAE,YAAY,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IAC9D,MAAM,OAAO,GAAG,YAAY;QAC1B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,CACL,eAAK,SAAS,EAAC,mBAAmB,aAC/B,OAAO,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAC1D,eAAK,SAAS,EAAE,KAAK,CAAC,kBAAkB,CAAC,aACvC,KAAC,IAAI,IAAC,IAAI,EAAC,aAAa,qDAAc,EACtC,KAAC,IAAI,IAAC,IAAI,EAAC,aAAa,2DAAe,EACvC,KAAC,IAAI,IAAC,IAAI,EAAC,aAAa,2DAAe,IACnC,EACL,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACjB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,KAAC,IAAI,OAAqB,IAAI,IAAnB,MAAM,CAAC,CAAC,CAAC,CAAc,CAAC,CAC1D,CAAC,CAAC,CAAC,CACF,KAAC,SAAS,mJAAoC,CAC/C,EAED,KAAC,SAAS,IAAC,KAAK,EAAC,qBAAqB,YAAE,WAAW,GAAa,IAC5D,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -1,4 +1,13 @@
1
+ import { type RatesType } from '../components/RatesTable/RatesTableContent';
1
2
  import { type RateItem } from '../ui-kit/Rate/Rate';
2
- declare type RateItemList = RateItem[];
3
- export declare function useRates(isArchive: boolean): RateItemList[];
3
+ export declare type RateItemList = RateItem[];
4
+ declare type FetchRatesProps = {
5
+ ratesType?: RatesType;
6
+ date?: Date;
7
+ fetchArchive?: boolean;
8
+ };
9
+ export declare function useRates({ ratesType, fetchArchive }: FetchRatesProps): {
10
+ ratesList: any;
11
+ isLoad: boolean;
12
+ };
4
13
  export {};
@@ -2,38 +2,46 @@ import { useAsyncData } from '@redneckz/uni-jsx/lib/hooks/useAsyncData';
2
2
  import { useLocalStore } from '@redneckz/uni-jsx/lib/Store/useLocalStore';
3
3
  import { API_BASE_URI } from '../api/apiBaseUrl.js';
4
4
  import { fetchJSONUnsafe } from '../utils/fetchJSON.js';
5
- const RATES_URL = `${API_BASE_URI}/rates`;
6
- const ARCHIVE_RATES_URL = `${API_BASE_URI}/historyrates`;
7
- const EMPTY_RATES = [
8
- [
9
- {
10
- currencyPair: 'Валютная пара',
11
- buyRate: 0,
12
- sellRate: 0,
13
- },
14
- ],
15
- ];
16
- export function useRates(isArchive) {
17
- const url = isArchive ? ARCHIVE_RATES_URL : RATES_URL;
18
- const rateKey = isArchive ? 'archiveRates' : 'rates';
5
+ const EMPTY_RATES = [];
6
+ const RATES_URL = {
7
+ natural: `${API_BASE_URI}/rates`,
8
+ cards: `${API_BASE_URI}/ratescards`,
9
+ //archive: `${API_BASE_URI}/historyrates`,
10
+ };
11
+ const RATES_KEY = {
12
+ natural: 'rates',
13
+ cards: 'ratescards',
14
+ //archive: 'historyrates',
15
+ };
16
+ // TODO: для архива прокинуть date
17
+ export function useRates({ ratesType = 'natural', fetchArchive = true }) {
18
+ //const url = ratesType === 'archive' ? getArchiveRatesURL(date) : RATES_URL[ratesType];
19
+ const url = RATES_URL[ratesType];
20
+ const rateKey = RATES_KEY[ratesType];
19
21
  const ratesStore = useLocalStore();
20
22
  // проверяем, надо ли обновлять значения ставок
21
- const shouldUpdate = getShouldUpdate(isArchive, ratesStore);
23
+ const shouldUpdate = getShouldUpdate(rateKey, ratesStore, fetchArchive);
22
24
  // костыль, не отправлять запрос на бэк, если уже был запрос менее 15 мин назад
23
25
  const { data } = useAsyncData(shouldUpdate ? url : '', fetchJSONUnsafe);
24
26
  // если есть data и значение надо обновить, то обновляем локалсторадж
25
27
  if (shouldUpdate && data) {
26
28
  const nextUpdate = getTimeAfter15Minutes();
27
- ratesStore[rateKey] = { rate: data, nextUpdate };
29
+ ratesStore[rateKey] = { rate: data ?? [], nextUpdate };
28
30
  }
29
31
  // берем данные из локалсторадж
30
32
  const rates = ratesStore[rateKey]?.rate;
33
+ const isLoad = Array.isArray(rates);
31
34
  // возвращаем данные из локалсторадж или заглушку
32
- return Array.isArray(rates) ? rates : EMPTY_RATES;
35
+ return { ratesList: rates ?? EMPTY_RATES, isLoad };
33
36
  }
34
37
  // Отсчитываем 15 минут с текущего момента
35
38
  const getTimeAfter15Minutes = () => Date.now() + 15 * 60 * 1000;
36
- const getShouldUpdate = (isArchive, ratesStore) => isArchive
37
- ? !ratesStore?.archiveRates || ratesStore?.archiveRates.nextUpdate <= Date.now()
38
- : !ratesStore?.rates || ratesStore?.rates.nextUpdate <= Date.now();
39
+ const getShouldUpdate = (rateKey, ratesStore, fetchArchive) => rateKey === 'archive'
40
+ ? (!ratesStore?.[rateKey] || ratesStore?.[rateKey].nextUpdate <= Date.now()) && fetchArchive
41
+ : !ratesStore?.[rateKey] || ratesStore?.[rateKey].nextUpdate <= Date.now();
42
+ /*const getArchiveRatesURL = (date?: Date) => {
43
+ const formattedDate = date && formatDate(date, true);
44
+
45
+ return formattedDate ? `${RATES_URL['archive']}?date=${formattedDate}` : RATES_URL['archive'];
46
+ };*/
39
47
  //# sourceMappingURL=useRates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRates.js","sourceRoot":"","sources":["../../src/hooks/useRates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAA4B,MAAM,oBAAoB,CAAC;AAc/E,MAAM,SAAS,GAAG,GAAG,YAAY,QAAQ,CAAC;AAC1C,MAAM,iBAAiB,GAAG,GAAG,YAAY,eAAe,CAAC;AACzD,MAAM,WAAW,GAAmB;IAClC;QACE;YACE,YAAY,EAAE,eAAe;YAC7B,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,CAAC;SACZ;KACF;CACF,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,SAAkB;IACzC,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;IACtD,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;IAErD,MAAM,UAAU,GAAG,aAAa,EAAmB,CAAC;IAEpD,+CAA+C;IAC/C,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,EAAE,UAA6B,CAAC,CAAC;IAE/E,+EAA+E;IAC/E,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,CAC3B,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EACvB,eAAsD,CACvD,CAAC;IAEF,qEAAqE;IACrE,IAAI,YAAY,IAAI,IAAI,EAAE;QACxB,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;QAC3C,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;KAClD;IAED,+BAA+B;IAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IAExC,iDAAiD;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;AACpD,CAAC;AAED,0CAA0C;AAC1C,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhE,MAAM,eAAe,GAAG,CAAC,SAAkB,EAAE,UAAkC,EAAE,EAAE,CACjF,SAAS;IACP,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,IAAI,UAAU,EAAE,YAAY,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE;IAChF,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,IAAI,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"useRates.js","sourceRoot":"","sources":["../../src/hooks/useRates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,eAAe,EAA4B,MAAM,oBAAoB,CAAC;AAoB/E,MAAM,WAAW,GAAmB,EAAE,CAAC;AAEvC,MAAM,SAAS,GAA8B;IAC3C,OAAO,EAAE,GAAG,YAAY,QAAQ;IAChC,KAAK,EAAE,GAAG,YAAY,aAAa;IACnC,0CAA0C;CAC3C,CAAC;AAEF,MAAM,SAAS,GAA8B;IAC3C,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,YAAY;IACnB,0BAA0B;CAC3B,CAAC;AAEF,kCAAkC;AAClC,MAAM,UAAU,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,YAAY,GAAG,IAAI,EAAmB;IACtF,wFAAwF;IACxF,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAErC,MAAM,UAAU,GAAG,aAAa,EAAmB,CAAC;IAEpD,+CAA+C;IAC/C,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,EAAE,UAA6B,EAAE,YAAY,CAAC,CAAC;IAE3F,+EAA+E;IAC/E,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,CAC3B,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EACvB,eAAsD,CACvD,CAAC;IAEF,qEAAqE;IACrE,IAAI,YAAY,IAAI,IAAI,EAAE;QACxB,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;QAC3C,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC;KACxD;IAED,+BAA+B;IAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IAExC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEpC,iDAAiD;IACjD,OAAO,EAAE,SAAS,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,EAAE,CAAC;AACrD,CAAC;AAED,0CAA0C;AAC1C,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhE,MAAM,eAAe,GAAG,CACtB,OAAe,EACf,UAAkC,EAClC,YAAqB,EACrB,EAAE,CACF,OAAO,KAAK,SAAS;IACnB,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,YAAY;IAC5F,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AAE/E;;;;IAII"}