Skip to content

Commit 053c84f

Browse files
feat: handle persist input data
1 parent 25180e1 commit 053c84f

File tree

3 files changed

+19
-48
lines changed

3 files changed

+19
-48
lines changed

src/components/GroupInformation.svelte

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
<script lang="ts">
2-
import { data_store, groups_store } from '../store';
2+
import { data_store } from '../store';
33
44
export let group_cnt: number;
55
export let day: number;
6-
export let disableGenerateControlSheet: boolean;
7-
export let enableForbiddenPairs: boolean;
8-
const PRIMES = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97];
96
</script>
107

118
<div class="flex flex-col justify-center">
@@ -40,25 +37,4 @@
4037
id="n_day"
4138
/>
4239
</div>
43-
44-
<!-- <div class="flex flex-row mt-4 gap-6 items-center">
45-
<input
46-
type="checkbox"
47-
bind:checked={disableGenerateControlSheet}
48-
disabled={!group_cnt}
49-
class="p-2 ml-2 rounded mt-1"
50-
id="control_sheet"
51-
/>
52-
<label class="py-3 text-xl flex font-bold" for="control_sheet">Download minimal version</label>
53-
</div> -->
54-
<div class="flex flex-row my-2 gap-6 items-center">
55-
<input
56-
type="checkbox"
57-
bind:checked={enableForbiddenPairs}
58-
disabled={!group_cnt}
59-
class="p-2 ml-2 rounded mt-1"
60-
id="forbiddenPairs"
61-
/>
62-
<label class="py-3 text-xl flex font-bold" for="forbiddenPairs">Enable Forbidden Pairs</label>
63-
</div>
6440
</div>

src/routes/+page.svelte

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,9 @@
77
import DropMember from '../components/DropMember.svelte';
88
import ForbiddenPair from '../components/ForbiddenPair.svelte';
99
import GroupInformation from '../components/GroupInformation.svelte';
10-
import { data_store, groupOfMembers_store, groups_store, leader_store } from '../store';
10+
import { data_store, groupOfMembers_store, groups_store, leader_store, group_cnt_store, day_store, forbiddenPairs_store } from '../store';
1111
import toast, { Toaster } from 'svelte-french-toast';
12-
13-
let group_cnt = 0;
14-
let day = 1;
15-
let disableGenerateControlSheet: boolean = true;
16-
let forbiddenPairs: string[][] = [];
17-
let enableForbiddenPairs: boolean = false;
12+
1813
let isLoading = false;
1914
let intervalId: number | null = null;
2015
let elapsedTime = 0;
@@ -48,9 +43,9 @@
4843
data: {
4944
members: $data_store,
5045
leader: $leader_store,
51-
group_cnt,
52-
forbiddenPairs,
53-
day
46+
group_cnt: $group_cnt_store,
47+
forbiddenPairs: $forbiddenPairs_store,
48+
day: $day_store
5449
}
5550
});
5651
@@ -121,23 +116,19 @@
121116
</div>
122117

123118
<div
124-
class={`flex flex-col justify-${
125-
enableForbiddenPairs ? 'between' : 'center'
126-
} items-center px-[5%] basis-1/2 min-h-[100vh]`}
119+
class={`flex flex-col justify-between items-center px-[5%] basis-1/2 min-h-[100vh]`}
127120
>
128-
<div class={`flex flex-col justify-between gap-3 ${enableForbiddenPairs && 'pt-10'}`}>
121+
<div class={`flex flex-col justify-between gap-3 pt-10`}>
129122
<GroupInformation
130-
bind:group_cnt
131-
bind:day
132-
bind:disableGenerateControlSheet
133-
bind:enableForbiddenPairs
123+
bind:group_cnt={$group_cnt_store}
124+
bind:day={$day_store}
134125
/>
135126
</div>
136-
{#if enableForbiddenPairs}
137-
<ForbiddenPair bind:forbiddenPairs />
138-
{/if}
139-
<div class={`flex flex-col justify-between gap-3 ${enableForbiddenPairs && 'py-5'}`}>
140-
<DownloadButton on:click={handleDownloadButton} {group_cnt} />
127+
<div class={`flex flex-col justify-between py-5`}>
128+
<ForbiddenPair bind:forbiddenPairs={$forbiddenPairs_store} />
129+
</div>
130+
<div class={`flex flex-col justify-between gap-3 py-5`}>
131+
<DownloadButton on:click={handleDownloadButton} group_cnt={$group_cnt_store} />
141132
</div>
142133
</div>
143134
{#if isLoading}

src/store.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,8 @@ export const groups_store = writable<Person[][][]>([]);
88
export const groupOfMembers_store = writable<number[][]>([]);
99
export const forbiddenPairs_store = writable<string[][]>([])
1010

11+
// Persistent UI state stores
12+
export const group_cnt_store = writable<number>(0);
13+
export const day_store = writable<number>(1);
14+
1115
export const workbook_store = writable<WorkBook | null>(null);

0 commit comments

Comments
 (0)