Release: CI/CD Pipeline & Architecture Updates #177
@@ -1,6 +1,6 @@
|
||||
"use client";
|
||||
|
||||
import { useState, useMemo } from "react";
|
||||
import React, { useState, useMemo } from "react";
|
||||
import type { Task } from "@mosaic/shared";
|
||||
import { TaskStatus } from "@mosaic/shared";
|
||||
import {
|
||||
@@ -40,7 +40,7 @@ const columns = [
|
||||
* - Task cards with title, priority badge, assignee avatar
|
||||
* - PATCH /api/tasks/:id on status change
|
||||
*/
|
||||
export function KanbanBoard({ tasks = [], onStatusChange }: KanbanBoardProps) {
|
||||
export function KanbanBoard({ tasks = [], onStatusChange }: KanbanBoardProps): JSX.Element {
|
||||
const [activeTaskId, setActiveTaskId] = useState<string | null>(null);
|
||||
|
||||
const sensors = useSensors(
|
||||
@@ -80,11 +80,11 @@ export function KanbanBoard({ tasks = [], onStatusChange }: KanbanBoardProps) {
|
||||
[tasks, activeTaskId]
|
||||
);
|
||||
|
||||
function handleDragStart(event: DragStartEvent) {
|
||||
function handleDragStart(event: DragStartEvent): void {
|
||||
setActiveTaskId(event.active.id as string);
|
||||
}
|
||||
|
||||
async function handleDragEnd(event: DragEndEvent) {
|
||||
async function handleDragEnd(event: DragEndEvent): Promise<void> {
|
||||
const { active, over } = event;
|
||||
|
||||
if (!over) {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
"use client";
|
||||
|
||||
import React from "react";
|
||||
import type { Task } from "@mosaic/shared";
|
||||
import { TaskStatus } from "@mosaic/shared";
|
||||
import { useDroppable } from "@dnd-kit/core";
|
||||
@@ -34,7 +35,7 @@ const statusBadgeColors = {
|
||||
* A droppable column for tasks of a specific status.
|
||||
* Uses @dnd-kit/core for drag-and-drop functionality.
|
||||
*/
|
||||
export function KanbanColumn({ status, title, tasks }: KanbanColumnProps) {
|
||||
export function KanbanColumn({ status, title, tasks }: KanbanColumnProps): JSX.Element {
|
||||
const { setNodeRef, isOver } = useDroppable({
|
||||
id: status,
|
||||
});
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
"use client";
|
||||
|
||||
import React from "react";
|
||||
import type { Task } from "@mosaic/shared";
|
||||
import { TaskPriority } from "@mosaic/shared";
|
||||
import { useSortable } from "@dnd-kit/sortable";
|
||||
@@ -47,7 +48,7 @@ function getInitials(name: string): string {
|
||||
* - Assignee avatar (if assigned)
|
||||
* - Due date (if set)
|
||||
*/
|
||||
export function TaskCard({ task }: TaskCardProps) {
|
||||
export function TaskCard({ task }: TaskCardProps): JSX.Element {
|
||||
const {
|
||||
attributes,
|
||||
listeners,
|
||||
|
||||
Reference in New Issue
Block a user