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:
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user