From 853aefca82243a574e3fd8d5e5c7270355ba0cdb Mon Sep 17 00:00:00 2001 From: piotrruss Date: Sun, 22 May 2022 13:42:29 +0100 Subject: add sorting --- components/List.jsx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'components/List.jsx') diff --git a/components/List.jsx b/components/List.jsx index b280d4a..8003187 100644 --- a/components/List.jsx +++ b/components/List.jsx @@ -10,6 +10,16 @@ import { handleRemove } from "../helpers"; const List = ({ session, setSession, showError, setEdit }) => { const [list, setList] = useState() const [loading, setLoading] = useState(true) + const [sort, setSort] = useState(0) + + const sortFn = (a, b) => { + const d = sort % 2 ? -1 : 1 + switch (sort) { + case 0: case 1: return d * (new Date(b.updated_at) - new Date(a.updated_at)) + case 2: case 3: return d * (new Date(b.created_at) - new Date(a.created_at)) + case 4: case 5: return d * a.title.toLowerCase().localeCompare(b.title.toLowerCase()) + } + } const fetchNotes = async () => { setLoading(true) @@ -35,13 +45,15 @@ const List = ({ session, setSession, showError, setEdit }) => { setSession={setSession} showError={showError} setEdit={setEdit} + sort={sort} + setSort={setSort} /> { loading || list === undefined ? Loading notes... : ( new Date(b.updated_at) - new Date(a.updated_at))} + data={list.sort(sortFn)} renderItem={({item}) => } keyExtractor={item => item._id} ListEmptyComponent={You don't have any notes} -- cgit v1.2.3