import React, { useEffect, useState } from 'react'; import { useRecoilValue } from 'recoil'; import exportFromJSON from 'export-from-json'; import DialogTemplate from '../ui/DialogTemplate.jsx'; import { Dialog, DialogButton } from '../ui/Dialog.tsx'; import SaveAsPresetDialog from './SaveAsPresetDialog'; import cleanupPreset from '~/utils/cleanupPreset'; import Settings from './Settings'; import store from '~/store'; // A preset dialog to show readonly preset values. const EndpointOptionsDialog = ({ open, onOpenChange, preset: _preset, title }) => { // const [title, setTitle] = useState('My Preset'); const [preset, setPreset] = useState(_preset); const [saveAsDialogShow, setSaveAsDialogShow] = useState(false); const endpointsFilter = useRecoilValue(store.endpointsFilter); const setOption = param => newValue => { let update = {}; update[param] = newValue; setPreset(prevState => ({ ...prevState, ...update })); }; const saveAsPreset = () => { setSaveAsDialogShow(true); }; const exportPreset = () => { exportFromJSON({ data: cleanupPreset({ preset, endpointsFilter }), fileName: `${preset?.title}.json`, exportType: exportFromJSON.types.json }); }; useEffect(() => { setPreset(_preset); }, [open]); return ( <>
} buttons={ <> Save As Preset } leftButtons={ <> Export } />
); }; export default EndpointOptionsDialog;