feat(kanban): stickers feature + dashboard null guards (#0063)
- backend: Sticker type, idempotent stickers column, PUT /api/cards/:id/stickers, 4 tests - frontend: emoji-mart picker, toolbar button + ESC, draggable overlay with right-click delete, % coords for resize survival - dashboard: null guards on metrics arrays Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -5,6 +5,7 @@ import type {
|
||||
Column,
|
||||
Metrics,
|
||||
MetricsFilter,
|
||||
Sticker,
|
||||
User,
|
||||
} from "./types";
|
||||
|
||||
@@ -93,6 +94,13 @@ export function deleteCard(id: string): Promise<void> {
|
||||
return fetchJSON(`/cards/${id}`, { method: "DELETE" });
|
||||
}
|
||||
|
||||
export function updateCardStickers(id: string, stickers: Sticker[]): Promise<void> {
|
||||
return fetchJSON(`/cards/${id}/stickers`, {
|
||||
method: "PUT",
|
||||
body: JSON.stringify({ stickers }),
|
||||
});
|
||||
}
|
||||
|
||||
export function listTrash(): Promise<Card[]> {
|
||||
return fetchJSON("/trash");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user