refactor: move sortable fields in People

This commit is contained in:
Sammy Teillet
2023-04-24 14:00:14 +02:00
parent bc91e97695
commit 095a6886ae
2 changed files with 14 additions and 12 deletions

View File

@ -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>

View File

@ -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>