@patternfly/react-data-view 6.1.0 → 6.3.0-prerelease.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.
Files changed (112) hide show
  1. package/dist/cjs/DataView/DataView.d.ts +2 -2
  2. package/dist/cjs/DataView/DataView.js +4 -7
  3. package/dist/cjs/DataView/DataView.test.js +3 -6
  4. package/dist/cjs/DataViewCheckboxFilter/DataViewCheckboxFilter.d.ts +2 -2
  5. package/dist/cjs/DataViewCheckboxFilter/DataViewCheckboxFilter.js +10 -15
  6. package/dist/cjs/DataViewCheckboxFilter/DataViewCheckboxFilter.test.js +3 -3
  7. package/dist/cjs/DataViewEventsContext/DataViewEventsContext.d.ts +3 -3
  8. package/dist/cjs/DataViewEventsContext/DataViewEventsContext.js +3 -25
  9. package/dist/cjs/DataViewEventsContext/DataViewEventsContext.test.js +11 -16
  10. package/dist/cjs/DataViewFilters/DataViewFilters.d.ts +2 -2
  11. package/dist/cjs/DataViewFilters/DataViewFilters.js +12 -40
  12. package/dist/cjs/DataViewFilters/DataViewFilters.test.js +11 -5
  13. package/dist/cjs/DataViewTable/DataViewTable.d.ts +2 -2
  14. package/dist/cjs/DataViewTable/DataViewTable.js +2 -5
  15. package/dist/cjs/DataViewTable/DataViewTable.test.js +4 -7
  16. package/dist/cjs/DataViewTableBasic/DataViewTableBasic.d.ts +2 -2
  17. package/dist/cjs/DataViewTableBasic/DataViewTableBasic.js +15 -41
  18. package/dist/cjs/DataViewTableBasic/DataViewTableBasic.test.js +6 -12
  19. package/dist/cjs/DataViewTableHead/DataViewTableHead.d.ts +2 -2
  20. package/dist/cjs/DataViewTableHead/DataViewTableHead.js +5 -28
  21. package/dist/cjs/DataViewTableHead/DataViewTableHead.test.js +5 -13
  22. package/dist/cjs/DataViewTableTree/DataViewTableTree.d.ts +2 -2
  23. package/dist/cjs/DataViewTableTree/DataViewTableTree.js +10 -34
  24. package/dist/cjs/DataViewTableTree/DataViewTableTree.test.js +6 -13
  25. package/dist/cjs/DataViewTextFilter/DataViewTextFilter.d.ts +2 -2
  26. package/dist/cjs/DataViewTextFilter/DataViewTextFilter.js +2 -6
  27. package/dist/cjs/DataViewTextFilter/DataViewTextFilter.test.js +3 -3
  28. package/dist/cjs/DataViewToolbar/DataViewToolbar.d.ts +4 -2
  29. package/dist/cjs/DataViewToolbar/DataViewToolbar.js +5 -34
  30. package/dist/cjs/DataViewToolbar/DataViewToolbar.test.js +3 -3
  31. package/dist/cjs/Hooks/filters.js +1 -1
  32. package/dist/cjs/Hooks/filters.test.js +25 -0
  33. package/dist/cjs/InternalContext/InternalContext.d.ts +3 -3
  34. package/dist/cjs/InternalContext/InternalContext.js +3 -25
  35. package/dist/cjs/InternalContext/InternalContext.test.js +9 -21
  36. package/dist/esm/DataView/DataView.d.ts +2 -2
  37. package/dist/esm/DataView/DataView.js +4 -4
  38. package/dist/esm/DataView/DataView.test.js +2 -5
  39. package/dist/esm/DataViewCheckboxFilter/DataViewCheckboxFilter.d.ts +2 -2
  40. package/dist/esm/DataViewCheckboxFilter/DataViewCheckboxFilter.js +10 -12
  41. package/dist/esm/DataViewCheckboxFilter/DataViewCheckboxFilter.test.js +2 -2
  42. package/dist/esm/DataViewEventsContext/DataViewEventsContext.d.ts +3 -3
  43. package/dist/esm/DataViewEventsContext/DataViewEventsContext.js +3 -2
  44. package/dist/esm/DataViewEventsContext/DataViewEventsContext.test.js +11 -13
  45. package/dist/esm/DataViewFilters/DataViewFilters.d.ts +2 -2
  46. package/dist/esm/DataViewFilters/DataViewFilters.js +12 -17
  47. package/dist/esm/DataViewFilters/DataViewFilters.test.js +11 -5
  48. package/dist/esm/DataViewTable/DataViewTable.d.ts +2 -2
  49. package/dist/esm/DataViewTable/DataViewTable.js +2 -2
  50. package/dist/esm/DataViewTable/DataViewTable.test.js +3 -3
  51. package/dist/esm/DataViewTableBasic/DataViewTableBasic.d.ts +2 -2
  52. package/dist/esm/DataViewTableBasic/DataViewTableBasic.js +15 -18
  53. package/dist/esm/DataViewTableBasic/DataViewTableBasic.test.js +5 -8
  54. package/dist/esm/DataViewTableHead/DataViewTableHead.d.ts +2 -2
  55. package/dist/esm/DataViewTableHead/DataViewTableHead.js +5 -5
  56. package/dist/esm/DataViewTableHead/DataViewTableHead.test.js +4 -9
  57. package/dist/esm/DataViewTableTree/DataViewTableTree.d.ts +2 -2
  58. package/dist/esm/DataViewTableTree/DataViewTableTree.js +10 -11
  59. package/dist/esm/DataViewTableTree/DataViewTableTree.test.js +5 -9
  60. package/dist/esm/DataViewTextFilter/DataViewTextFilter.d.ts +2 -2
  61. package/dist/esm/DataViewTextFilter/DataViewTextFilter.js +2 -3
  62. package/dist/esm/DataViewTextFilter/DataViewTextFilter.test.js +2 -2
  63. package/dist/esm/DataViewToolbar/DataViewToolbar.d.ts +4 -2
  64. package/dist/esm/DataViewToolbar/DataViewToolbar.js +5 -11
  65. package/dist/esm/DataViewToolbar/DataViewToolbar.test.js +2 -2
  66. package/dist/esm/Hooks/filters.js +1 -1
  67. package/dist/esm/Hooks/filters.test.js +25 -0
  68. package/dist/esm/InternalContext/InternalContext.d.ts +3 -3
  69. package/dist/esm/InternalContext/InternalContext.js +3 -2
  70. package/dist/esm/InternalContext/InternalContext.test.js +7 -16
  71. package/dist/tsconfig.tsbuildinfo +1 -1
  72. package/package.json +10 -10
  73. package/patternfly-docs/content/extensions/data-view/examples/DataView/AbstractLayoutExample.tsx +3 -3
  74. package/patternfly-docs/content/extensions/data-view/examples/DataView/DataView.md +1 -1
  75. package/patternfly-docs/content/extensions/data-view/examples/DataView/EventsExample.tsx +4 -4
  76. package/patternfly-docs/content/extensions/data-view/examples/DataView/PredefinedLayoutFullExample.tsx +5 -5
  77. package/patternfly-docs/content/extensions/data-view/examples/Table/DataViewTableEmptyExample.tsx +6 -6
  78. package/patternfly-docs/content/extensions/data-view/examples/Table/DataViewTableErrorExample.tsx +2 -2
  79. package/patternfly-docs/content/extensions/data-view/examples/Table/DataViewTableExample.tsx +2 -2
  80. package/patternfly-docs/content/extensions/data-view/examples/Table/DataViewTableLoadingExample.tsx +4 -4
  81. package/patternfly-docs/content/extensions/data-view/examples/Table/DataViewTableTreeExample.tsx +2 -2
  82. package/patternfly-docs/content/extensions/data-view/examples/Table/SortingExample.tsx +3 -3
  83. package/patternfly-docs/content/extensions/data-view/examples/Table/Table.md +1 -1
  84. package/patternfly-docs/content/extensions/data-view/examples/Toolbar/AllSelectedExample.tsx +116 -0
  85. package/patternfly-docs/content/extensions/data-view/examples/Toolbar/Toolbar.md +13 -1
  86. package/patternfly-docs/pages/index.js +1 -0
  87. package/release.config.js +10 -2
  88. package/src/DataView/DataView.test.tsx +10 -8
  89. package/src/DataView/DataView.tsx +4 -4
  90. package/src/DataViewCheckboxFilter/DataViewCheckboxFilter.test.tsx +0 -1
  91. package/src/DataViewCheckboxFilter/DataViewCheckboxFilter.tsx +10 -10
  92. package/src/DataViewEventsContext/DataViewEventsContext.test.tsx +4 -4
  93. package/src/DataViewEventsContext/DataViewEventsContext.tsx +1 -1
  94. package/src/DataViewFilters/DataViewFilters.test.tsx +29 -10
  95. package/src/DataViewFilters/DataViewFilters.tsx +12 -12
  96. package/src/DataViewTable/DataViewTable.test.tsx +0 -1
  97. package/src/DataViewTable/DataViewTable.tsx +2 -2
  98. package/src/DataViewTableBasic/DataViewTableBasic.test.tsx +0 -1
  99. package/src/DataViewTableBasic/DataViewTableBasic.tsx +2 -2
  100. package/src/DataViewTableHead/DataViewTableHead.test.tsx +0 -1
  101. package/src/DataViewTableHead/DataViewTableHead.tsx +2 -2
  102. package/src/DataViewTableTree/DataViewTableTree.test.tsx +0 -1
  103. package/src/DataViewTableTree/DataViewTableTree.tsx +5 -5
  104. package/src/DataViewTextFilter/DataViewTextFilter.test.tsx +0 -1
  105. package/src/DataViewTextFilter/DataViewTextFilter.tsx +2 -2
  106. package/src/DataViewToolbar/DataViewToolbar.test.tsx +0 -1
  107. package/src/DataViewToolbar/DataViewToolbar.tsx +9 -2
  108. package/src/Hooks/filters.test.tsx +27 -0
  109. package/src/Hooks/filters.ts +1 -1
  110. package/src/InternalContext/InternalContext.test.tsx +0 -1
  111. package/src/InternalContext/InternalContext.tsx +2 -2
  112. package/tsconfig.json +1 -1
@@ -53,6 +53,33 @@ describe('useDataViewFilters', () => {
53
53
  expect(setSearchParams).toHaveBeenCalled();
54
54
  });
55
55
 
56
+ it('should sync with URL search params with non array value', () => {
57
+ const searchParams = new URLSearchParams();
58
+ searchParams.set('test', 'foo');
59
+ const setSearchParams = jest.fn();
60
+ const props: UseDataViewFiltersProps<{ test: string }> = {
61
+ initialFilters: { test: '' },
62
+ searchParams,
63
+ setSearchParams,
64
+ };
65
+ const { result } = renderHook(() => useDataViewFilters(props));
66
+ expect(result.current.filters).toEqual({ test: 'foo' });
67
+ })
68
+ it('should sync with URL search params with array value', () => {
69
+
70
+ const searchParams = new URLSearchParams();
71
+ searchParams.append('test', 'foo');
72
+ searchParams.append('test', 'bar');
73
+ const setSearchParams = jest.fn();
74
+ const props: UseDataViewFiltersProps<{ test: string[] }> = {
75
+ initialFilters: { test: [] },
76
+ searchParams,
77
+ setSearchParams,
78
+ };
79
+ const { result } = renderHook(() => useDataViewFilters(props));
80
+ expect(result.current.filters).toEqual({ test: [ 'foo', 'bar' ] });
81
+ })
82
+
56
83
  it('should reset filters to default values when clearAllFilters is called', () => {
57
84
  const { result } = renderHook(() => useDataViewFilters({ initialFilters }));
58
85
  act(() => result.current.clearAllFilters());
@@ -18,8 +18,8 @@ export const useDataViewFilters = <T extends object>({
18
18
 
19
19
  const getInitialFilters = useCallback((): T => isUrlSyncEnabled
20
20
  ? Object.keys(initialFilters).reduce((loadedFilters, key) => {
21
- const urlValue = searchParams?.get(key);
22
21
  const isArrayFilter = Array.isArray(initialFilters[key]);
22
+ const urlValue = isArrayFilter ? searchParams?.getAll(key) : searchParams?.get(key);
23
23
 
24
24
  // eslint-disable-next-line no-nested-ternary
25
25
  loadedFilters[key] = urlValue
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { render, fireEvent } from '@testing-library/react';
3
2
  import '@testing-library/jest-dom';
4
3
  import { useInternalContext, DataViewSelection } from './InternalContext';
@@ -1,4 +1,4 @@
1
- import React, { createContext, PropsWithChildren, useContext, useMemo } from 'react';
1
+ import { FC, createContext, PropsWithChildren, useContext, useMemo } from 'react';
2
2
  import { DataViewState } from '../DataView';
3
3
 
4
4
  export interface DataViewSelection {
@@ -31,7 +31,7 @@ export const InternalContext = createContext<InternalContextValue>({
31
31
 
32
32
  export type InternalProviderProps = PropsWithChildren<InternalContextProps>
33
33
 
34
- export const InternalContextProvider: React.FC<InternalProviderProps> = ({
34
+ export const InternalContextProvider: FC<InternalProviderProps> = ({
35
35
  children,
36
36
  selection,
37
37
  activeState
package/tsconfig.json CHANGED
@@ -9,7 +9,7 @@
9
9
  // "lib": [], /* Specify library files to be included in the compilation. */
10
10
  // "allowJs": true, /* Allow javascript files to be compiled. */
11
11
  // "checkJs": true, /* Report errors in .js files. */
12
- "jsx": "react" /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */,
12
+ "jsx": "react-jsx" /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */,
13
13
  "declaration": true /* Generates corresponding '.d.ts' file. */,
14
14
  // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */
15
15
  // "sourceMap": true, /* Generates corresponding '.map' file. */