feature: apply the sorts to the query

This commit is contained in:
Sammy Teillet
2023-04-20 16:45:07 +02:00
parent 33473aea92
commit fbd338ee7d
2 changed files with 15 additions and 4 deletions

View File

@ -10,7 +10,7 @@ type OwnProps = {
export type SortType = {
label: string;
order: string;
order: 'asc' | 'desc';
id: string;
icon?: IconProp;
};

View File

@ -36,17 +36,28 @@ export const GET_PEOPLE = gql`
}
`;
const orderBy = [
// @TODO get those types from generated-code person-order-by
type OrderBy = Record<string, 'asc' | 'desc'>;
const defaultOrderBy = [
{
created_at: 'desc',
},
];
const reduceSortsToGqlSorts = (sorts: Array<SortType>): OrderBy[] => {
const mappedSorts = sorts.reduce((acc, sort) => {
acc[sort.id] = sort.order;
return acc;
}, {} as OrderBy);
return [mappedSorts];
};
function People() {
const [sorts, setSorts] = useState([] as Array<SortType>);
console.log(sorts);
const orderBy = sorts.length ? reduceSortsToGqlSorts(sorts) : defaultOrderBy;
const { data } = useQuery<{ person: GraphqlPerson[] }>(GET_PEOPLE, {
variables: { orderBy: sorts ? orderBy : orderBy },
variables: { orderBy: orderBy },
});
const mydata: Person[] = data ? data.person.map(mapPerson) : defaultData;