@@ -101,6 +101,7 @@ function App() {
101101 ok : isCorrect ,
102102 details : isCorrect ? `割引が適用されました!` : `まだ割引が適用されていません。`
103103 } )
104+ if ( isCorrect ) { setTimeout ( ( ) => { setStep ( 5 ) ; setResult ( null ) ; } , 4000 ) }
104105 }
105106 }
106107 }
@@ -134,51 +135,54 @@ function App() {
134135
135136 { step === 1 && (
136137 < div >
137- < h2 > 問題1 </ h2 >
138+ < h2 > ミッション1 </ h2 >
138139 < p > レビューの「とにかくひどい。」をほかの言葉に書き換えてみよう。</ p >
139- { result && < div className = { result . ok ? "result-ok" : "result-ng" } > < h3 > 判定: { result . ok ? '正解 !' : '不正解 ' } </ h3 > < p > { result . details } </ p > { result . ok && < p > 次の問題へ進みます...</ p > } </ div > }
140+ { result && < div className = { result . ok ? "result-ok" : "result-ng" } > < h3 > 判定: { result . ok ? '成功 !' : '未達成 ' } </ h3 > < p > { result . details } </ p > { result . ok && < p > 次の問題へ進みます...</ p > } </ div > }
140141 { ! result && < p className = "hint" > ヒント:開発者ツールを使って、レビューに当たる要素を探してみよう。</ p > }
141142 </ div >
142143 ) }
143144
144145 { step === 2 && (
145146 < div >
146- < h2 > 問題2 </ h2 >
147+ < h2 > ミッション2 </ h2 >
147148 < p > 星1の画像(star1.png)の < code > src</ code > を書き換えて、星5 (star5.png) にしてみよう!</ p >
148- { result && < div className = { result . ok ? "result-ok" : "result-ng" } > < h3 > 判定: { result . ok ? '正解 !' : '不正解 ' } </ h3 > < p > { result . details } </ p > { result . ok && < p > 次の問題へ進みます...</ p > } </ div > }
149+ { result && < div className = { result . ok ? "result-ok" : "result-ng" } > < h3 > 判定: { result . ok ? '成功 !' : '未達成 ' } </ h3 > < p > { result . details } </ p > { result . ok && < p > 次の問題へ進みます...</ p > } </ div > }
149150 { ! result && < p className = "hint" > ヒント:imgタグの src 属性を探そう。</ p > }
150151 </ div >
151152 ) }
152153
153154 { step === 3 && (
154155 < div >
155- < h2 > 問題3 </ h2 >
156+ < h2 > ミッション3 </ h2 >
156157 < p > 一つ目のレビューを、CSSを使って非表示にしてみよう!</ p >
157- { result && < div className = { result . ok ? "result-ok" : "result-ng" } > < h3 > 判定: { result . ok ? '正解 !' : '不正解 ' } </ h3 > < p > { result . details } </ p > { result . ok && < p > 次の問題へ進みます...</ p > } </ div > }
158+ { result && < div className = { result . ok ? "result-ok" : "result-ng" } > < h3 > 判定: { result . ok ? '成功 !' : '未達成 ' } </ h3 > < p > { result . details } </ p > { result . ok && < p > 次の問題へ進みます...</ p > } </ div > }
158159 { ! result && < p className = "hint" > ヒント:DevToolsのスタイルパネルで < code > display: none;</ code > を追加してみよう。</ p > }
159160 </ div >
160161 ) }
161162
162163 { /* 問題4のUI */ }
163164 { step === 4 && (
164165 < div >
165- < h2 > 問題4 </ h2 >
166+ < h2 > ミッション4 </ h2 >
166167 < p > 割引コードを盗んで、30%割引を適用させよう!</ p >
167168 { result && (
168169 < div className = { result . ok ? "result-ok" : "result-ng" } >
169- < h3 > 判定: { result . ok ? '正解 !' : '不正解 ' } </ h3 >
170+ < h3 > 判定: { result . ok ? '成功 !' : '未達成 ' } </ h3 >
170171 < p > { result . details } </ p >
171172 </ div >
172173 ) }
173174 { ! result && < p className = "hint" > ヒント:sourcesに割引コードが書かれているかも</ p > }
174175 </ div >
175176 ) }
176177
177- { step === 3 && (
178+ { step === 5 && (
178179 < div >
179- < h2 > 問題5 </ h2 >
180+ < h2 > 最後のミッション </ h2 >
180181 < p > 今までの知識を使って、予約サイトでチケットを先に予約しよう!</ p >
181-
182+ < br > </ br >
183+ < a href = "https://browser-hack.utcode.net/reservation/" > 挑戦する</ a >
184+ < br > </ br >
185+ < p > 上のリンクを押して、とあるイベントの予約サイトに侵入し、一足先にチケットを予約しよう。</ p >
182186 </ div >
183187 ) }
184188 </ div >
0 commit comments