diff options
| author | Sam Nystrom <sam@samnystrom.dev> | 2024-03-16 21:09:02 +0000 |
|---|---|---|
| committer | Sam Nystrom <sam@samnystrom.dev> | 2024-03-16 17:16:58 -0400 |
| commit | 3b8c7e391e1f370af74df30a14a699a49543f918 (patch) | |
| tree | c2f0514911963843def2267329e14554a4d21fe9 /src/pages | |
| parent | 13b10dd150f9c9cf382fae9802a704ba9c582a62 (diff) | |
refactor: extract NodeEditor into a component
Diffstat (limited to 'src/pages')
| -rw-r--r-- | src/pages/Editor.tsx | 30 | ||||
| -rw-r--r-- | src/pages/index.ts | 5 |
2 files changed, 33 insertions, 2 deletions
diff --git a/src/pages/Editor.tsx b/src/pages/Editor.tsx new file mode 100644 index 0000000..c929595 --- /dev/null +++ b/src/pages/Editor.tsx @@ -0,0 +1,30 @@ +import { useEffect, useMemo, useContext } from 'preact/hooks'; +import { useSignal } from '@preact/signals'; +import { Pb } from '../context.ts'; +import type { Project } from '../types.ts'; +import { NodeEditor } from '../components'; + +export interface EditorProps { + user: string; + project: string; +} + +const Editor = ({ user, project }: EditorProps) => { + const pb = useContext(Pb)!; + const projectData = useSignal<Project | null>(null); + + useEffect(() => { + (async () => { + projectData.value = await pb.collection('projects') + .getFirstListItem(pb.filter('owner.username = {:user} && name = {:project}', { user, project })); + })(); + }, []); + + return ( + <> + {!!projectData.value && <NodeEditor project={projectData.value} />} + </> + ); +}; + +export default Editor; diff --git a/src/pages/index.ts b/src/pages/index.ts index bd162cf..27e3906 100644 --- a/src/pages/index.ts +++ b/src/pages/index.ts @@ -1,4 +1,5 @@ +export { default as Editor } from './Editor.tsx'; export { default as Home } from './Home.tsx'; -export { default as SignUp } from './SignUp.tsx'; export { default as LogIn } from './LogIn.tsx'; -export { default as ProjectsList } from './ProjectsList.tsx';
\ No newline at end of file +export { default as ProjectsList } from './ProjectsList.tsx'; +export { default as SignUp } from './SignUp.tsx'; |
