import { Mutation } from "@tanstack/react-query"; import { JsModal, type ModalMode, devToolsStorageKeys, } from "@react-buoy/shared-ui"; import { useGetMutationById } from "../../hooks/useSelectedMutation"; import { ReactQueryModalHeader } from "./ReactQueryModalHeader"; import { MutationEditorMode } from "../MutationEditorMode"; import { useState, useCallback } from "react"; interface MutationEditorModalProps { visible: boolean; selectedMutationId?: number; onMutationSelect: (mutation: Mutation | undefined) => void; onClose: () => void; onMinimize?: (modalState: any) => void; onTabChange: (tab: "queries" | "mutations") => void; enableSharedModalDimensions?: boolean; } /** * Modal variant dedicated to editing a single mutation entry. Restores persisted positioning and * mirrors the behavior of the query editor. */ export function MutationEditorModal({ visible, selectedMutationId, onMutationSelect, onClose, onMinimize, onTabChange, enableSharedModalDimensions = false, }: MutationEditorModalProps) { const selectedMutation = useGetMutationById(selectedMutationId); const [modalMode, setModalMode] = useState("bottomSheet"); const handleModeChange = useCallback((mode: ModalMode) => { setModalMode(mode); }, []); const renderHeaderContent = () => ( onMutationSelect(undefined)} /> ); const storagePrefix = enableSharedModalDimensions ? devToolsStorageKeys.reactQuery.modal() : devToolsStorageKeys.reactQuery.mutationModal(); if (!visible || !selectedMutation) return null; return ( ); }