From 464e470441287572cfda8d95484f781236b9db35 Mon Sep 17 00:00:00 2001 From: piotrruss Date: Mon, 9 Aug 2021 21:36:03 +0200 Subject: init commit --- apps/Notes/components/List.js | 129 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 apps/Notes/components/List.js (limited to 'apps/Notes/components/List.js') diff --git a/apps/Notes/components/List.js b/apps/Notes/components/List.js new file mode 100644 index 0000000..8561d4f --- /dev/null +++ b/apps/Notes/components/List.js @@ -0,0 +1,129 @@ +import React, {useState, useEffect, useRef} from 'react' +import useUser from 'lib/useUser' +import useNotes from '../hooks/useNotes' +import useSort from '../hooks/useSort' +import fetchJson from 'lib/fetchJson' +import {Layout} from 'components' +import ListItem from './ListItem' +import NoteView from './NoteView' +import Note from './Note' + +const List = () => { + const [fetchedNote, setFetchedNote] = useState() + const [action, setAction] = useState('') + const {notes, error} = useNotes() + const [sortedBy, sortBy, sortFn] = useSort(2) + const {user, mutateUser} = useUser({ + redirectToLogin: true, + redirectToVerify: true, + }) + + if (error) return

Failed to fetch notes

+ + if (!user || !user.isLoggedIn || !user.isVerified || !notes || !sortFn) { + return

Loading...

+ } + + + return ( + <> + { + action === '' && ( + <> +
+
setAction('addNote')}>New note
+
+ + + + + + + + + + { + notes.length > 0 + ? (notes.sort(sortFn).map(note => ( + + ))) : ( + + + + )} + +
sortBy(1)}>Title {sortedBy(1)} sortBy(2)}>Created {sortedBy(2)} sortBy(3)}>Modified {sortedBy(3)}
Your notes list is empty.
+ + ) + } + { + action === 'addNote' && ( + + ) + } + { + action === 'showNote' && ( + + ) + } + { + action === 'editNote' && ( + + ) + } + + + ) +} + +export default List -- cgit v1.2.3