import { FunctionalComponent, h } from "preact"; import { useReducer } from "preact/hooks"; import * as style from "./style.css"; import { newProject } from "../../models/project"; import TaskTable from "./tasks-table"; import TimePreview from "./time-preview"; import FinancialPreview from "./financial-preview"; import { projectReducer, addTask, updateTaskEstimation, removeTask } from "../../hooks/project-reducer"; import { Task, TaskID, EstimationConfidence } from "../../models/task"; const Project: FunctionalComponent = () => { const [project, dispatch] = useReducer(projectReducer, newProject()); const onTaskAdd = (task: Task) => { dispatch(addTask(task)); }; const onTaskRemove = (taskId: TaskID) => { dispatch(removeTask(taskId)); } const onEstimationChange = (taskId: TaskID, confidence: EstimationConfidence, value: number) => { dispatch(updateTaskEstimation(taskId, confidence, value)); }; return (
); }; export default Project;