import React, { useState, useRef, useEffect, useMemo, useCallback } from "react";
|
import {
|
SavedQueriesList,
|
FilterLiveSearch,
|
FilterList,
|
FilterListItem,
|
useTheme,
|
useStore,
|
} from 'react-admin';
|
import { Box, Typography, Card, CardContent } from '@mui/material';
|
import { styled } from '@mui/material/styles';
|
import { DEFAULT_THEME_NAME } from '@/config/setting';
|
import * as Common from '@/utils/common';
|
import WcIcon from '@mui/icons-material/Wc';
|
import BookmarkIcon from '@mui/icons-material/BookmarkBorder';
|
import CategoryIcon from '@mui/icons-material/LocalOffer';
|
import AccessTimeIcon from '@mui/icons-material/AccessTime';
|
import {
|
endOfYesterday,
|
startOfWeek,
|
subWeeks,
|
startOfMonth,
|
subMonths,
|
} from 'date-fns';
|
|
const UserListAside = (props) => {
|
const theme = useTheme();
|
console.log(endOfYesterday().toISOString())
|
|
const isSelected = (value, filters) => {
|
const categories = filters.categories || [];
|
return categories.includes(value.category);
|
};
|
|
const toggleFilter = (value, filters) => {
|
const categories = filters.categories || [];
|
return {
|
...filters,
|
categories: categories.includes(value.category)
|
// Remove the category if it was already present
|
? categories.filter(v => v !== value.category)
|
// Add the category if it wasn't already present
|
: [...categories, value.category],
|
};
|
};
|
|
|
return (
|
<>
|
<Card
|
sx={{
|
display: { xs: 'none', md: 'block', },
|
order: -1,
|
mr: 2,
|
mt: 8,
|
alignSelf: 'flex-start',
|
border: theme[0] === 'light' && '1px solid #e0e0e3',
|
// borderRadius: 0,
|
// width: 200
|
}}
|
>
|
<CardContent>
|
<SavedQueriesList icon={<BookmarkIcon />} />
|
<FilterLiveSearch source='condition' hiddenLabel />
|
|
<FilterList
|
label="filters.lastCreated"
|
icon={<AccessTimeIcon />}
|
>
|
<FilterListItem
|
label="filters.today"
|
value={{
|
timeStart: endOfYesterday().toISOString(),
|
timeEnd: undefined,
|
}}
|
/>
|
<FilterListItem
|
label="filters.thisWeek"
|
value={{
|
timeStart: startOfWeek(new Date()).toISOString(),
|
timeEnd: undefined,
|
}}
|
/>
|
<FilterListItem
|
label="filters.lastWeek"
|
value={{
|
timeStart: subWeeks(startOfWeek(new Date()), 1).toISOString(),
|
timeEnd: startOfWeek(new Date()).toISOString(),
|
}}
|
/>
|
<FilterListItem
|
label="filters.thisMonth"
|
value={{
|
timeStart: startOfMonth(new Date()).toISOString(),
|
timeEnd: undefined,
|
}}
|
/>
|
<FilterListItem
|
label="filters.lastMonth"
|
value={{
|
timeStart: subMonths(startOfMonth(new Date()), 1).toISOString(),
|
timeEnd: startOfMonth(new Date()).toISOString(),
|
}}
|
/>
|
<FilterListItem
|
label="filters.earlier"
|
value={{
|
timeStart: undefined,
|
timeEnd: subMonths(startOfMonth(new Date()), 1).toISOString(),
|
}}
|
/>
|
</FilterList>
|
|
<FilterList label="table.field.user.sex" icon={<WcIcon />}>
|
<FilterListItem label="Male" value={{ sex: '1' }} />
|
<FilterListItem label="Female" value={{ sex: '2' }} />
|
<FilterListItem label="They" value={{ sex: '0' }} />
|
</FilterList>
|
|
<FilterList label="Categories" icon={<CategoryIcon />}>
|
<FilterListItem
|
label="Tests"
|
value={{ category: 'tests' }}
|
isSelected={isSelected}
|
toggleFilter={toggleFilter}
|
/>
|
<FilterListItem
|
label="News"
|
value={{ category: 'news' }}
|
isSelected={isSelected}
|
toggleFilter={toggleFilter}
|
/>
|
<FilterListItem
|
label="Deals"
|
value={{ category: 'deals' }}
|
isSelected={isSelected}
|
toggleFilter={toggleFilter}
|
/>
|
</FilterList>
|
</CardContent>
|
</Card>
|
</>
|
)
|
}
|
|
export default UserListAside;
|