Task Board {getTasks().tasks.length} tasks
{#if getTasks().showCreateForm}
appState.project.tasks.setState(projectId, 'newTitle', (e.target as HTMLInputElement).value)} onkeydown={(e) => { if (e.key === 'Enter') createTask(); }} /> appState.project.tasks.setState(projectId, 'newDesc', (e.target as HTMLInputElement).value)} />
{#if getTasks().error} {getTasks().error} {/if}
{/if}
{#each COLUMNS as col}
onDragOver(e, col)} ondragleave={onDragLeave} ondrop={(e) => onDrop(e, col)} role="list" aria-label="{COL_LABELS[col]} column" >
{COL_LABELS[col]} {getTasksByCol()[col]?.length ?? 0}
{#each getTasksByCol()[col] ?? [] as task (task.id)}
onDragStart(e, task.id)} ondragend={onDragEnd} role="listitem" >
{task.title}
{#if task.description}
{task.description}
{/if} {#if task.assignedTo}
@ {task.assignedTo}
{/if}
{/each}
{/each}