Status stuff
This commit is contained in:
@@ -12,6 +12,7 @@ export default function BoardView({
|
|||||||
tasks,
|
tasks,
|
||||||
setTasks,
|
setTasks,
|
||||||
createTask,
|
createTask,
|
||||||
|
statuses,
|
||||||
}: TaskViewProps) {
|
}: TaskViewProps) {
|
||||||
function onDragEnd(result: any) {
|
function onDragEnd(result: any) {
|
||||||
const { draggableId, source, destination } = result;
|
const { draggableId, source, destination } = result;
|
||||||
@@ -32,13 +33,12 @@ export default function BoardView({
|
|||||||
|
|
||||||
// Group tasks by status, using statuses from first available todo entity
|
// Group tasks by status, using statuses from first available todo entity
|
||||||
const tasksArray = Object.values(tasks);
|
const tasksArray = Object.values(tasks);
|
||||||
const statusIds = new Set(tasksArray.map((t) => t.statusId));
|
|
||||||
|
|
||||||
// Sort tasks by creation date within each status
|
// Sort tasks by creation date within each status
|
||||||
const tasksByStatus = Array.from(statusIds).map((statusId) => ({
|
const tasksByStatus = statuses.map((status) => ({
|
||||||
statusId,
|
status,
|
||||||
tasks: tasksArray
|
tasks: tasksArray
|
||||||
.filter((t) => t.statusId === statusId)
|
.filter((t) => t.statusId === status.id)
|
||||||
.sort((a, b) => a.createdAt - b.createdAt),
|
.sort((a, b) => a.createdAt - b.createdAt),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
@@ -46,8 +46,8 @@ export default function BoardView({
|
|||||||
<div className="w-full h-full flex flex-col gap-6">
|
<div className="w-full h-full flex flex-col gap-6">
|
||||||
<DragDropContext onDragEnd={onDragEnd}>
|
<DragDropContext onDragEnd={onDragEnd}>
|
||||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-6 items-start">
|
<div className="grid grid-cols-1 md:grid-cols-3 gap-6 items-start">
|
||||||
{tasksByStatus.map(({ statusId, tasks: statusTasks }) => (
|
{tasksByStatus.map(({ status, tasks: statusTasks }) => (
|
||||||
<Droppable key={statusId} droppableId={statusId}>
|
<Droppable key={status.id} droppableId={status.id}>
|
||||||
{(provided) => (
|
{(provided) => (
|
||||||
<Card
|
<Card
|
||||||
ref={provided.innerRef}
|
ref={provided.innerRef}
|
||||||
@@ -56,12 +56,12 @@ export default function BoardView({
|
|||||||
>
|
>
|
||||||
<CardHeader>
|
<CardHeader>
|
||||||
<CardTitle className="flex items-center justify-between">
|
<CardTitle className="flex items-center justify-between">
|
||||||
<span>{statusId}</span>
|
<span>{status.name}</span>
|
||||||
<Button
|
<Button
|
||||||
size="sm"
|
size="sm"
|
||||||
className="ml-auto"
|
className="ml-auto"
|
||||||
variant="outline"
|
variant="outline"
|
||||||
onClick={() => createTask(statusId)}
|
onClick={() => createTask(status.id)}
|
||||||
>
|
>
|
||||||
<PlusIcon />
|
<PlusIcon />
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
Reference in New Issue
Block a user