ctxMenu.open(e, task)}
class="task-item"
+ role="listitem"
use:dragSource={{
type: 'task',
data: () => ({
@@ -191,44 +147,68 @@
canDrop: (p) => !taskTagIds.includes((p.data as unknown as TagDragData).id),
}}
>
-
toggleComplete(e, task.id)}
- onkeydown={(e) => e.key === 'Enter' && toggleComplete(e, task.id)}
- role="checkbox"
- aria-checked={task.isCompleted}
- tabindex={0}
+ onclick={(e) => {
+ e.preventDefault();
+ e.stopPropagation();
+ toggleComplete(e, task.id);
+ }}
+ aria-label={task.isCompleted ? 'Als unerledigt markieren' : 'Als erledigt markieren'}
>
- {#if task.isCompleted}{/if}
-
-
{task.title}
- {#if task.dueDate || taskTags.length > 0 || task.transcriptModel}
-
- {#if task.dueDate}
- {new Date(task.dueDate).toLocaleDateString('de')}
- {/if}
- {#if task.transcriptModel}
- 🎤 {task.transcriptModel}
- {/if}
- {#each taskTags as tag (tag.id)}
-
-
- {tag.name}
-
- {/each}
-
+ {#if task.isCompleted}
{/if}
+
+
+
+ {#each taskTags as tag (tag.id)}
+
+ {/each}
+ {#if badge}
+ {badge.label}
+ {/if}
+ {#if task.isCompleted && task.completedAt}
+ {new Date(task.completedAt).toLocaleTimeString('de', {
+ hour: '2-digit',
+ minute: '2-digit',
+ })} Uhr, {new Date(task.completedAt).toLocaleDateString('de', {
+ day: 'numeric',
+ month: 'short',
+ })}
{/if}
-
+