@procore/saved-views 6.0.2 → 6.1.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/README.md +13 -2
- package/dist/legacy/index.d.mts +10 -2
- package/dist/legacy/index.d.ts +10 -2
- package/dist/legacy/index.js +382 -192
- package/dist/legacy/index.mjs +371 -177
- package/dist/modern/index.d.mts +10 -2
- package/dist/modern/index.d.ts +10 -2
- package/dist/modern/index.js +381 -192
- package/dist/modern/index.mjs +370 -177
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -134,7 +134,15 @@ const MyDataTableView = () => {
|
|
|
134
134
|
const savedViewsWrapperRef = useRef<IDataTableSavedViewsRef>(null);
|
|
135
135
|
|
|
136
136
|
// Panel visibility control
|
|
137
|
-
|
|
137
|
+
// `SavedViewsProvider` is required if you want the `SavedViewsButton` label
|
|
138
|
+
// to display the currently active view name (e.g. "Views: My View"). Wrap
|
|
139
|
+
// the subtree that contains both the button and the `<DataTableSavedViews>`
|
|
140
|
+
// / `<SavedViews>` component below.
|
|
141
|
+
const {
|
|
142
|
+
SavedViewsButton,
|
|
143
|
+
SavedViewsProvider,
|
|
144
|
+
isOpen: isPanelOpen,
|
|
145
|
+
} = useSavedViewsPanel('your_domain', 'your_table');
|
|
138
146
|
```
|
|
139
147
|
|
|
140
148
|
**Key Points**:
|
|
@@ -181,6 +189,7 @@ const defaultViewConfig = useMemo(
|
|
|
181
189
|
|
|
182
190
|
```tsx
|
|
183
191
|
return (
|
|
192
|
+
<SavedViewsProvider>
|
|
184
193
|
<div className="table-with-saved-views">
|
|
185
194
|
<ServerSideDataTable
|
|
186
195
|
columnDefinitions={columnDefinitions}
|
|
@@ -227,7 +236,7 @@ const defaultViewConfig = useMemo(
|
|
|
227
236
|
{/* Top Controls */}
|
|
228
237
|
<div style={{ display: 'flex', justifyContent: 'space-between', marginBottom: '12px' }}>
|
|
229
238
|
<div style={{ display: 'flex', gap: '8px' }}>
|
|
230
|
-
<SavedViewsButton /> {/* Toggle saved views panel */}
|
|
239
|
+
<SavedViewsButton /> {/* Toggle saved views panel; shows active view name when wrapped in <SavedViewsProvider> */}
|
|
231
240
|
<ServerSideDataTable.Search />
|
|
232
241
|
<ServerSideDataTable.FiltersPanelButton />
|
|
233
242
|
</div>
|
|
@@ -253,6 +262,7 @@ const defaultViewConfig = useMemo(
|
|
|
253
262
|
</div>
|
|
254
263
|
</ServerSideDataTable>
|
|
255
264
|
</div>
|
|
265
|
+
</SavedViewsProvider>
|
|
256
266
|
);
|
|
257
267
|
};
|
|
258
268
|
```
|
|
@@ -263,6 +273,7 @@ const defaultViewConfig = useMemo(
|
|
|
263
273
|
2. **API Sharing**: `tableApi={tableApi}` gives saved views control over table state
|
|
264
274
|
3. **Config Sync**: `onTableConfigChange={handleTableConfigChange}` keeps everything in sync
|
|
265
275
|
4. **Layout**: Saved views typically go in a left sidebar with fixed width
|
|
276
|
+
5. **Active view label**: Wrapping the subtree in `<SavedViewsProvider>` lets the toggle button display the currently active view name (e.g. "Views: All RFIs"). The provider is a no-op when omitted, so existing integrations continue to render the plain "Views" label.
|
|
266
277
|
|
|
267
278
|
---
|
|
268
279
|
|
package/dist/legacy/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Locale } from '@procore/globalization-toolkit';
|
|
2
2
|
import * as React$1 from 'react';
|
|
3
|
-
import React__default from 'react';
|
|
3
|
+
import React__default, { PropsWithChildren } from 'react';
|
|
4
4
|
import { DataTableConfig, TableApi, ColumnDefinition } from '@procore/data-table';
|
|
5
5
|
import { ColumnState, FilterModel, GridApi } from 'ag-grid-community';
|
|
6
6
|
import * as _procore_core_react_dist_Panel_Panel_types from '@procore/core-react/dist/Panel/Panel.types';
|
|
@@ -12,6 +12,7 @@ declare function getTranslations(envLocale: Locale): Record<string, object>;
|
|
|
12
12
|
declare const useSavedViewsPanel: (domain: string, tableName: string) => {
|
|
13
13
|
isOpen: boolean;
|
|
14
14
|
SavedViewsButton: () => React__default.JSX.Element;
|
|
15
|
+
SavedViewsProvider: ({ children, }: React__default.PropsWithChildren) => React__default.JSX.Element;
|
|
15
16
|
};
|
|
16
17
|
|
|
17
18
|
interface IQueryInputProps {
|
|
@@ -116,6 +117,13 @@ interface IPanelContentProps {
|
|
|
116
117
|
onClearTemporary?: () => void;
|
|
117
118
|
}
|
|
118
119
|
|
|
120
|
+
interface SavedViewsSelectionContextValue {
|
|
121
|
+
selectedView: ISavedView | null;
|
|
122
|
+
setSelectedView: (view: ISavedView | null) => void;
|
|
123
|
+
}
|
|
124
|
+
declare const SavedViewsSelectionProvider: ({ children, }: PropsWithChildren) => React__default.JSX.Element;
|
|
125
|
+
declare const useSavedViewsSelection: () => SavedViewsSelectionContextValue | null;
|
|
126
|
+
|
|
119
127
|
type SavedViewCollectionMenuItemProps = {
|
|
120
128
|
item: ISavedView;
|
|
121
129
|
key?: string;
|
|
@@ -189,4 +197,4 @@ interface IDataTableSavedViewsRef {
|
|
|
189
197
|
}
|
|
190
198
|
declare const DataTableSavedViews: React__default.ForwardRefExoticComponent<IDataTableSavedViewsExternalConsumerProps & React__default.RefAttributes<IDataTableSavedViewsRef>>;
|
|
191
199
|
|
|
192
|
-
export { DataTableSavedViews, ExpandedPanel, FormModal, type IDataTableDefaultViewConfig, type IDataTableSavedViewsRef, type ISmartGridDefaultViewConfig, PanelContent, SavedViewCollectionMenuItem, SavedViews, SavedViewsDeleteConfirmationModalShared, SmartGridSavedViews, getTranslations, useSavedViewsPanel };
|
|
200
|
+
export { DataTableSavedViews, ExpandedPanel, FormModal, type IDataTableDefaultViewConfig, type IDataTableSavedViewsRef, type ISmartGridDefaultViewConfig, PanelContent, SavedViewCollectionMenuItem, SavedViews, SavedViewsDeleteConfirmationModalShared, type SavedViewsSelectionContextValue, SavedViewsSelectionProvider, SmartGridSavedViews, getTranslations, useSavedViewsPanel, useSavedViewsSelection };
|
package/dist/legacy/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Locale } from '@procore/globalization-toolkit';
|
|
2
2
|
import * as React$1 from 'react';
|
|
3
|
-
import React__default from 'react';
|
|
3
|
+
import React__default, { PropsWithChildren } from 'react';
|
|
4
4
|
import { DataTableConfig, TableApi, ColumnDefinition } from '@procore/data-table';
|
|
5
5
|
import { ColumnState, FilterModel, GridApi } from 'ag-grid-community';
|
|
6
6
|
import * as _procore_core_react_dist_Panel_Panel_types from '@procore/core-react/dist/Panel/Panel.types';
|
|
@@ -12,6 +12,7 @@ declare function getTranslations(envLocale: Locale): Record<string, object>;
|
|
|
12
12
|
declare const useSavedViewsPanel: (domain: string, tableName: string) => {
|
|
13
13
|
isOpen: boolean;
|
|
14
14
|
SavedViewsButton: () => React__default.JSX.Element;
|
|
15
|
+
SavedViewsProvider: ({ children, }: React__default.PropsWithChildren) => React__default.JSX.Element;
|
|
15
16
|
};
|
|
16
17
|
|
|
17
18
|
interface IQueryInputProps {
|
|
@@ -116,6 +117,13 @@ interface IPanelContentProps {
|
|
|
116
117
|
onClearTemporary?: () => void;
|
|
117
118
|
}
|
|
118
119
|
|
|
120
|
+
interface SavedViewsSelectionContextValue {
|
|
121
|
+
selectedView: ISavedView | null;
|
|
122
|
+
setSelectedView: (view: ISavedView | null) => void;
|
|
123
|
+
}
|
|
124
|
+
declare const SavedViewsSelectionProvider: ({ children, }: PropsWithChildren) => React__default.JSX.Element;
|
|
125
|
+
declare const useSavedViewsSelection: () => SavedViewsSelectionContextValue | null;
|
|
126
|
+
|
|
119
127
|
type SavedViewCollectionMenuItemProps = {
|
|
120
128
|
item: ISavedView;
|
|
121
129
|
key?: string;
|
|
@@ -189,4 +197,4 @@ interface IDataTableSavedViewsRef {
|
|
|
189
197
|
}
|
|
190
198
|
declare const DataTableSavedViews: React__default.ForwardRefExoticComponent<IDataTableSavedViewsExternalConsumerProps & React__default.RefAttributes<IDataTableSavedViewsRef>>;
|
|
191
199
|
|
|
192
|
-
export { DataTableSavedViews, ExpandedPanel, FormModal, type IDataTableDefaultViewConfig, type IDataTableSavedViewsRef, type ISmartGridDefaultViewConfig, PanelContent, SavedViewCollectionMenuItem, SavedViews, SavedViewsDeleteConfirmationModalShared, SmartGridSavedViews, getTranslations, useSavedViewsPanel };
|
|
200
|
+
export { DataTableSavedViews, ExpandedPanel, FormModal, type IDataTableDefaultViewConfig, type IDataTableSavedViewsRef, type ISmartGridDefaultViewConfig, PanelContent, SavedViewCollectionMenuItem, SavedViews, SavedViewsDeleteConfirmationModalShared, type SavedViewsSelectionContextValue, SavedViewsSelectionProvider, SmartGridSavedViews, getTranslations, useSavedViewsPanel, useSavedViewsSelection };
|