feat(date-filter): Hinzufügen von Zeit- und DateTime-Filtern
This commit is contained in:
parent
cf67c387c6
commit
042a1a76c3
@ -1,5 +1,7 @@
|
|||||||
import { DatePicker } from '@mui/x-date-pickers/DatePicker';
|
import { DatePicker } from '@mui/x-date-pickers/DatePicker';
|
||||||
|
import { TimePicker } from '@mui/x-date-pickers/TimePicker';
|
||||||
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
|
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
|
||||||
|
import { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker';
|
||||||
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
|
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
|
||||||
// ----------------------------------------------------------------------
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
@ -7,7 +9,7 @@ type DateFilterProps = {
|
|||||||
label: string;
|
label: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function DateFilter({ label }: DateFilterProps) {
|
export function DateFilter({ label }: DateFilterProps) {
|
||||||
return (
|
return (
|
||||||
<LocalizationProvider dateAdapter={AdapterDayjs}>
|
<LocalizationProvider dateAdapter={AdapterDayjs}>
|
||||||
<DatePicker
|
<DatePicker
|
||||||
@ -20,4 +22,34 @@ export default function DateFilter({ label }: DateFilterProps) {
|
|||||||
/>
|
/>
|
||||||
</LocalizationProvider>
|
</LocalizationProvider>
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function TimeFilter({ label }: DateFilterProps) {
|
||||||
|
return (
|
||||||
|
<LocalizationProvider dateAdapter={AdapterDayjs}>
|
||||||
|
<TimePicker
|
||||||
|
slotProps={{
|
||||||
|
openPickerIcon: (ownerState: any) => ({
|
||||||
|
color: ownerState.isPickerOpen ? 'secondary' : 'primary',
|
||||||
|
}),
|
||||||
|
}}
|
||||||
|
label={label}
|
||||||
|
/>
|
||||||
|
</LocalizationProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function DateTimeFilter({ label }: DateFilterProps) {
|
||||||
|
return (
|
||||||
|
<LocalizationProvider dateAdapter={AdapterDayjs}>
|
||||||
|
<DateTimePicker
|
||||||
|
slotProps={{
|
||||||
|
openPickerIcon: (ownerState: any) => ({
|
||||||
|
color: ownerState.isPickerOpen ? 'secondary' : 'primary',
|
||||||
|
}),
|
||||||
|
}}
|
||||||
|
label={label}
|
||||||
|
/>
|
||||||
|
</LocalizationProvider>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
@ -14,10 +14,10 @@ import { Filter, getFiltersAsync } from 'src/api/filter-service';
|
|||||||
import { Iconify } from 'src/components/iconify';
|
import { Iconify } from 'src/components/iconify';
|
||||||
|
|
||||||
import { DocItem } from '../doc-item';
|
import { DocItem } from '../doc-item';
|
||||||
import DateFilter from '../date-filter';
|
|
||||||
import { BoolFilter } from '../bool-filter';
|
import { BoolFilter } from '../bool-filter';
|
||||||
import { TextFilter } from '../text-filter';
|
import { TextFilter } from '../text-filter';
|
||||||
import { DecimalFilter, IntFilter } from '../num-filter';
|
import { DecimalFilter, IntFilter } from '../num-filter';
|
||||||
|
import { DateFilter, DateTimeFilter, TimeFilter } from '../date-filter';
|
||||||
|
|
||||||
import type { IDocItem } from '../doc-item';
|
import type { IDocItem } from '../doc-item';
|
||||||
// ----------------------------------------------------------------------
|
// ----------------------------------------------------------------------
|
||||||
@ -104,6 +104,12 @@ export function DocSearchView({ posts }: Props) {
|
|||||||
case 'DATE':
|
case 'DATE':
|
||||||
filterComp = <DateFilter label={filter.label ?? filter.name} />
|
filterComp = <DateFilter label={filter.label ?? filter.name} />
|
||||||
break;
|
break;
|
||||||
|
case 'TIME':
|
||||||
|
filterComp = <TimeFilter label={filter.label ?? filter.name} />
|
||||||
|
break;
|
||||||
|
case 'DATETIME':
|
||||||
|
filterComp = <DateTimeFilter label={filter.label ?? filter.name} />
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
filterComp = <TextField label={filter.label ?? filter.type} variant="filled" />
|
filterComp = <TextField label={filter.label ?? filter.type} variant="filled" />
|
||||||
break;
|
break;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user