"use client"; import { BoldIcon, Code2Icon, HighlighterIcon, ItalicIcon, RedoIcon, SaveIcon, StrikethroughIcon, UnderlineIcon, UndoIcon, } from "lucide-react"; import { KEYS } from "platejs"; import { useEditorReadOnly, useEditorRef } from "platejs/react"; import * as React from "react"; import { useEditorSave } from "@/components/editor/editor-save-context"; import { Spinner } from "@/components/ui/spinner"; import { usePlatformShortcut } from "@/hooks/use-platform-shortcut"; import { InsertToolbarButton } from "./insert-toolbar-button"; import { LinkToolbarButton } from "./link-toolbar-button"; import { MarkToolbarButton } from "./mark-toolbar-button"; import { ModeToolbarButton } from "./mode-toolbar-button"; import { ToolbarButton, ToolbarGroup } from "./toolbar"; import { TurnIntoToolbarButton } from "./turn-into-toolbar-button"; export function FixedToolbarButtons() { const readOnly = useEditorReadOnly(); const editor = useEditorRef(); const { onSave, hasUnsavedChanges, isSaving, canToggleMode } = useEditorSave(); const { shortcut } = usePlatformShortcut(); return (
{/* Scrollable editing buttons */}
{!readOnly && ( <> { editor.undo(); editor.tf.focus(); }} > { editor.redo(); editor.tf.focus(); }} > )}
{/* Fixed right-side buttons (Save + Mode) */}
{/* Save button — only in edit mode with unsaved changes */} {!readOnly && onSave && hasUnsavedChanges && ( {isSaving ? : } )} {/* Mode toggle */} {canToggleMode && ( )}
); }