refactor: update FixedToolbarButtons to conditionally render save button based on read-only state, and adjust dropdown menu styles for better usability

This commit is contained in:
Anish Sarkar 2026-02-17 02:01:50 +05:30
parent df3f724caf
commit 6af251a108
3 changed files with 21 additions and 19 deletions

View file

@ -101,28 +101,30 @@ export function FixedToolbarButtons() {
<LinkToolbarButton />
</ToolbarGroup>
{/* Save button — appears when in editing mode with unsaved changes */}
{onSave && hasUnsavedChanges && (
<ToolbarGroup>
<ToolbarButton
tooltip={isSaving ? 'Saving...' : 'Save (⌘+S)'}
onClick={onSave}
disabled={isSaving}
className="text-white"
>
{isSaving ? (
<Spinner size="xs" />
) : (
<SaveIcon />
)}
</ToolbarButton>
</ToolbarGroup>
)}
</>
)}
<div className="grow" />
{/* Save button — only in edit mode with unsaved changes */}
{!readOnly && onSave && hasUnsavedChanges && (
<ToolbarGroup>
<ToolbarButton
tooltip={isSaving ? 'Saving...' : 'Save (⌘+S)'}
onClick={onSave}
disabled={isSaving}
className="bg-primary text-primary-foreground hover:bg-primary/90"
>
{isSaving ? (
<Spinner size="xs" />
) : (
<SaveIcon />
)}
</ToolbarButton>
</ToolbarGroup>
)}
{/* Mode toggle */}
{canToggleMode && (
<ToolbarGroup>
<ModeToolbarButton />

View file

@ -195,7 +195,7 @@ export function InsertToolbarButton(props: DropdownMenuProps) {
</DropdownMenuTrigger>
<DropdownMenuContent
className="flex max-h-[500px] min-w-0 flex-col overflow-y-auto"
className="flex max-h-[300px] min-w-0 flex-col overflow-y-scroll"
align="start"
>
{groups.map(({ group, items }) => (

View file

@ -155,7 +155,7 @@ export function TurnIntoToolbarButton(props: DropdownMenuProps) {
</DropdownMenuTrigger>
<DropdownMenuContent
className="ignore-click-outside/toolbar min-w-0"
className="ignore-click-outside/toolbar min-w-0 max-h-[350px] overflow-y-scroll"
onCloseAutoFocus={(e) => {
e.preventDefault();
editor.tf.focus();