@tracktor/shared-module 2.6.4 → 2.7.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.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,5 @@
1
1
  # [Versions](https://github.com/Tracktor/shared-module/releases)
2
2
 
3
- ## v2.6.4
4
- - **[fix]** - sentry error : null is not an object (evaluating 'window.localStorage.getItem')
3
+ ## v2.7.0
4
+ - **[feat]** - add `useFilter` hook
5
+ - **[feat]** - add `localStorageKeys` in props of `InjectDependenciesContext` context
@@ -33,10 +33,9 @@ interface InitializeAxiosConfigProps {
33
33
  * This component initialize Axios instance with custom default config options
34
34
  * @param axios
35
35
  * @param tokenTypeKey
36
- * @param userLocalStorageKey
37
36
  * @param tokenKey
38
37
  * @param postContentType
39
38
  * @constructor
40
39
  */
41
- declare const InitializeAxiosConfig: ({ tokenTypeKey, userLocalStorageKey, tokenKey, postContentType, ...props }: InitializeAxiosConfigProps) => null;
40
+ declare const InitializeAxiosConfig: ({ tokenTypeKey, tokenKey, postContentType, ...props }: InitializeAxiosConfigProps) => null;
42
41
  export default InitializeAxiosConfig;
@@ -8,6 +8,19 @@ export interface InjectDependenciesContextProps {
8
8
  * API URL dependency for useAdapter hook
9
9
  */
10
10
  apiURL?: string;
11
+ /**
12
+ * Local storage keys
13
+ */
14
+ localStorageKeys?: {
15
+ /**
16
+ * Local storage key for filters, used in useFilters hook
17
+ */
18
+ filter?: string;
19
+ /**
20
+ * Local storage key for user, used in useUser hook
21
+ */
22
+ user?: string;
23
+ };
11
24
  /**
12
25
  * List of dependencies for libraries
13
26
  */
@@ -39,5 +52,5 @@ export declare const InjectDependenciesContext: import("react").Context<InjectDe
39
52
  * @param apiURL
40
53
  * @constructor
41
54
  */
42
- declare const InjectDependenciesProvider: ({ children, apiURL, libraries }: InjectDependenciesContextProps) => import("react/jsx-runtime").JSX.Element;
55
+ declare const InjectDependenciesProvider: ({ children, apiURL, libraries, localStorageKeys }: InjectDependenciesContextProps) => import("react/jsx-runtime").JSX.Element;
43
56
  export default InjectDependenciesProvider;
@@ -1,4 +1,4 @@
1
- import { InjectDependenciesContextProps } from '../../context/InjectDependenciesProvider';
1
+ import { InjectDependenciesContextProps } from '../context/InjectDependenciesProvider';
2
2
  export interface useAdapterParams {
3
3
  /**
4
4
  * Dayjs library
@@ -1,4 +1,4 @@
1
- import { InjectDependenciesContextProps } from '../../context/InjectDependenciesProvider';
1
+ import { InjectDependenciesContextProps } from '../context/InjectDependenciesProvider';
2
2
  interface useAuthParams {
3
3
  /**
4
4
  * Axios library
@@ -0,0 +1,29 @@
1
+ import { SyntheticEvent } from "react";
2
+ import { InjectDependenciesContextProps } from '../context/InjectDependenciesProvider';
3
+ interface useFiltersOptions {
4
+ /**
5
+ * Pathname to store filters
6
+ * Defined to set filters for different pages to store in local storage
7
+ * @example If you want same filter for "/deals", "/deals/planning" and "/deals/list"
8
+ * Then you can define pathname "useFilters({ pathname: "/deals" })" and filter will be shared between these pages
9
+ * @default pathname from useLocation
10
+ */
11
+ pathname?: string;
12
+ /**
13
+ * React Router library
14
+ */
15
+ reactRouter?: NonNullable<InjectDependenciesContextProps["libraries"]>["reactRouter"];
16
+ }
17
+ /**
18
+ * Hook to handle filter
19
+ * @param options
20
+ */
21
+ declare const useFilters: (options?: useFiltersOptions) => {
22
+ getFilter: <T = string, DefaultValue = undefined>(name: string, defaultValue?: T | undefined) => DefaultValue extends undefined ? T | undefined : T;
23
+ getFilters: () => {
24
+ [x: string]: any;
25
+ };
26
+ handleFilter: <T_1>(name: string, key?: string) => (_: SyntheticEvent, value?: T_1 | undefined) => void;
27
+ setFilter: (name: string, value: unknown, persist?: boolean) => void;
28
+ };
29
+ export default useFilters;
package/dist/main.d.ts CHANGED
@@ -20,16 +20,18 @@ export { default as InjectDependenciesProvider } from './context/InjectDependenc
20
20
  export * from './context/InjectDependenciesProvider';
21
21
  export { default as QueryClientProviderWithConfig } from './context/QueryClientProviderWithConfig';
22
22
  export * from './context/QueryClientProviderWithConfig';
23
- export { default as useResponseError } from './hooks/useResponseError';
24
- export * from './hooks/useResponseError';
23
+ export { default as useResponseError } from './hooks/useResponseError/useResponseError';
24
+ export * from './hooks/useResponseError/useResponseError';
25
25
  export { default as useInfiniteDataGrid } from './hooks/useInfiniteDataGrid';
26
26
  export * from './hooks/useInfiniteDataGrid';
27
27
  export { default as useAuth } from './hooks/useAuth';
28
28
  export * from './hooks/useAuth';
29
29
  export { default as useAdapter } from './hooks/useAdapter';
30
30
  export * from './hooks/useAdapter';
31
- export { default as useCurrentLanguage } from './hooks/useCurrentLanguage';
32
- export * from './hooks/useCurrentLanguage';
31
+ export { default as useCurrentLanguage } from './hooks/useCurrentLanguage/useCurrentLanguage';
32
+ export * from './hooks/useCurrentLanguage/useCurrentLanguage';
33
+ export { default as useFilters } from './hooks/useFilters';
34
+ export * from './hooks/useFilters';
33
35
  export { default as getOrvalConfig } from './config/orval';
34
36
  export * from './config/orval';
35
37
  export { default as dateAdapter } from './utils/adapter/dateAdapter';