import { useState, useEffect, useContext } from 'react'; // Context import { AppContext } from '../App'; // Router import { useLocation } from 'react-router-dom'; // Cloudscape import { Button, Container, ExpandableSection, Form, Header, SpaceBetween, Spinner, } from '@cloudscape-design/components'; // App import { DEFAULT_SETTINGS } from '../../consts/defaultSettings'; import { appRegionOptions, tlmAuthOptions, imageFrameOverrideAuthOptions, onOffOptions } from './selectOptions'; import { SettingsSelect, SettingsInput } from './FormComponents'; export default function Settings({ setAppSettings }) { const { appSettings, buildCrumb } = useContext(AppContext); const location = useLocation(); const [isSaving, setIsSaving] = useState(false); const [settings, setSettings] = useState(appSettings); // make a copy of appSettings, write back it after form validation function updateSettings(settingKey, value) { setSettings((prevSettings) => ({ ...prevSettings, ...{ [settingKey]: value, }, })); } // Set crumbs useEffect(() => { buildCrumb(location.pathname, ['Settings']); }, [buildCrumb, location]); function handleResetToDefaults() { setSettings(DEFAULT_SETTINGS); } // reset settings back to appSettings from appContext function handleReload() { setSettings(appSettings); } function handleSave() { setIsSaving(true); setTimeout(() => { setAppSettings(settings); setIsSaving(false); window.location.reload(); }, 900); } return ( Settings } >
{ e.preventDefault(); handleSave(); }} > } secondaryActions={ } >
); }