diff options
Diffstat (limited to 'src/pages')
| -rw-r--r-- | src/pages/LogIn.tsx | 4 | ||||
| -rw-r--r-- | src/pages/ProjectsList.tsx | 22 | ||||
| -rw-r--r-- | src/pages/SignUp.tsx | 4 |
3 files changed, 17 insertions, 13 deletions
diff --git a/src/pages/LogIn.tsx b/src/pages/LogIn.tsx index 296a499..5820cb6 100644 --- a/src/pages/LogIn.tsx +++ b/src/pages/LogIn.tsx @@ -5,7 +5,7 @@ import { Pb } from '../context.ts'; import { Header, Content, Form, TextInput, Button, ArrowButton, FormLabel } from '../components'; const LogIn = () => { - const pb = useContext(Pb); + const pb = useContext(Pb)!; const email = useSignal(''); const password = useSignal(''); @@ -14,7 +14,7 @@ const LogIn = () => { event.preventDefault(); await pb.collection('users').authWithPassword(email.value, password.value); if (pb.authStore.isValid) { - route('/' + pb.authStore.model.username); + route('/' + pb.authStore.model!.username); } }, []); diff --git a/src/pages/ProjectsList.tsx b/src/pages/ProjectsList.tsx index a7e3bed..13dd5d6 100644 --- a/src/pages/ProjectsList.tsx +++ b/src/pages/ProjectsList.tsx @@ -1,26 +1,30 @@ import { useContext, useEffect, useCallback } from 'preact/hooks'; import { useSignal } from '@preact/signals'; import { route } from 'preact-router'; +import type { ListResult } from 'pocketbase'; +import type { Project } from '../types.ts'; import { Pb } from '../context.ts'; import { logOut } from '../util.ts'; import { Header, Content, ContainedList, Form, FormLabel, TextInput, Button } from '../components'; -const ProjectsList = ({ user }) => { - const pb = useContext(Pb); - const projects = useSignal(null); +export interface ProjectsListProps { + user: string; +} + +const ProjectsList = ({ user }: ProjectsListProps) => { + const pb = useContext(Pb)!; + const projects = useSignal<ListResult<Project> | null>(null); const projectName = useSignal(''); - useEffect(() => { - pb.collection('projects') - .getList(1, 20, { sort: '-mtime' }) - .then(p => projects.value = p); + useEffect(async () => { + projects.value = await pb.collection('projects').getList(1, 20, { sort: '-mtime' }); }, []); - const onCreateProject = useCallback(async (event: FormEvent) => { + const onCreateProject = useCallback(async (event: SubmitEvent) => { event.preventDefault(); const project = await pb.collection('projects').create({ name: projectName.value, - owner: pb.authStore.model.id, + owner: pb.authStore.model!.id, }); route(`/${user}/${project.name}`); }, [user]); diff --git a/src/pages/SignUp.tsx b/src/pages/SignUp.tsx index 22e1512..e1cee3c 100644 --- a/src/pages/SignUp.tsx +++ b/src/pages/SignUp.tsx @@ -5,7 +5,7 @@ import { Pb } from '../context.ts'; import { Header, Content, Form, FormLabel, TextInput, Button, ArrowButton } from '../components'; const SignUp = () => { - const pb = useContext(Pb); + const pb = useContext(Pb)!; const username = useSignal(''); const email = useSignal(''); @@ -22,7 +22,7 @@ const SignUp = () => { passwordConfirm: confirm.value, }); if (pb.authStore.isValid) { - route('/' + pb.authStore.model.username); + route('/' + pb.authStore.model!.username); } }, []); |
