"use client"; import { useCallback, useMemo, useState } from "react"; import { toolGroups } from "@/config/tools"; import { Editor, EditorProps } from "@/components/ui/editor"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { ClearButton } from "@/components/buttons/clear"; import { CopyButton } from "@/components/buttons/copy"; import { FileButton } from "@/components/buttons/file"; import { PasteButton } from "@/components/buttons/paste"; import { Configuration } from "@/components/configuration"; import { Configurations } from "@/components/configurations"; import { ControlMenu } from "@/components/control-menu"; import { icons } from "@/components/icons"; import { PageRootSection } from "@/components/page-root-section"; import { PageSection } from "@/components/page-section"; const two = " "; const four = " "; const zero = ""; const tab = "\t"; export default function Page() { const [indentation, setIndentation] = useState(two); const [input, setInput] = useState('{\n"foo":"bar"\n}'); let output: string; try { const parsed = JSON.parse(input) as unknown; output = JSON.stringify(parsed, null, indentation); } catch { output = ""; } const clearInput = useCallback(() => setInput(""), []); const onJsonChange: EditorProps["onChange"] = value => setInput(value ?? ""); const indentationIcon = useMemo(() => , []); const indentationConfig = useMemo( () => ( 2 spaces 4 spaces 1 tab minified } /> ), [indentation, indentationIcon] ); const inputPasteButton = useMemo(() => , []); const inputFileButton = useMemo( () => ( ), [] ); const inputClearButton = useMemo( () => , [clearInput] ); const outputCopyButton = useMemo(() => , [output]); const inputControl = ; const outputControl = ; return (
); }