import { Button, ButtonGroup, Field as FieldComponent, FieldLabel, ModalBody, ModalFooter, ModalHeader, TextInput, } from "@contentstack/venus-components" import { ChangeEvent, useEffect, useState } from "react" import FocalPointPicker from "~/shared-components/FocalPointPicker" import type { FocalPoint, ImageVaultAsset } from "~/types/imagevault" type ImageEditModalProps = { fieldData: ImageVaultAsset setData: (data: ImageVaultAsset) => void closeModal: () => void } export default function ImageEditModal({ fieldData, closeModal, setData, }: ImageEditModalProps) { const [altText, setAltText] = useState("") const [caption, setCaption] = useState("") const [focalPoint, setFocalPoint] = useState({ x: 50, y: 50 }) const assetUrl = fieldData.url useEffect(() => { if (fieldData.meta.alt) { setAltText(fieldData.meta.alt) } if (fieldData.meta.caption) { setCaption(fieldData.meta.caption) } }, [fieldData.meta]) useEffect(() => { if (fieldData.focalPoint) { setFocalPoint(fieldData.focalPoint) } }, [fieldData.focalPoint]) function handleSave() { const newData = { ...fieldData, meta: { alt: altText, caption, }, focalPoint, } setData(newData) closeModal() } function changeFocalPoint(focalPoint: FocalPoint) { setFocalPoint(focalPoint) } return ( <>
Alt text ) => setAltText(e.target.value) } /> Caption ) => setCaption(e.target.value) } /> Focal Point Imagevault Id
) }