'use client'; import * as React from 'react'; import Box from '@mui/material/Box'; import Button from '@mui/material/Button'; import Stack from '@mui/material/Stack'; import Typography from '@mui/material/Typography'; import { Plus as PlusIcon } from '@phosphor-icons/react/dist/ssr/Plus'; import { BoardView } from './board-view'; import { ColumnModal } from './column-modal'; import { TaskModal } from './task-modal'; import { TasksContext } from './tasks-context'; // You may want to also have the List instead of Board. // We do not handle the list at this moment. export interface TasksViewProps { mode?: 'board' | 'list'; } export function TasksView(_: TasksViewProps): React.JSX.Element { const { columns, tasks, currentColumnId, currentTaskId, setCurrentColumnId, setCurrentTaskId, updateColumn, updateTask, deleteTask, addComment, } = React.useContext(TasksContext); const currentColumn = currentColumnId ? columns.get(currentColumnId) : undefined; const currentTask = currentTaskId ? tasks.get(currentTaskId) : undefined; return ( Tasks
{currentColumn ? ( { setCurrentColumnId(undefined); }} onColumnUpdate={updateColumn} open /> ) : null} {currentTask ? ( { setCurrentTaskId(undefined); }} onCommentAdd={addComment} onTaskDelete={(taskId: string): void => { setCurrentColumnId(undefined); deleteTask(taskId); }} onTaskUpdate={updateTask} open task={currentTask} /> ) : null}
); }