diff --git a/packages/dashboard-ui-components/src/components/data-grid/data-grid-export-dialog.tsx b/packages/dashboard-ui-components/src/components/data-grid/data-grid-export-dialog.tsx index 293109581..cde2c462e 100644 --- a/packages/dashboard-ui-components/src/components/data-grid/data-grid-export-dialog.tsx +++ b/packages/dashboard-ui-components/src/components/data-grid/data-grid-export-dialog.tsx @@ -67,6 +67,17 @@ export function DataGridExportDialog({ } }, [isExporting, resolvedFields]); + // Reset the scope to its default each time the dialog opens. The dialog stays + // mounted between opens, so without this the scope would retain whatever the + // user last picked instead of honoring `defaultScope` on every open. We key + // off `open` so this only fires on an open transition. + const defaultScope = exportOptions?.defaultScope ?? "all"; + useEffect(() => { + if (open && !isExporting) { + setScope(defaultScope); + } + }, [open, isExporting, defaultScope]); + const entityName = exportOptions?.entityName ?? "row"; const entityNamePlural = exportOptions?.entityNamePlural ?? "rows"; const filenamePrefix = exportOptions?.filenamePrefix ?? exportFilename;