Compare commits

...

2 Commits

Author SHA1 Message Date
Henry
bedf49387b feat: open new checklist item form on enter 2025-12-18 22:08:23 +00:00
Henry
2694498335 fix: update checklist when pressing enter on edit 2025-12-18 22:00:25 +00:00
2 changed files with 12 additions and 2 deletions

View File

@@ -17,6 +17,7 @@ interface ChecklistItemRowProps {
completed: boolean; completed: boolean;
}; };
cardPublicId: string; cardPublicId: string;
onCreateNewItem?: () => void;
viewOnly?: boolean; viewOnly?: boolean;
dragHandleProps?: DraggableProvided["dragHandleProps"]; dragHandleProps?: DraggableProvided["dragHandleProps"];
isDragging?: boolean; isDragging?: boolean;
@@ -25,6 +26,7 @@ interface ChecklistItemRowProps {
export default function ChecklistItemRow({ export default function ChecklistItemRow({
item, item,
cardPublicId, cardPublicId,
onCreateNewItem,
viewOnly = false, viewOnly = false,
dragHandleProps, dragHandleProps,
isDragging = false, isDragging = false,
@@ -187,7 +189,10 @@ export default function ChecklistItemRow({
disabled={viewOnly} disabled={viewOnly}
onChange={(e) => setTitle(e.target.value)} onChange={(e) => setTitle(e.target.value)}
// @ts-expect-error - valid event // @ts-expect-error - valid event
onBlur={(e: Event) => commitTitle(e.target.innerHTML as string)} onBlur={(e: Event) => {
const innerHTML = (e.target as HTMLElement).innerHTML;
commitTitle(innerHTML);
}}
className={twMerge( className={twMerge(
"m-0 min-h-[20px] w-full p-0 text-sm leading-[20px] text-light-950 outline-none focus-visible:outline-none dark:text-dark-950", "m-0 min-h-[20px] w-full p-0 text-sm leading-[20px] text-light-950 outline-none focus-visible:outline-none dark:text-dark-950",
viewOnly && "cursor-default", viewOnly && "cursor-default",
@@ -197,7 +202,9 @@ export default function ChecklistItemRow({
if (viewOnly) return; if (viewOnly) return;
if (e.key === "Enter") { if (e.key === "Enter") {
e.preventDefault(); e.preventDefault();
commitTitle(title); const innerHTML = (e.currentTarget as HTMLElement).innerHTML;
commitTitle(innerHTML);
onCreateNewItem?.();
} }
if (e.key === "Escape") { if (e.key === "Escape") {
e.preventDefault(); e.preventDefault();

View File

@@ -210,6 +210,9 @@ export default function Checklists({
completed: item.completed, completed: item.completed,
}} }}
cardPublicId={cardPublicId} cardPublicId={cardPublicId}
onCreateNewItem={() =>
setActiveChecklistForm?.(checklist.publicId)
}
viewOnly={viewOnly} viewOnly={viewOnly}
dragHandleProps={provided.dragHandleProps} dragHandleProps={provided.dragHandleProps}
isDragging={snapshot.isDragging} isDragging={snapshot.isDragging}