@m4l/core 0.1.21 → 0.1.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export * from './contexts';
2
2
  export * from './hooks';
3
- export { EmitEvents } from './types';
3
+ export { EmitEvents, CommonFlags } from './types';
4
4
  export type { Maybe, HostToolsType, NetworkProps, EnvironmentType, AxiosOperation, EventFunListener, MicrofrontendParms, } from './types';
5
5
  export type { GetLabelType, Dictionary, ModuleDictionary, ComponentDictionary, } from './types/dictionary';
6
6
  export * from './utils';
package/index.js CHANGED
@@ -1,69 +1,4 @@
1
- import { createContext, useState, useCallback, useEffect } from "react";
2
- export { E as EnvironmentContext, a as EnvironmentProvider } from "./contexts/EnvironmentContext/index.js";
3
- export { F as FlagsContext, a as FlagsProvider } from "./contexts/FlagsContext/index.js";
4
- export { H as HostToolsContext, a as HostToolsProvider } from "./contexts/HostToolsContext/index.js";
5
- export { D as DomainContext, a as DomainProvider } from "./contexts/DomainContext/index.js";
6
- export { M as ModuleDictionaryContext, a as ModuleDictionaryProvider } from "./contexts/ModuleDictionaryContext/index.js";
7
- export { M as ModulePrivilegesContext, a as ModulePrivilegesProvider } from "./contexts/ModulePrivilegesContext/index.js";
8
- export { M as ModuleSkeletonContext, a as ModuleSkeletonProvider } from "./contexts/ModuleSkeletonContext/index.js";
9
- export { N as NetworkContext, a as NetworkProvider } from "./contexts/NetworkContext/index.js";
10
- import { u as useHostTools } from "./hooks/useHostTools/index.js";
11
- export { u as useHostTools } from "./hooks/useHostTools/index.js";
12
- import { E as EmitEvents } from "./types/index.js";
13
- export { E as EmitEvents } from "./types/index.js";
14
- import { jsx } from "react/jsx-runtime";
15
- export { u as useEnvironment } from "./hooks/useEnvironment/index.js";
16
- export { u as useFlags, a as useFlagsPresent } from "./hooks/useFlags/index.js";
17
- export { u as useDomain, a as useDomainCountry } from "./hooks/useDomain/index.js";
18
- export { u as useLocalStorage, a as useLocalStorageWithListener } from "./hooks/useLocalStorage/index.js";
19
- export { u as useModuleDictionary } from "./hooks/useModuleDictionary/index.js";
20
- export { u as useModulePrivileges } from "./hooks/useModulePrivileges/index.js";
21
- export { u as useModuleSkeleton } from "./hooks/useModuleSkeleton/index.js";
22
- export { u as useNetwork } from "./hooks/useNetwork/index.js";
23
- export { i as initialPagerState, u as usePaginate } from "./hooks/usePaginate/index.js";
24
- export { a as getLocalStorage, g as getPropertyByString, s as setLocalStorage, v as voidFunction } from "./utils/index.js";
25
- export { a as axiosOperation } from "./utils/axiosOperation.js";
26
- import "./index.js";
27
- import "axios";
28
- import "qs";
29
- const DomainCountryContext = createContext(null);
30
- function DomainCountryProvider(props) {
31
- const {
32
- children,
33
- isMicroFrontEnd,
34
- domainCountryId: domain_country_id
35
- } = props;
36
- const {
37
- events_add_listener,
38
- events_remove_listener,
39
- events_emit
40
- } = useHostTools();
41
- const [finaDomainCountryId, setFinalDomainCountry] = useState(domain_country_id);
42
- const onUpdateDomainCountry = useCallback((newDomainCountryId) => {
43
- setFinalDomainCountry(newDomainCountryId);
44
- }, []);
45
- useEffect(() => {
46
- if (isMicroFrontEnd) {
47
- events_add_listener(EmitEvents.EMMIT_EVENT_HOST_DOMAIN_COUNTRY_CHANGE, onUpdateDomainCountry);
48
- }
49
- return () => {
50
- if (isMicroFrontEnd) {
51
- events_remove_listener(EmitEvents.EMMIT_EVENT_HOST_DOMAIN_COUNTRY_CHANGE, onUpdateDomainCountry);
52
- }
53
- };
54
- }, []);
55
- const changeDomainCountryId = useCallback((newDomainCountryId) => {
56
- if (!isMicroFrontEnd) {
57
- setFinalDomainCountry(newDomainCountryId);
58
- events_emit(EmitEvents.EMMIT_EVENT_HOST_DOMAIN_COUNTRY_CHANGE, newDomainCountryId);
59
- }
60
- }, []);
61
- return /* @__PURE__ */ jsx(DomainCountryContext.Provider, {
62
- value: {
63
- domainCountryId: finaDomainCountryId,
64
- changeDomainCountryId
65
- },
66
- children
67
- });
68
- }
69
- export { DomainCountryContext, DomainCountryProvider };
1
+ export * from "./contexts";
2
+ export * from "./hooks";
3
+ export { CommonFlags, EmitEvents } from "./types";
4
+ export * from "./utils";
package/package.json CHANGED
@@ -1,15 +1,17 @@
1
1
  {
2
2
  "name": "@m4l/core",
3
- "version": "0.1.21",
3
+ "version": "0.1.23",
4
4
  "license": "UNLICENSED",
5
5
  "author": "M4L Team",
6
- "dependencies": {
7
- "history": "5.3.0",
8
- "qs": "^6.11.0"
9
- },
10
6
  "peerDependencies": {
7
+ "@types/nprogress": "^0.2.0",
8
+ "@types/qs": "^6.9.7",
11
9
  "@types/react": "^17.x || ^18.x",
12
- "react": "^17.0.0 || ^18.0.0"
10
+ "axios": "^0.27.2",
11
+ "history": "5.3.0",
12
+ "qs": "^6.11.0",
13
+ "react": "^17.0.0 || ^18.0.0",
14
+ "react-toastify": "^9.0.5"
13
15
  },
14
16
  "files": [
15
17
  "*"
package/types/index.d.ts CHANGED
@@ -47,6 +47,11 @@ export declare enum EmitEvents {
47
47
  EMMIT_EVENT_HOST_THEME_CHANGE = "host_theme_change",
48
48
  EMMIT_EVENT_HOST_DOMAIN_COUNTRY_CHANGE = "domain_country_change"
49
49
  }
50
+ export declare enum CommonFlags {
51
+ FLAG_PRIVILEGES_LOADED = "privileges_loaded",
52
+ FLAG_DICTIONARY_LOADED = "dictionary_loaded",
53
+ FLAG_DOMAIN_LOADED = "domain_loaded"
54
+ }
50
55
  export declare type AxiosOperation = (props: NetworkProps, enviroment: EnvironmentType, hostTools: HostToolsType) => Promise<any>;
51
56
  export declare interface MicrofrontendParms {
52
57
  version: number;
@@ -1 +1 @@
1
- export declare function getPropertyByString(object: Record<string, unknown>, propString: string): any;
1
+ export declare function getPropertyByString(object: Record<string, unknown>, key: string): any;
@@ -1 +1 @@
1
- export declare function setLocalStorage<ValueType>(key: string, value: ValueType): void;
1
+ export declare function setLocalStorage<ValueType>(key: string, newValue: ValueType, mixCurrentLocalStorage?: boolean): void;
@@ -1,50 +0,0 @@
1
- import { createContext, useState, useEffect } from "react";
2
- import { u as useFlags } from "../../hooks/useFlags/index.js";
3
- import { u as useEnvironment } from "../../hooks/useEnvironment/index.js";
4
- import { u as useNetwork } from "../../hooks/useNetwork/index.js";
5
- import { jsx } from "react/jsx-runtime";
6
- const DomainContext = createContext(null);
7
- function DomainProvider(props) {
8
- const {
9
- children
10
- } = props;
11
- const {
12
- domain_token
13
- } = useEnvironment();
14
- const {
15
- addFlag
16
- } = useFlags();
17
- const [domain, setDomain] = useState({
18
- company_logo_small_url: "",
19
- company_logo_normal_url: "",
20
- name: ""
21
- });
22
- const {
23
- networkOperation
24
- } = useNetwork();
25
- useEffect(() => {
26
- let mounted = true;
27
- networkOperation({
28
- method: "GET",
29
- endPoint: `na/info/${domain_token}`
30
- }).then((response) => {
31
- if (mounted) {
32
- setDomain({
33
- ...response.data
34
- });
35
- addFlag("domain_loaded");
36
- }
37
- }).finally(() => {
38
- });
39
- return function cleanUp() {
40
- mounted = false;
41
- };
42
- }, []);
43
- return /* @__PURE__ */ jsx(DomainContext.Provider, {
44
- value: {
45
- ...domain
46
- },
47
- children
48
- });
49
- }
50
- export { DomainContext as D, DomainProvider as a };
@@ -1,15 +0,0 @@
1
- import { createContext, useState } from "react";
2
- import { jsx } from "react/jsx-runtime";
3
- const EnvironmentContext = createContext(null);
4
- function EnvironmentProvider(props) {
5
- const {
6
- children,
7
- ...other
8
- } = props;
9
- const [finalEnvironment] = useState(other);
10
- return /* @__PURE__ */ jsx(EnvironmentContext.Provider, {
11
- value: finalEnvironment,
12
- children
13
- });
14
- }
15
- export { EnvironmentContext as E, EnvironmentProvider as a };
@@ -1,28 +0,0 @@
1
- import { createContext, useState, useCallback } from "react";
2
- import { jsx } from "react/jsx-runtime";
3
- const FlagsContext = createContext(null);
4
- function FlagsProvider({
5
- children
6
- }) {
7
- const [flags, setFlags] = useState([]);
8
- const clearFlags = useCallback(() => {
9
- setFlags([]);
10
- }, []);
11
- const addFlag = useCallback((newFlag) => {
12
- setFlags((oldFlags) => {
13
- if (oldFlags.findIndex((f) => f === newFlag) < 0) {
14
- return [...oldFlags, newFlag];
15
- }
16
- return [...oldFlags];
17
- });
18
- }, []);
19
- return /* @__PURE__ */ jsx(FlagsContext.Provider, {
20
- value: {
21
- flags,
22
- addFlag,
23
- clearFlags
24
- },
25
- children
26
- });
27
- }
28
- export { FlagsContext as F, FlagsProvider as a };
@@ -1,15 +0,0 @@
1
- import { createContext, useState } from "react";
2
- import { jsx } from "react/jsx-runtime";
3
- const HostToolsContext = createContext(null);
4
- function HostToolsProvider(props) {
5
- const {
6
- children,
7
- ...hostTools
8
- } = props;
9
- const [finalTools] = useState(hostTools);
10
- return /* @__PURE__ */ jsx(HostToolsContext.Provider, {
11
- value: finalTools,
12
- children
13
- });
14
- }
15
- export { HostToolsContext as H, HostToolsProvider as a };
@@ -1,93 +0,0 @@
1
- import { createContext, useState, useEffect, useCallback } from "react";
2
- import { u as useEnvironment } from "../../hooks/useEnvironment/index.js";
3
- import { u as useFlags } from "../../hooks/useFlags/index.js";
4
- import { u as useHostTools } from "../../hooks/useHostTools/index.js";
5
- import "../DomainContext/index.js";
6
- import "../ModulePrivilegesContext/index.js";
7
- import "../ModuleSkeletonContext/index.js";
8
- import { u as useNetwork } from "../../hooks/useNetwork/index.js";
9
- import "../../index.js";
10
- import { jsx } from "react/jsx-runtime";
11
- const ModuleDictionaryContext = createContext(null);
12
- function ModuleDictionaryProvider(props) {
13
- const {
14
- children,
15
- componentsDictionary,
16
- moduleId,
17
- moduleName = "module_name",
18
- currentLang = "en",
19
- isAuth = true
20
- } = props;
21
- const {
22
- addFlag
23
- } = useFlags();
24
- const [moduleDictionary, setModuleDictionary] = useState(void 0);
25
- const {
26
- domain_token
27
- } = useEnvironment();
28
- const {
29
- startProgress,
30
- stopProgress
31
- } = useHostTools();
32
- const {
33
- networkOperation
34
- } = useNetwork();
35
- useEffect(() => {
36
- let mounted = true;
37
- startProgress();
38
- networkOperation({
39
- method: "GET",
40
- endPoint: isAuth ? `dictionaries/${moduleId}` : `na/dictionaries/${moduleId}`,
41
- parms: {
42
- comps: componentsDictionary,
43
- ...isAuth ? {} : {
44
- domain_token,
45
- lang: currentLang
46
- }
47
- }
48
- }).then((response) => {
49
- if (mounted) {
50
- setModuleDictionary({
51
- ...response
52
- });
53
- addFlag("dictionary_loaded");
54
- }
55
- }).finally(() => {
56
- stopProgress();
57
- });
58
- return function cleanUp() {
59
- mounted = false;
60
- };
61
- }, [currentLang]);
62
- const getLabel = useCallback((key) => {
63
- if (moduleDictionary === void 0)
64
- return "";
65
- if (key === "")
66
- return "No key";
67
- let ret = void 0;
68
- const parts = key.split(".");
69
- try {
70
- if (parts.length === 1) {
71
- ret = moduleDictionary.data[key];
72
- }
73
- if (parts.length === 2) {
74
- ret = moduleDictionary[parts[0]][parts[1]];
75
- }
76
- } catch (error) {
77
- }
78
- if (ret) {
79
- return ret;
80
- }
81
- return `N_D:[${key}]`;
82
- }, [moduleDictionary]);
83
- const getModuleLabel = useCallback(() => getLabel(moduleName), [moduleName, getLabel]);
84
- return /* @__PURE__ */ jsx(ModuleDictionaryContext.Provider, {
85
- value: {
86
- moduleDictionary,
87
- getLabel,
88
- getModuleLabel
89
- },
90
- children
91
- });
92
- }
93
- export { ModuleDictionaryContext as M, ModuleDictionaryProvider as a };
@@ -1,66 +0,0 @@
1
- import { createContext, useState, useEffect, useCallback } from "react";
2
- import "../EnvironmentContext/index.js";
3
- import { u as useFlags } from "../../hooks/useFlags/index.js";
4
- import { u as useHostTools } from "../../hooks/useHostTools/index.js";
5
- import "../DomainContext/index.js";
6
- import "../ModuleDictionaryContext/index.js";
7
- import "../ModuleSkeletonContext/index.js";
8
- import { u as useNetwork } from "../../hooks/useNetwork/index.js";
9
- import "../../index.js";
10
- import { jsx } from "react/jsx-runtime";
11
- const ModulePrivilegesContext = createContext(null);
12
- function ModulePrivilegesProvider(props) {
13
- const {
14
- children,
15
- queryPrivileges
16
- } = props;
17
- const {
18
- addFlag
19
- } = useFlags();
20
- const [privileges, setPrivileges] = useState({});
21
- const {
22
- startProgress,
23
- stopProgress
24
- } = useHostTools();
25
- const {
26
- networkOperation
27
- } = useNetwork();
28
- useEffect(() => {
29
- let mounted = true;
30
- if (queryPrivileges.length === 0) {
31
- addFlag("privileges_loaded");
32
- return;
33
- }
34
- startProgress();
35
- networkOperation({
36
- method: "GET",
37
- endPoint: `auth/login`,
38
- parms: {
39
- privileges: queryPrivileges
40
- }
41
- }).then((response) => {
42
- if (mounted) {
43
- setPrivileges({
44
- ...response.data
45
- });
46
- addFlag("privileges_loaded");
47
- }
48
- }).finally(() => {
49
- stopProgress();
50
- });
51
- return function cleanUp() {
52
- mounted = false;
53
- };
54
- }, []);
55
- const hasPrivilege = useCallback((key) => {
56
- return key in privileges;
57
- }, [privileges]);
58
- return /* @__PURE__ */ jsx(ModulePrivilegesContext.Provider, {
59
- value: {
60
- hasPrivilege,
61
- privileges
62
- },
63
- children
64
- });
65
- }
66
- export { ModulePrivilegesContext as M, ModulePrivilegesProvider as a };
@@ -1,25 +0,0 @@
1
- import { createContext } from "react";
2
- import "../EnvironmentContext/index.js";
3
- import { a as useFlagsPresent } from "../../hooks/useFlags/index.js";
4
- import "../HostToolsContext/index.js";
5
- import "../DomainContext/index.js";
6
- import "../ModuleDictionaryContext/index.js";
7
- import "../ModulePrivilegesContext/index.js";
8
- import "../NetworkContext/index.js";
9
- import "../../index.js";
10
- import { jsx } from "react/jsx-runtime";
11
- const ModuleSkeletonContext = createContext(null);
12
- function ModuleSkeletonProvider(props) {
13
- const {
14
- children,
15
- flags
16
- } = props;
17
- const isSkeleton = !useFlagsPresent(flags);
18
- return /* @__PURE__ */ jsx(ModuleSkeletonContext.Provider, {
19
- value: {
20
- isSkeleton
21
- },
22
- children
23
- });
24
- }
25
- export { ModuleSkeletonContext as M, ModuleSkeletonProvider as a };
@@ -1,23 +0,0 @@
1
- import { createContext, useCallback } from "react";
2
- import { u as useEnvironment } from "../../hooks/useEnvironment/index.js";
3
- import { u as useHostTools } from "../../hooks/useHostTools/index.js";
4
- import { jsx } from "react/jsx-runtime";
5
- const NetworkContext = createContext(null);
6
- function NetworkProvider(props) {
7
- const {
8
- children,
9
- axiosOperation
10
- } = props;
11
- const environment = useEnvironment();
12
- const hostTools = useHostTools();
13
- const networkOperation = useCallback(async (networkProps) => {
14
- return axiosOperation(networkProps, environment, hostTools);
15
- }, [axiosOperation]);
16
- return /* @__PURE__ */ jsx(NetworkContext.Provider, {
17
- value: {
18
- networkOperation
19
- },
20
- children
21
- });
22
- }
23
- export { NetworkContext as N, NetworkProvider as a };
@@ -1,16 +0,0 @@
1
- import { useContext } from "react";
2
- import { D as DomainContext } from "../../contexts/DomainContext/index.js";
3
- import { DomainCountryContext } from "../../index.js";
4
- const useDomain = () => {
5
- const context = useContext(DomainContext);
6
- if (!context)
7
- throw new Error("useDomain context must be use inside DomainContext");
8
- return context;
9
- };
10
- const useDomainCountry = () => {
11
- const context = useContext(DomainCountryContext);
12
- if (!context)
13
- throw new Error("useDomainCountry context must be use inside DomainCountryContext");
14
- return context;
15
- };
16
- export { useDomainCountry as a, useDomain as u };
@@ -1,9 +0,0 @@
1
- import { useContext } from "react";
2
- import { E as EnvironmentContext } from "../../contexts/EnvironmentContext/index.js";
3
- const useEnvironment = () => {
4
- const context = useContext(EnvironmentContext);
5
- if (!context)
6
- throw new Error("useEnvironment context must be use inside EnvironmentContext");
7
- return context;
8
- };
9
- export { useEnvironment as u };
@@ -1,23 +0,0 @@
1
- import { useContext, useState, useEffect } from "react";
2
- import { F as FlagsContext } from "../../contexts/FlagsContext/index.js";
3
- const useFlags = () => {
4
- const context = useContext(FlagsContext);
5
- if (!context)
6
- throw new Error("useFlags context must be use inside FlagsProvider");
7
- return context;
8
- };
9
- function isFlagsPresent(compareFlags, flags) {
10
- const filterFlags = compareFlags.filter((findFlag) => flags.findIndex((sFlag) => sFlag === findFlag) !== -1);
11
- return filterFlags.length === compareFlags.length;
12
- }
13
- const useFlagsPresent = (compareFlags) => {
14
- const context = useFlags();
15
- const [isPresent, setIsPresent] = useState(isFlagsPresent(compareFlags, context.flags));
16
- useEffect(() => {
17
- if (isFlagsPresent(compareFlags, context.flags)) {
18
- setIsPresent(true);
19
- }
20
- }, [context.flags, compareFlags]);
21
- return isPresent;
22
- };
23
- export { useFlagsPresent as a, useFlags as u };
@@ -1,9 +0,0 @@
1
- import { useContext } from "react";
2
- import { H as HostToolsContext } from "../../contexts/HostToolsContext/index.js";
3
- const useHostTools = () => {
4
- const context = useContext(HostToolsContext);
5
- if (!context)
6
- throw new Error("useHostTools context must be use inside HostToolsContext");
7
- return context;
8
- };
9
- export { useHostTools as u };
@@ -1,54 +0,0 @@
1
- import { useState, useEffect } from "react";
2
- function useLocalStorage(key, initialValue) {
3
- const [value, setValue] = useState(() => {
4
- try {
5
- const item = window.localStorage.getItem(key);
6
- return item !== null ? JSON.parse(item) : initialValue;
7
- } catch (e) {
8
- return initialValue;
9
- }
10
- });
11
- const setValueInLocalStorage = (newValue) => {
12
- try {
13
- window.localStorage.setItem(key, JSON.stringify(newValue));
14
- setValue(newValue);
15
- } catch (e) {
16
- }
17
- };
18
- return [value, setValueInLocalStorage];
19
- }
20
- function useLocalStorageWithListener(key, defaultValue) {
21
- const [value, setValue] = useState(() => {
22
- try {
23
- const storedValue = localStorage.getItem(key);
24
- return storedValue === null ? defaultValue : JSON.parse(storedValue);
25
- } catch (e) {
26
- return defaultValue;
27
- }
28
- });
29
- useEffect(() => {
30
- const listener = (e) => {
31
- if (e.storageArea === localStorage && e.key === key) {
32
- try {
33
- if (e.newValue) {
34
- setValue(JSON.parse(e.newValue));
35
- }
36
- } catch (_e) {
37
- }
38
- }
39
- };
40
- window.addEventListener("storage", listener);
41
- return () => {
42
- window.removeEventListener("storage", listener);
43
- };
44
- }, [key, defaultValue]);
45
- const setValueInLocalStorage = (newValue) => {
46
- setValue((currentValue) => {
47
- const result = typeof newValue === "function" ? newValue(currentValue) : newValue;
48
- localStorage.setItem(key, JSON.stringify(result));
49
- return result;
50
- });
51
- };
52
- return [value, setValueInLocalStorage];
53
- }
54
- export { useLocalStorageWithListener as a, useLocalStorage as u };
@@ -1,9 +0,0 @@
1
- import { useContext } from "react";
2
- import { M as ModuleDictionaryContext } from "../../contexts/ModuleDictionaryContext/index.js";
3
- const useModuleDictionary = () => {
4
- const context = useContext(ModuleDictionaryContext);
5
- if (!context)
6
- throw new Error("useModuleDictionary context must be use inside ModuleDictionaryProvider");
7
- return context;
8
- };
9
- export { useModuleDictionary as u };
@@ -1,9 +0,0 @@
1
- import { useContext } from "react";
2
- import { M as ModulePrivilegesContext } from "../../contexts/ModulePrivilegesContext/index.js";
3
- const useModulePrivileges = () => {
4
- const context = useContext(ModulePrivilegesContext);
5
- if (!context)
6
- throw new Error("useModulePrivileges context must be use inside ModulePrivilegesContext");
7
- return context;
8
- };
9
- export { useModulePrivileges as u };
@@ -1,9 +0,0 @@
1
- import { useContext } from "react";
2
- import { M as ModuleSkeletonContext } from "../../contexts/ModuleSkeletonContext/index.js";
3
- const useModuleSkeleton = () => {
4
- const context = useContext(ModuleSkeletonContext);
5
- if (!context)
6
- throw new Error("useModuleSkeleton context must be use inside ModuleSkeletonContext");
7
- return context.isSkeleton;
8
- };
9
- export { useModuleSkeleton as u };
@@ -1,9 +0,0 @@
1
- import { useContext } from "react";
2
- import { N as NetworkContext } from "../../contexts/NetworkContext/index.js";
3
- const useNetwork = () => {
4
- const context = useContext(NetworkContext);
5
- if (!context)
6
- throw new Error("useNetwork context must be use inside NetworkContext");
7
- return context;
8
- };
9
- export { useNetwork as u };
@@ -1,85 +0,0 @@
1
- import { useState, useRef, useCallback, useEffect } from "react";
2
- import { u as useHostTools } from "../useHostTools/index.js";
3
- import { u as useNetwork } from "../useNetwork/index.js";
4
- const initialPagerState = {
5
- page: 0,
6
- rowsPerPage: 25,
7
- totalRecords: 0
8
- };
9
- const usePaginate = (props) => {
10
- const {
11
- endPoint,
12
- timeout = 5e3,
13
- queryParams,
14
- fireOnChangeParms,
15
- rowsPerPage = initialPagerState.rowsPerPage
16
- } = props;
17
- const [refresh, setRefresh] = useState(fireOnChangeParms ? 1 : 0);
18
- const [rows, setRows] = useState([]);
19
- const [pagerState, setPagerState] = useState({ ...initialPagerState, rowsPerPage });
20
- const refPagerState = useRef({ ...initialPagerState, rowsPerPage });
21
- const [firstQueryParams, setFirstQueryParams] = useState(true);
22
- const { startProgress, stopProgress } = useHostTools();
23
- const { networkOperation } = useNetwork();
24
- const Refresh = useCallback(() => {
25
- setRefresh((oldValue) => oldValue + 1);
26
- }, []);
27
- useEffect(() => {
28
- if (firstQueryParams) {
29
- setFirstQueryParams(false);
30
- return;
31
- }
32
- if (fireOnChangeParms) {
33
- Refresh();
34
- }
35
- }, [queryParams]);
36
- useEffect(() => {
37
- let mounted = true;
38
- if (refresh === 0)
39
- return;
40
- startProgress();
41
- networkOperation({
42
- method: "GET",
43
- endPoint,
44
- timeout,
45
- parms: {
46
- ...queryParams,
47
- page: refPagerState.current.page,
48
- limit: refPagerState.current.rowsPerPage
49
- }
50
- }).then((response) => {
51
- if (mounted) {
52
- setRows(response.data);
53
- refPagerState.current.page = response.pager.page;
54
- setPagerState((oldPagerState) => ({
55
- ...oldPagerState,
56
- page: response.pager.page,
57
- totalRecords: response.pager.total
58
- }));
59
- }
60
- }).finally(() => {
61
- if (mounted) {
62
- stopProgress();
63
- }
64
- });
65
- return function cleanUp() {
66
- stopProgress();
67
- mounted = false;
68
- };
69
- }, [refresh]);
70
- const onPageChange = (newPage) => {
71
- refPagerState.current.page = newPage;
72
- setRefresh((oldValue) => oldValue + 1);
73
- };
74
- const onRowsPerPageChange = (newRowsPerPage) => {
75
- refPagerState.current.rowsPerPage = newRowsPerPage;
76
- setPagerState((oldPagerState) => ({ ...oldPagerState, rowsPerPage: newRowsPerPage }));
77
- setRefresh((oldValue) => oldValue + 1);
78
- };
79
- const clearRows = () => {
80
- setRows([]);
81
- setPagerState(initialPagerState);
82
- };
83
- return { onPageChange, onRowsPerPageChange, pagerState, rows, clearRows, Refresh };
84
- };
85
- export { initialPagerState as i, usePaginate as u };
package/types/index.js DELETED
@@ -1,7 +0,0 @@
1
- var EmitEvents = /* @__PURE__ */ ((EmitEvents2) => {
2
- EmitEvents2["EMMIT_EVENT_NET_SERVICE_UNAUTHORIZED"] = `netsevice_unauthorized`;
3
- EmitEvents2["EMMIT_EVENT_HOST_THEME_CHANGE"] = "host_theme_change";
4
- EmitEvents2["EMMIT_EVENT_HOST_DOMAIN_COUNTRY_CHANGE"] = "domain_country_change";
5
- return EmitEvents2;
6
- })(EmitEvents || {});
7
- export { EmitEvents as E };
@@ -1,92 +0,0 @@
1
- import axios from "axios";
2
- import qs from "qs";
3
- import { E as EmitEvents } from "../types/index.js";
4
- function getResponse(endPoint, response, hostTools) {
5
- const { toast } = hostTools;
6
- if (response && response.data && typeof response.data === "object") {
7
- if (response.data.error && response.data.error?.code && response.data.error?.msg !== void 0) {
8
- return Promise.reject({ ...response.data.error, status: response.status });
9
- }
10
- if (response.data.message) {
11
- toast(response.data.message, { type: "success", autoClose: 1e4 });
12
- }
13
- return response.data;
14
- }
15
- return Promise.reject({
16
- code: 1,
17
- msg: `Incorrect endpoint: ${endPoint}`,
18
- status: response.status
19
- });
20
- }
21
- function getError(error, hostTools, checkUnAuthorized = true) {
22
- const { toast } = hostTools;
23
- let err = {
24
- message: "",
25
- status: 1,
26
- code: 0
27
- };
28
- if (error?.code !== void 0 && err.status !== void 0 && error.message !== void 0) {
29
- err = { ...err, ...error };
30
- }
31
- if (error?.response) {
32
- if (error.response.data && typeof error.response.data === "object" && error.response.data.error && error.response.data.error?.code && error.response.data.error?.message !== void 0) {
33
- err = { ...error.response.data.error, status: error.response.status };
34
- } else {
35
- err.message = error.message;
36
- err.status = error.response.status;
37
- err.code = 0;
38
- }
39
- } else if (error?.request) {
40
- err.message = `${error?.code} ${error.message}`;
41
- err.code = -1;
42
- } else {
43
- err.message = `${error?.code} ${error.message}`;
44
- err.status = 0;
45
- err.code = -2;
46
- }
47
- if (checkUnAuthorized && error?.response?.status === 401) {
48
- hostTools.events_emit(EmitEvents.EMMIT_EVENT_NET_SERVICE_UNAUTHORIZED, {});
49
- }
50
- if (error?.response?.data?.error?.message) {
51
- err.message = error?.response?.data?.error.message;
52
- }
53
- if (checkUnAuthorized) {
54
- toast(`${err.message} - status: ${err.status} - code: ${err.code}`, { type: "error" });
55
- }
56
- return err;
57
- }
58
- const axiosOperation = async (props, enviroment, hostTools) => {
59
- const {
60
- method,
61
- endPoint,
62
- timeout = 5e3,
63
- parms = {},
64
- data = {},
65
- isRemote = true,
66
- checkUnAuthorized = true,
67
- headers
68
- } = props;
69
- let baseURL;
70
- if (isRemote) {
71
- baseURL = enviroment.host_api_remote;
72
- } else {
73
- baseURL = enviroment.host_api_local;
74
- }
75
- hostTools.startProgress();
76
- return axios({
77
- baseURL,
78
- withCredentials: isRemote,
79
- method,
80
- url: `/${endPoint}`,
81
- data,
82
- params: {},
83
- paramsSerializer: () => {
84
- return qs.stringify(parms, { encode: true });
85
- },
86
- headers,
87
- timeout
88
- }).then((response) => getResponse(endPoint, response, hostTools)).catch((error) => Promise.reject(getError(error, hostTools, checkUnAuthorized))).finally(() => {
89
- hostTools.stopProgress();
90
- });
91
- };
92
- export { axiosOperation as a };
package/utils/index.js DELETED
@@ -1,33 +0,0 @@
1
- import "axios";
2
- import "qs";
3
- function voidFunction() {
4
- }
5
- function getPropertyByString(object, propString) {
6
- let value = object;
7
- const props = propString.split(".");
8
- for (let index = 0; index < props.length; index += 1) {
9
- if (props[index] === void 0)
10
- break;
11
- value = value[props[index]];
12
- }
13
- return value;
14
- }
15
- function getLocalStorage(key, initialValue) {
16
- try {
17
- const item = window.localStorage.getItem(key);
18
- return item !== null ? JSON.parse(item) : initialValue;
19
- } catch (e) {
20
- return initialValue;
21
- }
22
- }
23
- function setLocalStorage(key, value) {
24
- try {
25
- const item = window.localStorage.getItem(key);
26
- let newValue = item !== null ? JSON.parse(item) : {};
27
- newValue = { ...newValue, ...value };
28
- window.localStorage.setItem(key, JSON.stringify(newValue));
29
- } catch (e) {
30
- console.error(e);
31
- }
32
- }
33
- export { getLocalStorage as a, getPropertyByString as g, setLocalStorage as s, voidFunction as v };