summaryrefslogtreecommitdiff
path: root/src/pages
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages')
-rw-r--r--src/pages/Editor.tsx30
-rw-r--r--src/pages/index.ts5
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';