import { FunctionalComponent, h } from "preact"; import { Project } from "../../models/project"; import style from './style.module.css'; import { projectReducer, ProjectReducerActions, updateTaskCategoryCost, updateTaskCategoryLabel, removeTaskCategory } from "../../hooks/use-project-reducer"; import EditableText from "../../components/editable-text"; import { TaskCategoryID } from "../../models/task"; import ProjectTimeUnit from "../../components/project-time-unit"; import { getCurrency, getTaskCategoryCost } from "../../models/params"; export interface TaskCategoriesTableProps { project: Project dispatch: (action: ProjectReducerActions) => void } const TaskCategoriesTable: FunctionalComponent = ({ project, dispatch }) => { const onTaskCategoryRemove = (categoryId: TaskCategoryID) => { dispatch(removeTaskCategory(categoryId)); }; const onTaskCategoryLabelChange = (categoryId: TaskCategoryID, value: string) => { dispatch(updateTaskCategoryLabel(categoryId, value)); }; const onTaskCategoryCostChange = (categoryId: TaskCategoryID, value: string) => { const cost = parseFloat(value); dispatch(updateTaskCategoryCost(categoryId, cost)); }; return (
{ Object.values(project.params.taskCategories).map(tc => { return ( ); }) }
Catégorie Coût par unité de temps
({value} {getCurrency(project)})} onChange={onTaskCategoryCostChange.bind(null, tc.id)} />
); }; export default TaskCategoriesTable;