import { Box, Dialog, DialogActionButton, DialogActions, DialogCancelButton, DialogContent, DialogHeader, Text, } from "@prismicio/editor-ui"; import { useRouter } from "next/router"; import { type FC, type PropsWithChildren, useState } from "react"; import { deleteVariation } from "@/features/slices/sliceBuilder/actions/deleteVariation"; import { useSliceState } from "@/features/slices/sliceBuilder/SliceBuilderProvider"; import type { ComponentUI } from "@/legacy/lib/models/common/ComponentUI"; import type { VariationSM } from "@/legacy/lib/models/common/Slice"; import useSliceMachineActions from "@/modules/useSliceMachineActions"; type DeleteVariationModalProps = { isOpen: boolean; onClose: () => void; slice: ComponentUI; variation: VariationSM | undefined; }; export const DeleteVariationModal: FC = ({ isOpen, onClose, slice, variation, }) => { const router = useRouter(); const [isDeleting, setIsDeleting] = useState(false); const { saveSliceSuccess } = useSliceMachineActions(); const { setSlice } = useSliceState(); return ( !open && onClose()} size={{ width: 448, height: "auto" }} > This action will remove the variation from the slice model and delete associated files. When you push your changes, the variation will disappear from your repository. This update will{" "} not affect your documents until you edit{" "} them manually. { if (!variation) return; void (async () => { setIsDeleting(true); try { const newSlice = await deleteVariation({ component: slice, router, saveSliceSuccess, variation, }); setSlice(newSlice); } catch {} setIsDeleting(false); onClose(); })(); }} loading={isDeleting} > Delete ); }; const Bold: FC = (props) => ( );