์ํฐ๋ ํ๋ฆฌ์จ๋ณด๋ฉ ์ ๋ฐ ๊ณผ์
- ํต์ฌ ์์ : ๋ฒํผ์ ๋๋ฅผ ๋ ๋ง๋ค ์ ํ๋ ํญ๋ชฉ์ด ๋ณํ๋ค.
- ๋ถ๊ฐ ์์ : ์ฌ๋ผ์ด๋ ์ ๋๋ฉ์ด์
โ
useState Hook์ ์ด์ฉํด ์ ํํ ์ชฝ์ผ๋ก ํ ๊ธ์ด ์ด๋ํ๊ฒ ๊ตฌํํจ
โ
transition์ผ๋ก ์ฌ๋ผ์ด๋ ์ ๋๋ฉ์ด์
๊ตฌํํจ
- ํต์ฌ ์์ : ๋ฒํผ์ ๋๋ฅผ ๋ ๋ง๋ค ์ ํ๋ ํญ์ด ๋ณํ๋ค.
- ๋ถ๊ฐ ์์ : ์ฌ๋ผ์ด๋ ์ ๋๋ฉ์ด์
โ
useState Hook์ ์ด์ฉํด ์ ํํ ํญ์ผ๋ก ์ด๋ํ๊ณ ์ธ๋๋ผ์ธ์ด ํ์๋๋๋ก ๊ตฌํํจ
โ
transition์ผ๋ก ์ฌ๋ผ์ด๋ ์ ๋๋ฉ์ด์
๊ตฌํํจ
- ํต์ฌ ์์ : ์ธํ์ฐฝ์ ์ด๋ฉ์ผ๊ณผ ๋น๋ฐ๋ฒํธ ์ ๋ ฅ์ด ๊ฐ๋ฅํ๋ค
- ๋ถ๊ฐ ์์ : ์ด๋ฉ์ผ ํ์์ ๋ง์ ๊ฒฝ์ฐ ์๋์ผ๋ก ์ฒดํฌ ํ์
โ
onchange๋ฅผ ์ด์ฉํด input์ ๊ฐ์ด ๋ฐ๋๋๋ง๋ค, ์ด๋ฉ์ผ ํ์์ ์ฒดํฌํ๋ ํจ์๋ฅผ ์คํ์์ผ ture/false๋ก ์์ด์ฝ color ๋ณ๊ฒฝ
โ
transition์ผ๋ก ์ฌ๋ผ์ด๋ ์ ๋๋ฉ์ด์
๊ตฌํํจ
- ๋ถ๊ฐ ์์ : ๋น๋ฐ๋ฒํธ ์ ๋ ฅ๋ ์ฐ์ธก ๋ ํ์๋ฅผ ๋๋ฅด๋ฉด ๋น๋ฐ๋ฒํธ๊ฐ ๋ ธ์ถ๋๋ค
โ
๋ํ์ ํด๋ฆญ์ type์ password์์ text๋ก ๋ณ๊ฒฝํด ๋น๋ฐ๋ฒํธ๊ฐ ๋
ธ์ถ๋๋๋ก ๊ตฌํํจ
โ
input๊ณผ icon์ ๋๋ํํ๊ธฐ ์ํด div๋ก ๋ฌถ์ด์ฃผ๊ณ , display:flex, justify-content: space-between, align-items: center ์์ฑ์ ์ค
โ
input์ div์์ ๋ฃ์ด์ฃผ์ด focus์ผ๋, input์ border: none, outline: none ์์ฑ์ ์ฃผ์ด ํ
๋๋ฆฌ๊ฐ ํ์๋์ง ์๋๋ก ํจ
- ํต์ฌ ์์ : ๋๋กญ๋ค์ด์ ๋๋ฅด๋ฉด ์ ํ์ฐฝ์ด ํผ์ณ์ง๊ณ , ์๋ฌด๊ฑฐ๋ ๊ณจ๋ผ ํด๋ฆญํ๋ฉด ์ ํ๋ ํญ๋ชฉ์ผ๋ก ๋ณ๊ฒฝ๋จ
- ๋ถ๊ฐ ์์ : ํค์๋ ํํฐ ๊ธฐ๋ฅ ๊ตฌํ
โ
โผ ์์ด์ฝ ํด๋ฆญ์ ์ ํ์ฐฝ ์ฌ๋ซ๋ ์ํ๊ฐ state๋ฅผ ture๋ก ๋ณ๊ฒฝํด List ์ ํ์ฐฝ์ด ๋ณด์ด๊ฒ ํด์ค
โ
PLAYLIST ๊ฐ์ map์ ํตํด ์ ํ์ฐฝ์์ ๋ณด์ฌ์ฃผ๋๋ก ๊ตฌํํจ
โ
filter๋ฅผ ํตํด ๊ฒ์ ๊ฐ๋ฅํ๋๋ก ๊ตฌํํจ
โ
ํค์๋ ์ ํ์, ์ ํ๊ฐ์ด ๋ณด์ฌ์ง๊ณ ์ ํ์ฐฝ state๊ฐ false๋ก ๋ณ๊ฒฝ๋๋ฉด์ ์ ํฑ์ฐฝ์ด ๋ซํ๊ฒ ๋จ