Skip to content

Commit 64a1bec

Browse files
committed
Pass active view ID to ListView schema and optimize localStorage key handling
1 parent ed4e732 commit 64a1bec

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

apps/console/src/components/ObjectView.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ export function ObjectView({ dataSource, objects, onEdit }: any) {
9696
// Use standard ListView for supported types
9797
const listViewSchema: ListViewSchema = {
9898
type: 'list-view',
99+
id: activeView.id, // Pass the View ID to the schema
99100
objectName: objectDef.name,
100101
viewType: activeView.type,
101102
fields: activeView.columns,

packages/plugin-list/src/ListView.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,29 +40,33 @@ export const ListView: React.FC<ListViewProps> = ({
4040
const [sortOrder, setSortOrder] = React.useState<'asc' | 'desc'>(schema.sort?.[0]?.order || 'asc');
4141
const [showFilters, setShowFilters] = React.useState(false);
4242

43+
const storageKey = React.useMemo(() => {
44+
return schema.id
45+
? `listview-${schema.objectName}-${schema.id}-view`
46+
: `listview-${schema.objectName}-view`;
47+
}, [schema.objectName, schema.id]);
48+
4349
// Load saved view preference
4450
React.useEffect(() => {
4551
try {
46-
const storageKey = `listview-${schema.objectName}-view`;
4752
const savedView = localStorage.getItem(storageKey);
4853
if (savedView && ['grid', 'list', 'kanban', 'calendar', 'chart'].includes(savedView)) {
4954
setCurrentView(savedView as ViewType);
5055
}
5156
} catch (error) {
5257
console.warn('Failed to load view preference from localStorage:', error);
5358
}
54-
}, [schema.objectName]);
59+
}, [storageKey]);
5560

5661
const handleViewChange = React.useCallback((view: ViewType) => {
5762
setCurrentView(view);
5863
try {
59-
const storageKey = `listview-${schema.objectName}-view`;
6064
localStorage.setItem(storageKey, view);
6165
} catch (error) {
6266
console.warn('Failed to save view preference to localStorage:', error);
6367
}
6468
onViewChange?.(view);
65-
}, [schema.objectName, onViewChange]);
69+
}, [storageKey, onViewChange]);
6670

6771
const handleSearchChange = React.useCallback((value: string) => {
6872
setSearchTerm(value);

0 commit comments

Comments
 (0)