|
5 | 5 | import Message from "./components/Message.svelte"; |
6 | 6 |
|
7 | 7 | import { Loader } from "@lucide/svelte"; |
8 | | - import { type Problem } from "./utils/types"; |
9 | | - import { recordLastInput, loadLastInput, DiffRange } from "./memorizer"; |
| 8 | + import { type Problem, type ClosedRange, createValidRange } from "./utils/types"; |
| 9 | + import { cacheInput, loadLastInput } from "./cacher"; |
10 | 10 |
|
11 | | - let lastRange : DiffRange | null = loadLastInput(); |
| 11 | + let cachedInput : ClosedRange | null = loadLastInput(); |
| 12 | + let currentInput : ClosedRange | null; |
12 | 13 |
|
13 | | - let under_diff = $state<string>(lastRange ? lastRange.under.toString():"0"); |
14 | | - let over_diff = $state<string>("3854"); |
| 14 | + let under_diff = $state<number>(cachedInput ? cachedInput.min : 0); |
| 15 | + let over_diff = $state<number>(cachedInput ? cachedInput.max : 3854); |
15 | 16 | |
16 | 17 | let errors = $derived({ |
17 | | - rangeError: parseInt(under_diff) > parseInt(over_diff), |
18 | | - isMinusUnderDiff: parseInt(under_diff) < 0, |
19 | | - isMinusOverDiff: parseInt(over_diff) < 0, |
| 18 | + rangeError: under_diff > over_diff, |
| 19 | + isMinusUnderDiff: under_diff < 0, |
| 20 | + isMinusOverDiff: over_diff < 0, |
| 21 | + invalidRange: !(currentInput = createValidRange(under_diff, over_diff)) |
20 | 22 | }); |
21 | 23 |
|
22 | 24 | let result = $state<Problem | null>(null); |
|
77 | 79 | <div class="flex items-center gap-2"> |
78 | 80 | <Input type="number" placeholder="最低Diffを入力してください。" isErrors={errors} bind:value={under_diff} /> |
79 | 81 | <Input type="number" placeholder="最高Diffを入力してください。" isErrors={errors} bind:value={over_diff} /> |
80 | | - <Button onclick={sendQuery} class="shrink-0 w-24 h-12 flex justify-center items-center" disabled={loading}> |
| 82 | + <!--TODO: ここのonClickに入力値保存機能をつける--> |
| 83 | + <Button onclick={() =>{sendQuery(), cacheInput(currentInput!)}} class="shrink-0 w-24 h-12 flex justify-center items-center" disabled={loading}> |
| 84 | + <!--ここまで--> |
81 | 85 | {#if loading} |
82 | 86 | <div class="animate-spin [animation-duration: 1.05s]"> |
83 | 87 | <Loader size="1.5rem" /> |
|
0 commit comments