diff --git a/src/app/admin/[[...slug]]/page.tsx b/src/app/admin/[[...slug]]/page.tsx index 2fe049c..092a2dd 100644 --- a/src/app/admin/[[...slug]]/page.tsx +++ b/src/app/admin/[[...slug]]/page.tsx @@ -5,6 +5,7 @@ import Sidebar, { SidebarEntry } from "@/components/server/admin/views/sidebar"; import { cookies } from "next/headers"; import PostView from "@/components/server/admin/views/PostView"; import { ReactNode } from "react"; +import ProjectView from "@/components/server/admin/views/ProjectView"; type Props = { params: { @@ -20,12 +21,16 @@ function Home(){ function PostManager(){ return
posts
} +function ProjectManager(){ + return
projects
+} async function getViewMap():Promise>{ return new Map([ ['home', ], - ['man-post', ] + ['man-post', ], + ['man-proj', ] ]); } diff --git a/src/components/client/TableGen.tsx b/src/components/client/TableGen.tsx index 39acd25..ce5d200 100644 --- a/src/components/client/TableGen.tsx +++ b/src/components/client/TableGen.tsx @@ -11,7 +11,7 @@ export default function TableGen(props:Props){ - {props.headings.map((h)=> + {[...props.headings,'Edit', 'Delete'].map((h)=> )} diff --git a/src/components/client/admin/PostEditor.tsx b/src/components/client/admin/PostEditor.tsx index 1b1ecb4..c124f52 100644 --- a/src/components/client/admin/PostEditor.tsx +++ b/src/components/client/admin/PostEditor.tsx @@ -14,17 +14,17 @@ export type PostTableCallbacks = { } export type EditorProps = { - open:boolean; - post:Partial; + editorOpenState:boolean; + openedPost:Partial; projects?:Attributes[]; callbacks:PostTableCallbacks; } export default function PostEditor(props:EditorProps){ - let [content,setContent] = useState(props.post?.content) - let [title,setTitle] = useState(props.post?.title) - let [projectID,setProjectID] = useState(props.post?.project_id) + let [content,setContent] = useState(props.openedPost?.content) + let [title,setTitle] = useState(props.openedPost?.title) + let [projectID,setProjectID] = useState(props.openedPost?.project_id) let textbox:any = useRef(undefined); function adjustHeight(): void { @@ -39,76 +39,83 @@ export default function PostEditor(props:EditorProps){ const projectSelectionChange:ChangeEventHandler = (e)=>setProjectID(parseInt(e.target.value)); const onClickSaveButton:MouseEventHandler = (e)=>{ props.callbacks.savePost({ - id: props.post.id as number, + id: props.openedPost.id as number, content:content as string, title:title as string, + project_id:projectID }); } const onClickCancelButton:MouseEventHandler = (e)=>{props.callbacks.closeEditor();} return <>
-

Edit Post

-

Title

- setTitle(e.target.value)} type='text' className="m-2"> -

Content

-
{h}