fix(tasks): preserve linebreaks in task notes display with whitespace-pre-wrap
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 56s
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 56s
This commit is contained in:
1 parent
0ec1a8b7f7
commit
577893172b
1 file changed
+35
-11
@@ -833,8 +833,16 @@ export const TasksView: React.FC<TasksViewProps> = ({
|
|||||||
<textarea
|
<textarea
|
||||||
value={notesDraft}
|
value={notesDraft}
|
||||||
onChange={(e) => setNotesDraft(e.target.value)}
|
onChange={(e) => setNotesDraft(e.target.value)}
|
||||||
placeholder="Detailnotizen eingeben…"
|
onKeyDown={(e) => {
|
||||||
rows={2}
|
if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) {
|
||||||
|
e.preventDefault();
|
||||||
|
handleSaveNotes(task);
|
||||||
|
} else if (e.key === 'Escape') {
|
||||||
|
setActiveNotesTaskId(null);
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
placeholder="Detailnotizen eingeben… (Shift+Enter für Zeilenumbruch, Strg+Enter zum Speichern)"
|
||||||
|
rows={3}
|
||||||
className="w-full input-field p-1.5 text-xs resize-none"
|
className="w-full input-field p-1.5 text-xs resize-none"
|
||||||
/>
|
/>
|
||||||
<div className="flex justify-end gap-1">
|
<div className="flex justify-end gap-1">
|
||||||
@@ -858,7 +866,7 @@ export const TasksView: React.FC<TasksViewProps> = ({
|
|||||||
setActiveNotesTaskId(task.id);
|
setActiveNotesTaskId(task.id);
|
||||||
setNotesDraft(task.notes || '');
|
setNotesDraft(task.notes || '');
|
||||||
}}
|
}}
|
||||||
className="p-1.5 bg-canvas border border-border text-[11px] text-muted break-words cursor-pointer hover:border-strong"
|
className="p-1.5 bg-canvas border border-border text-[11px] text-muted break-words whitespace-pre-wrap leading-relaxed cursor-pointer hover:border-strong"
|
||||||
title="Klicken zum Bearbeiten der Notizen"
|
title="Klicken zum Bearbeiten der Notizen"
|
||||||
>
|
>
|
||||||
{task.notes}
|
{task.notes}
|
||||||
@@ -958,8 +966,16 @@ export const TasksView: React.FC<TasksViewProps> = ({
|
|||||||
<textarea
|
<textarea
|
||||||
value={notesDraft}
|
value={notesDraft}
|
||||||
onChange={(e) => setNotesDraft(e.target.value)}
|
onChange={(e) => setNotesDraft(e.target.value)}
|
||||||
placeholder="Detailnotizen eingeben…"
|
onKeyDown={(e) => {
|
||||||
rows={2}
|
if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) {
|
||||||
|
e.preventDefault();
|
||||||
|
handleSaveNotes(task);
|
||||||
|
} else if (e.key === 'Escape') {
|
||||||
|
setActiveNotesTaskId(null);
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
placeholder="Detailnotizen eingeben… (Shift+Enter für Zeilenumbruch, Strg+Enter zum Speichern)"
|
||||||
|
rows={3}
|
||||||
className="w-full input-field p-1.5 text-xs resize-none"
|
className="w-full input-field p-1.5 text-xs resize-none"
|
||||||
/>
|
/>
|
||||||
<div className="flex justify-end gap-1">
|
<div className="flex justify-end gap-1">
|
||||||
@@ -983,7 +999,7 @@ export const TasksView: React.FC<TasksViewProps> = ({
|
|||||||
setActiveNotesTaskId(task.id);
|
setActiveNotesTaskId(task.id);
|
||||||
setNotesDraft(task.notes || '');
|
setNotesDraft(task.notes || '');
|
||||||
}}
|
}}
|
||||||
className="p-1.5 bg-canvas border border-border text-[11px] text-muted break-words cursor-pointer hover:border-strong"
|
className="p-1.5 bg-canvas border border-border text-[11px] text-muted break-words whitespace-pre-wrap leading-relaxed cursor-pointer hover:border-strong"
|
||||||
>
|
>
|
||||||
{task.notes}
|
{task.notes}
|
||||||
</div>
|
</div>
|
||||||
@@ -1223,8 +1239,16 @@ export const TasksView: React.FC<TasksViewProps> = ({
|
|||||||
<textarea
|
<textarea
|
||||||
value={notesDraft}
|
value={notesDraft}
|
||||||
onChange={(e) => setNotesDraft(e.target.value)}
|
onChange={(e) => setNotesDraft(e.target.value)}
|
||||||
placeholder="Detailnotizen eingeben…"
|
onKeyDown={(e) => {
|
||||||
rows={2}
|
if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) {
|
||||||
|
e.preventDefault();
|
||||||
|
handleSaveNotes(task);
|
||||||
|
} else if (e.key === 'Escape') {
|
||||||
|
setActiveNotesTaskId(null);
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
placeholder="Detailnotizen eingeben… (Shift+Enter für Zeilenumbruch, Strg+Enter zum Speichern)"
|
||||||
|
rows={3}
|
||||||
className="w-full input-field p-2 text-xs resize-none"
|
className="w-full input-field p-2 text-xs resize-none"
|
||||||
/>
|
/>
|
||||||
<div className="flex justify-end gap-1.5">
|
<div className="flex justify-end gap-1.5">
|
||||||
@@ -1243,16 +1267,16 @@ export const TasksView: React.FC<TasksViewProps> = ({
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
) : task.notes ? (
|
) : task.notes ? (
|
||||||
<p
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setActiveNotesTaskId(task.id);
|
setActiveNotesTaskId(task.id);
|
||||||
setNotesDraft(task.notes || '');
|
setNotesDraft(task.notes || '');
|
||||||
}}
|
}}
|
||||||
className="text-xs text-muted bg-canvas p-1.5 border border-border cursor-pointer hover:border-strong"
|
className="text-xs text-muted bg-canvas p-1.5 border border-border break-words whitespace-pre-wrap leading-relaxed cursor-pointer hover:border-strong"
|
||||||
title="Klicken zum Bearbeiten"
|
title="Klicken zum Bearbeiten"
|
||||||
>
|
>
|
||||||
{task.notes}
|
{task.notes}
|
||||||
</p>
|
</div>
|
||||||
) : null}
|
) : null}
|
||||||
|
|
||||||
{/* Subtasks Checklist & Inline Creator */}
|
{/* Subtasks Checklist & Inline Creator */}
|
||||||
|
|||||||
Reference in new issue
Block a user