返回 presentation-ai
ToggleControls.tsx
根目录 / src / components / presentation / floating-toolbar / ToggleControls.tsx
1 "use client";
2
3 import { ListOrdered, MinusIcon } from "lucide-react";
4
5 import { ToolbarButton, ToolbarGroup } from "@/components/plate/ui/toolbar";
6 import { useToolbarContext } from "./ToolbarContext";
7
8 export function ToggleControls() {
9 const {
10 supportsNumberedControl,
11 supportsShowLineControl,
12 currentNumbered,
13 currentShowLine,
14 handleNodePropertyUpdate,
15 } = useToolbarContext();
16
17 if (!supportsNumberedControl && !supportsShowLineControl) {
18 return null;
19 }
20
21 return (
22 <>
23 {/* Numbered Control */}
24 {supportsNumberedControl && (
25 <ToolbarGroup>
26 <ToolbarButton
27 pressed={currentNumbered}
28 onClick={() => {
29 handleNodePropertyUpdate("numbered", !currentNumbered);
30 }}
31 tooltip="Toggle Numbered"
32 >
33 <ListOrdered className="size-4" />
34 </ToolbarButton>
35 </ToolbarGroup>
36 )}
37
38 {/* Show Line Control */}
39 {supportsShowLineControl && (
40 <ToolbarGroup>
41 <ToolbarButton
42 pressed={currentShowLine}
43 onClick={() => {
44 handleNodePropertyUpdate("showLine", !currentShowLine);
45 }}
46 tooltip="Toggle Show Line"
47 >
48 <MinusIcon className="size-4" />
49 </ToolbarButton>
50 </ToolbarGroup>
51 )}
52 </>
53 );
54 }
55
55 lines Plain Text