import React, { ChangeEvent, MouseEvent } from "react"; import useModalStore from "../../stores/useModalStore"; import useToastStore from "../../stores/useToastStore"; import copyToClipboard, { copySupported } from "../../lib/copyToClipboard"; import * as Images from "../../types/Images"; import { Locale } from "../../types"; interface Props { alternative: Record; caption: Record; image: Images.Resource; locale: string; locales: Record; setLocale: (locale: string) => void; save: (evt: MouseEvent) => void; showCaption: boolean; updateLocalization: (name: "alternative" | "caption", value: string) => void; } export default function Form(props: Props) { const { alternative, caption, image, locale, locales } = props; const closeModal = useModalStore((state) => state.close); const notice = useToastStore((state) => state.notice); const copyEmbedCode = (evt: MouseEvent) => { evt.preventDefault(); copyToClipboard(`[image:${image.id}]`); notice("Embed code copied to clipboard"); }; const handleChangeLocale = (evt: ChangeEvent) => { props.setLocale(evt.target.value); }; const inputDir = (locales && locales[locale] && locales[locale].dir) || "ltr"; return (
{copySupported() && }
{locales && Object.keys(locales).length > 1 && (
)}
For visually impaired users and search engines.