refactor: move sortable fields in People
This commit is contained in:
@ -10,7 +10,6 @@ import TableHeader from './table-header/TableHeader';
|
|||||||
import { IconProp } from '@fortawesome/fontawesome-svg-core';
|
import { IconProp } from '@fortawesome/fontawesome-svg-core';
|
||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
import { SortType } from './table-header/SortAndFilterBar';
|
import { SortType } from './table-header/SortAndFilterBar';
|
||||||
import { faCalendar } from '@fortawesome/pro-regular-svg-icons';
|
|
||||||
|
|
||||||
type OwnProps<TData> = {
|
type OwnProps<TData> = {
|
||||||
data: Array<TData>;
|
data: Array<TData>;
|
||||||
@ -18,6 +17,7 @@ type OwnProps<TData> = {
|
|||||||
viewName: string;
|
viewName: string;
|
||||||
viewIcon?: IconProp;
|
viewIcon?: IconProp;
|
||||||
onSortsUpdate?: (sorts: Array<SortType>) => void;
|
onSortsUpdate?: (sorts: Array<SortType>) => void;
|
||||||
|
sortsAvailable?: Array<SortType>;
|
||||||
};
|
};
|
||||||
|
|
||||||
const StyledTable = styled.table`
|
const StyledTable = styled.table`
|
||||||
@ -69,6 +69,7 @@ function Table<TData>({
|
|||||||
viewName,
|
viewName,
|
||||||
viewIcon,
|
viewIcon,
|
||||||
onSortsUpdate,
|
onSortsUpdate,
|
||||||
|
sortsAvailable,
|
||||||
}: OwnProps<TData>) {
|
}: OwnProps<TData>) {
|
||||||
const table = useReactTable({
|
const table = useReactTable({
|
||||||
data,
|
data,
|
||||||
@ -76,22 +77,13 @@ function Table<TData>({
|
|||||||
getCoreRowModel: getCoreRowModel(),
|
getCoreRowModel: getCoreRowModel(),
|
||||||
});
|
});
|
||||||
|
|
||||||
const sortsAvailable: Array<SortType> = [
|
|
||||||
{
|
|
||||||
id: 'created_at',
|
|
||||||
label: 'Created at',
|
|
||||||
order: 'asc',
|
|
||||||
icon: faCalendar,
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<StyledTableWithHeader>
|
<StyledTableWithHeader>
|
||||||
<TableHeader
|
<TableHeader
|
||||||
viewName={viewName}
|
viewName={viewName}
|
||||||
viewIcon={viewIcon}
|
viewIcon={viewIcon}
|
||||||
onSortsUpdate={onSortsUpdate}
|
onSortsUpdate={onSortsUpdate}
|
||||||
sortsAvailable={sortsAvailable}
|
sortsAvailable={sortsAvailable || []}
|
||||||
/>
|
/>
|
||||||
<StyledTable>
|
<StyledTable>
|
||||||
<thead>
|
<thead>
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { faUser, faList } from '@fortawesome/pro-regular-svg-icons';
|
import { faUser, faList, faCalendar } from '@fortawesome/pro-regular-svg-icons';
|
||||||
import WithTopBarContainer from '../../layout/containers/WithTopBarContainer';
|
import WithTopBarContainer from '../../layout/containers/WithTopBarContainer';
|
||||||
import Table from '../../components/table/Table';
|
import Table from '../../components/table/Table';
|
||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
@ -38,6 +38,15 @@ function People() {
|
|||||||
|
|
||||||
const { data } = usePeopleQuery(orderBy);
|
const { data } = usePeopleQuery(orderBy);
|
||||||
|
|
||||||
|
const sortsAvailable: Array<SortType> = [
|
||||||
|
{
|
||||||
|
id: 'created_at',
|
||||||
|
label: 'Created at',
|
||||||
|
order: 'asc',
|
||||||
|
icon: faCalendar,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<WithTopBarContainer title="People" icon={faUser}>
|
<WithTopBarContainer title="People" icon={faUser}>
|
||||||
<StyledPeopleContainer>
|
<StyledPeopleContainer>
|
||||||
@ -48,6 +57,7 @@ function People() {
|
|||||||
viewName="All People"
|
viewName="All People"
|
||||||
viewIcon={faList}
|
viewIcon={faList}
|
||||||
onSortsUpdate={updateSorts}
|
onSortsUpdate={updateSorts}
|
||||||
|
sortsAvailable={sortsAvailable}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
</StyledPeopleContainer>
|
</StyledPeopleContainer>
|
||||||
|
|||||||
Reference in New Issue
Block a user