@devtron-labs/devtron-fe-common-lib 0.0.82-beta-2 → 0.0.82-beta-3

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.
@@ -86,4 +86,5 @@ export declare const compareObjectLength: (objA: any, objB: any) => boolean;
86
86
  * Return deep copy of the object
87
87
  */
88
88
  export declare function deepEqual(configA: any, configB: any): boolean;
89
+ export declare const prefixZeroIfSingleDigit: (value?: number) => string | number;
89
90
  export {};
@@ -3,3 +3,4 @@ export { useClickOutside } from './UseClickOutside/UseClickOutside';
3
3
  export { useWindowSize } from './UseWindowSize/UseWindowSize';
4
4
  export * from './useUrlFilters';
5
5
  export * from './UseRegisterShortcut';
6
+ export * from './useStateFilters';
@@ -0,0 +1,2 @@
1
+ export { default as useStateFilters } from './useStateFilters';
2
+ export type { UseStateFiltersProps, UseStateFiltersReturnType } from './types';
@@ -0,0 +1,6 @@
1
+ import { UseUrlFiltersProps, UseUrlFiltersReturnType } from '../useUrlFilters';
2
+
3
+ export interface UseStateFiltersProps<T> extends Pick<UseUrlFiltersProps<T, never>, 'initialSortKey'> {
4
+ }
5
+ export interface UseStateFiltersReturnType<T> extends Pick<UseUrlFiltersReturnType<T>, 'sortBy' | 'sortOrder' | 'handleSorting' | 'clearFilters'> {
6
+ }
@@ -0,0 +1,17 @@
1
+ import { UseStateFiltersProps, UseStateFiltersReturnType } from './types';
2
+
3
+ /**
4
+ * Generic hook for implementing state based pagination, search, sorting.
5
+ * Sister method of [useUrlFilters](https://github.com/devtron-labs/devtron-fe-common-lib/blob/main/src/Common/Hooks/useUrlFilters/useUrlFilters.ts)
6
+ *
7
+ * The exposed handlers can be consumed directly without the need for explicit state management
8
+ *
9
+ * @example Usage with custom type for sort keys and initial sort key:
10
+ * ```tsx
11
+ * const { sortBy, sortOrder } = useUrlFilters<'email' | 'name'>({ initialSortKey: 'email' })
12
+ * ```
13
+ *
14
+ * To be extended to be used with pagination and search as and when required
15
+ */
16
+ declare const useStateFilters: <T = string>({ initialSortKey, }?: UseStateFiltersProps<T>) => UseStateFiltersReturnType<T>;
17
+ export default useStateFilters;
@@ -1,5 +1,5 @@
1
1
  import { GitTriggers, WebhookEventNameType } from './types';
2
- import { MaterialInfo } from '../Common';
2
+ import { MaterialInfo, SortingOrder } from '../Common';
3
3
 
4
4
  interface HighlightSearchTextProps {
5
5
  /**
@@ -19,7 +19,8 @@ export declare const highlightSearchText: ({ searchText, text, highlightClasses
19
19
  export declare const preventBodyScroll: (lock: boolean) => void;
20
20
  export declare const getIsMaterialInfoAvailable: (materialInfo: MaterialInfo[]) => boolean;
21
21
  export declare const getGitCommitInfo: (materialInfo: MaterialInfo) => GitTriggers;
22
- export declare const caseInsensitiveStringComparator: (a: string, b: string) => number;
22
+ export declare const stringComparatorBySortOrder: (a: string, b: string, sortOrder?: SortingOrder, isCaseSensitive?: boolean) => number;
23
+ export declare const numberComparatorBySortOrder: (a: number, b: number, sortOrder?: SortingOrder) => number;
23
24
  export declare const getWebhookEventIcon: (eventName: WebhookEventNameType) => JSX.Element;
24
25
  export declare const isNullOrUndefined: (value: unknown) => boolean;
25
26
  export {};