Commit a778196
authored
feat: sync route params with compare form inputs (#119)
* fix(home): resync form and results to URL on back/forward navigation
Round-2 review: the previous version only consumed search params on
initial mount, so router.push from compare/swap/reset put history
entries that the back button couldn't restore. Now a useEffect watches
searchParams and resyncs username1/username2 + triggers a re-fetch when
the URL pair differs from the last fetched pair. lastFetchedPairRef
short-circuits the loop with our own router.push.
* fix(compare-form): accept username state as props
The PR call site lifted username1/username2 and their setters into
HomePageInner so URL searchParams could drive the form, but the
component itself still owned its own useState pair. That broke the
build and meant the prop-passed values were ignored at runtime.
Move the four values into CompareFormProps, drop the internal
useState, and let parent-supplied swapUsers/reset handle clearing
and swapping. The local placeholder defaults ("pbiggar",
"CoralineAda") are gone; the parent now seeds initial state from
searchParams.
---------
Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>1 parent 9f85f15 commit a778196
2 files changed
Lines changed: 81 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
19 | | - | |
| 20 | + | |
20 | 21 | | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
21 | 27 | | |
22 | 28 | | |
| 29 | + | |
| 30 | + | |
23 | 31 | | |
24 | 32 | | |
25 | 33 | | |
26 | 34 | | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
27 | 38 | | |
28 | 39 | | |
29 | 40 | | |
| |||
43 | 54 | | |
44 | 55 | | |
45 | 56 | | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
46 | 62 | | |
47 | 63 | | |
48 | 64 | | |
| |||
79 | 95 | | |
80 | 96 | | |
81 | 97 | | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
82 | 127 | | |
83 | 128 | | |
84 | 129 | | |
85 | 130 | | |
86 | 131 | | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
87 | 135 | | |
88 | 136 | | |
89 | 137 | | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
90 | 148 | | |
91 | 149 | | |
92 | 150 | | |
| |||
97 | 155 | | |
98 | 156 | | |
99 | 157 | | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
100 | 162 | | |
101 | 163 | | |
102 | 164 | | |
| |||
126 | 188 | | |
127 | 189 | | |
128 | 190 | | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
15 | 19 | | |
16 | 20 | | |
17 | 21 | | |
| |||
21 | 25 | | |
22 | 26 | | |
23 | 27 | | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
24 | 32 | | |
25 | | - | |
26 | 33 | | |
27 | 34 | | |
28 | 35 | | |
29 | 36 | | |
30 | 37 | | |
31 | 38 | | |
32 | | - | |
33 | | - | |
34 | 39 | | |
35 | 40 | | |
36 | 41 | | |
| |||
42 | 47 | | |
43 | 48 | | |
44 | 49 | | |
45 | | - | |
46 | | - | |
47 | 50 | | |
48 | 51 | | |
49 | 52 | | |
50 | 53 | | |
51 | | - | |
52 | | - | |
53 | 54 | | |
54 | 55 | | |
55 | 56 | | |
| |||
0 commit comments