diff --git a/src/admin/ui/Select.tsx b/src/admin/ui/Select.tsx index 2a3ecee..785c3a6 100644 --- a/src/admin/ui/Select.tsx +++ b/src/admin/ui/Select.tsx @@ -18,6 +18,7 @@ export default function Select({ onChange, options, children, + slotProps, ...props }: SelectProps) { return ( @@ -29,6 +30,20 @@ export default function Select({ value={value} onChange={(e) => onChange(e.target.value)} {...props} + slotProps={{ + ...slotProps, + select: { + // Render the selected option's label even when its value is "" — e.g. + // an "All" filter option. Without displayEmpty MUI shows the control + // blank for an empty-string value despite it being selected. + displayEmpty: true, + // Cap the menu height so long option lists scroll inside the popover + // instead of growing to fit every record (and running off-screen). + MenuProps: { PaperProps: { sx: { maxHeight: 320 } } }, + // Let callers override either default (e.g. a custom renderValue). + ...((slotProps as { select?: object } | undefined)?.select ?? {}), + }, + }} > {options ? options.map((o) => (