"use client"; import { useCallback, useMemo, useState } from "react"; import MD5 from "crypto-js/md5"; import SHA1 from "crypto-js/sha1"; import SHA256 from "crypto-js/sha256"; import SHA512 from "crypto-js/sha512"; import { toolGroups } from "@/config/tools"; import { Input } from "@/components/ui/input"; import { Textarea, TextareaProps } from "@/components/ui/textarea"; import * as Button from "@/components/buttons"; import { Configuration } from "@/components/configuration"; import { Configurations } from "@/components/configurations"; import { ControlMenu } from "@/components/control-menu"; import * as icons from "@/components/icons"; import { LabeledSwitch } from "@/components/labeled-switch"; import { PageRootSection } from "@/components/page-root-section"; import { PageSection } from "@/components/page-section"; export default function Page() { const [uppercase, setUppercase] = useState(false); const [input, setInput] = useState("Hello there !"); const newMd5 = useMemo(() => MD5(input).toString(), [input]); const newSha1 = useMemo(() => SHA1(input).toString(), [input]); const newSha256 = useMemo(() => SHA256(input).toString(), [input]); const newSha512 = useMemo(() => SHA512(input).toString(), [input]); const md5 = uppercase ? newMd5.toUpperCase() : newMd5; const sha1 = uppercase ? newSha1.toUpperCase() : newSha1; const sha256 = uppercase ? newSha256.toUpperCase() : newSha256; const sha512 = uppercase ? newSha512.toUpperCase() : newSha512; const clearInput = useCallback(() => setInput(""), []); const onInputChange: TextareaProps["onChange"] = e => setInput(e.currentTarget.value); const uppercaseConfig = ( } title="Uppercase" control={ } /> ); const inputPasteButton = ; const inputFileButton = ; const inputClearButton = ; const inputControl = ; const md5CopyButton = ; const sha1CopyButton = ; const sha256CopyButton = ( ); const sha512CopyButton = ( ); return (