Skip to content

Commit f22b965

Browse files
committed
fix: add types to read-only constraints editor
- Makes sure typescript types are added to the read-only constraints editor
1 parent 04c0fff commit f22b965

File tree

2 files changed

+40
-3
lines changed

2 files changed

+40
-3
lines changed

src/components/constraints/Constraints.svelte

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
import Table from '../ui/Table.svelte';
1414
import ConstraintEditor from './ConstraintEditor.svelte';
1515
16+
export let initialPlans: PlanList[] = [];
17+
18+
let constraintModelId: number | null = null;
1619
let filterText: string = '';
1720
let filteredConstraints: Constraint[] = [];
1821
let selectedConstraint: Constraint | null = null;
@@ -29,6 +32,7 @@
2932
selectedConstraint = null;
3033
}
3134
}
35+
$: constraintModelId = getConstraintModelId(selectedConstraint);
3236
3337
async function deleteConstraint(id: number) {
3438
const success = await effects.deleteConstraint(id);
@@ -42,6 +46,23 @@
4246
}
4347
}
4448
49+
function getConstraintModelId(selectedConstraint: Constraint | null): number | null {
50+
if (selectedConstraint !== null) {
51+
const { model_id, plan_id } = selectedConstraint;
52+
53+
if (plan_id !== null) {
54+
const plan = initialPlans.find(plan => plan.id === plan_id);
55+
if (plan) {
56+
return plan.model_id;
57+
}
58+
} else if (model_id !== null) {
59+
return model_id;
60+
}
61+
}
62+
63+
return null;
64+
}
65+
4566
function toggleConstraint(event: CustomEvent<Constraint>) {
4667
const { detail: clickedConstraint } = event;
4768
@@ -110,7 +131,7 @@
110131

111132
<ConstraintEditor
112133
constraintDefinition={selectedConstraint?.definition ?? 'No Constraint Selected'}
113-
constraintModelId={selectedConstraint?.model_id}
134+
{constraintModelId}
114135
readOnly={true}
115136
title="Constraint - Definition Editor (Read-only)"
116137
/>

src/routes/constraints/index.svelte

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,23 @@
11
<svelte:options immutable={true} />
22

3-
<script lang="ts">
3+
<script lang="ts" context="module">
4+
import type { Load } from '@sveltejs/kit';
45
import Constraints from '../../components/constraints/Constraints.svelte';
6+
import effects from '../../utilities/effects';
7+
8+
export const load: Load = async () => {
9+
const { plans: initialPlans } = await effects.getPlansAndModels();
10+
11+
return {
12+
props: {
13+
initialPlans,
14+
},
15+
};
16+
};
17+
</script>
18+
19+
<script lang="ts">
20+
export let initialPlans: PlanList[] = [];
521
</script>
622

7-
<Constraints />
23+
<Constraints {initialPlans} />

0 commit comments

Comments
 (0)