fix: add save session checkbox to run modal on scenarios list page

- add saveSessionFlag state to ScenariosPage
- pass saveSessionFlag to scenarios.run() call
- render save session checkbox in run modal when envs are available
- reset saveSessionFlag after scenario run completes
This commit is contained in:
2026-04-14 19:24:13 +03:00
parent dcb002304b
commit 80d9af42b5
+20 -7
View File
@@ -29,6 +29,7 @@ export function ScenariosPage() {
const [deleting, setDeleting] = useState(false); const [deleting, setDeleting] = useState(false);
const [runScenarioId, setRunScenarioId] = useState<string | null>(null); const [runScenarioId, setRunScenarioId] = useState<string | null>(null);
const [running, setRunning] = useState(false); const [running, setRunning] = useState(false);
const [saveSessionFlag, setSaveSessionFlag] = useState(false);
const [envs, setEnvs] = useState<Environment[]>([]); const [envs, setEnvs] = useState<Environment[]>([]);
const [selectedEnvId, setSelectedEnvId] = useState(''); const [selectedEnvId, setSelectedEnvId] = useState('');
@@ -59,10 +60,11 @@ export function ScenariosPage() {
if (!runScenarioId || !selectedEnvId) return; if (!runScenarioId || !selectedEnvId) return;
setRunning(true); setRunning(true);
try { try {
const run = await scenarios.run(runScenarioId, selectedEnvId); const run = await scenarios.run(runScenarioId, selectedEnvId, saveSessionFlag);
toast.success('Scenario run started'); toast.success('Scenario run started');
navigate(`/scenarios/${runScenarioId}/runs/${run.id}`); navigate(`/scenarios/${runScenarioId}/runs/${run.id}`);
setRunScenarioId(null); setRunScenarioId(null);
setSaveSessionFlag(false);
} catch (err) { } catch (err) {
toast.error((err as Error).message); toast.error((err as Error).message);
} finally { } finally {
@@ -208,12 +210,23 @@ export function ScenariosPage() {
{envs.length === 0 ? ( {envs.length === 0 ? (
<p>{t('scenarios.run_modal_no_env')}</p> <p>{t('scenarios.run_modal_no_env')}</p>
) : ( ) : (
<Select <>
label={t('scenarios.run_modal_env_label')} <Select
value={selectedEnvId} label={t('scenarios.run_modal_env_label')}
onChange={(e) => setSelectedEnvId(e.target.value)} value={selectedEnvId}
options={envs.map((env) => ({ value: env.id, label: env.name }))} onChange={(e) => setSelectedEnvId(e.target.value)}
/> options={envs.map((env) => ({ value: env.id, label: env.name }))}
/>
<label style={{ display: 'flex', alignItems: 'center', marginTop: '1rem', gap: '0.5rem' }}>
<input
type="checkbox"
checked={saveSessionFlag}
onChange={(e) => setSaveSessionFlag(e.target.checked)}
disabled={running}
/>
<span>Save session for explore mode</span>
</label>
</>
)} )}
</Modal> </Modal>
</div> </div>