Testing doc view
This commit is contained in:
+34
-12
@@ -1,16 +1,38 @@
|
||||
"use client";
|
||||
|
||||
import { SetState } from "@/lib/types";
|
||||
import React, { useState } from "react";
|
||||
import { Workspace } from "@/hooks/workspace";
|
||||
import { Task } from "@/lib/types";
|
||||
import TaskView from "./view/TaskView";
|
||||
|
||||
export default function Router({
|
||||
children,
|
||||
route,
|
||||
setRoute,
|
||||
}: {
|
||||
children: (route: string) => React.JSX.Element;
|
||||
route: string;
|
||||
setRoute: SetState<string>;
|
||||
}) {
|
||||
return children(route);
|
||||
const id = (prefix = "t") =>
|
||||
`${prefix}_${Math.random().toString(36).slice(2, 9)}`;
|
||||
|
||||
export default function Router({ workspace }: { workspace: Workspace }) {
|
||||
const entity = workspace.entities[workspace.route];
|
||||
switch (entity.kind) {
|
||||
case "todo":
|
||||
const createTask = (status: string) => {
|
||||
const task: Task = {
|
||||
id: id(),
|
||||
title: "New task",
|
||||
status: status,
|
||||
};
|
||||
entity.setTasks((c: Task[]) => [...c, task]);
|
||||
};
|
||||
|
||||
return (
|
||||
<TaskView
|
||||
tasks={entity.tasks}
|
||||
setTasks={entity.setTasks}
|
||||
createTask={createTask}
|
||||
tags={{
|
||||
website: { color: "yellow", name: "Website" },
|
||||
api: { color: "purple", name: "API" },
|
||||
app: { color: "blue", name: "App" },
|
||||
}}
|
||||
/>
|
||||
);
|
||||
case "doc":
|
||||
return entity.doc;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user