feat(workspace): make hoisted bullet point header editable in zoom mode
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 58s
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 58s
This commit is contained in:
1 parent
29d202cc4e
commit
5b5b7b1810
1 file changed
+39
-11
@@ -1391,13 +1391,26 @@ export const WorkspaceView: React.FC<WorkspaceViewProps> = ({
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* If zoomed, show zoomed block as prominent header */}
|
||||
{/* If zoomed, show zoomed block as editable prominent header */}
|
||||
{zoomedBlock && (
|
||||
<div className="pb-2 border-b border-border">
|
||||
<h2 className="text-xl font-bold text-main flex items-center gap-2">
|
||||
<span className="w-2.5 h-2.5 rounded-pill bg-accent" />
|
||||
<span>{zoomedBlock.content || 'Unbenannter Ast'}</span>
|
||||
</h2>
|
||||
<div className="pb-2 border-b border-border flex items-center gap-2.5">
|
||||
<span className="w-2.5 h-2.5 rounded-pill bg-accent flex-shrink-0" />
|
||||
<input
|
||||
type="text"
|
||||
value={zoomedBlock.content}
|
||||
onChange={(e) => updateBlock(zoomedBlock.id, { content: e.target.value })}
|
||||
onKeyDown={(e) => {
|
||||
if (e.key === 'Enter') {
|
||||
e.preventDefault();
|
||||
const zoomIdx = selectedDoc.blocks.findIndex((b) => b.id === zoomedBlock.id);
|
||||
if (zoomIdx !== -1) {
|
||||
insertNewBulletAfter(zoomIdx, (zoomedBlock.level || 0) + 1);
|
||||
}
|
||||
}
|
||||
}}
|
||||
placeholder="Bullet-Titel bearbeiten… (Enter für Unterpunkt)"
|
||||
className="w-full bg-transparent text-xl font-bold text-main focus:outline-none placeholder:text-faint"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
@@ -1683,11 +1696,26 @@ export const WorkspaceView: React.FC<WorkspaceViewProps> = ({
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => {
|
||||
const lastBlock = selectedDoc.blocks[selectedDoc.blocks.length - 1];
|
||||
insertNewBulletAfter(
|
||||
selectedDoc.blocks.length - 1,
|
||||
lastBlock?.level || 0
|
||||
);
|
||||
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"
|
||||
>
|
||||
|
||||
Reference in new issue
Block a user