Dev #2

Merged
sandrodach merged 37 commits from dev into main 2026-10-25 12:14:23 +01:00
Showing only changes of commit 3c550373eb - Show all commits
@@ -211,23 +211,16 @@ export const WorkspaceView: React.FC<WorkspaceViewProps> = ({
tags.push(`folder:${path}`);
}
const created = await api.createDocument({
title: 'Neuer Gedanke / Notiz',
title: 'Neue Notiz',
icon: '📄',
folderPath: path,
blocks: [
{
id: `blk_${Date.now()}_1`,
type: 'bullet',
content: 'Erster Gedanke…',
content: '',
level: 0,
},
{
id: `blk_${Date.now()}_2`,
type: 'todo',
content: 'Nächste Aufgabe',
checked: false,
level: 1,
},
],
tags,
isPinned: false,
@@ -1391,6 +1384,17 @@ export const WorkspaceView: React.FC<WorkspaceViewProps> = ({
type="text"
value={selectedDoc.title}
onChange={(e) => persistDocument({ ...selectedDoc, title: e.target.value })}
onKeyDown={(e) => {
if (e.key === 'Enter') {
e.preventDefault();
if (selectedDoc.blocks.length > 0) {
const firstId = selectedDoc.blocks[0].id;
blockInputRefs.current[firstId]?.focus();
} else {
insertNewBulletAfter(-1, 0);
}
}
}}
placeholder="Dokument-Titel…"
className="w-full bg-transparent text-xl sm:text-2xl font-bold text-main focus:outline-none placeholder:text-faint"
/>
@@ -1423,7 +1427,19 @@ export const WorkspaceView: React.FC<WorkspaceViewProps> = ({
{/* =========================================================== */}
{/* LOGSEQ HIERARCHICAL BULLET LIST CANVAS */}
{/* =========================================================== */}
<div className="space-y-1 pt-2">
<div
className="space-y-1 pt-2 min-h-[300px] cursor-text"
onClick={(e) => {
if (e.target === e.currentTarget) {
if (selectedDoc.blocks.length === 0) {
insertNewBulletAfter(-1, 0);
} else {
const lastBlock = selectedDoc.blocks[selectedDoc.blocks.length - 1];
blockInputRefs.current[lastBlock.id]?.focus();
}
}
}}
>
{visibleBlocks.map(({ block, originalIndex }) => {
const blockLevel = Math.max(0, (block.level || 0) - (zoomedBlock ? (zoomedBlock.level || 0) + 1 : 0));
const isChildrenPresent = hasChildren(selectedDoc.blocks, originalIndex);
@@ -1738,39 +1754,6 @@ export const WorkspaceView: React.FC<WorkspaceViewProps> = ({
);
})}
</div>
{/* Bottom Add Bullet Button */}
<div className="pt-3 border-t border-border flex items-center gap-2">
<button
type="button"
onClick={() => {
if (zoomedBlock) {
const lastDescendant = visibleBlocks[visibleBlocks.length - 1];
if (lastDescendant) {
insertNewBulletAfter(
lastDescendant.originalIndex,
lastDescendant.block.level || (zoomedBlock.level || 0) + 1
);
} else {
const zoomIdx = selectedDoc.blocks.findIndex((b) => b.id === zoomedBlock.id);
if (zoomIdx !== -1) {
insertNewBulletAfter(zoomIdx, (zoomedBlock.level || 0) + 1);
}
}
} else {
const lastBlock = selectedDoc.blocks[selectedDoc.blocks.length - 1];
insertNewBulletAfter(
selectedDoc.blocks.length - 1,
lastBlock?.level || 0
);
}
}}
className="btn-action text-xs flex items-center gap-1.5"
>
<Plus className="w-3.5 h-3.5 text-accent" />
<span>Neuer Bullet-Punkt (oder Enter drücken)</span>
</button>
</div>
</div>
) : (
<div className="p-8 panel-surface text-center text-muted text-xs">