๊ณต๋ถ๋ฅผ ํ๋ฉด ํ ์๋ก ์๋ ๊ฒ์ ๋ง์์ง์ง๋ง, ๋ค์ ๊ณต๋ถํ๋ ๋ด์ฉ์ ๊ณต๋ถํ ๋ ๋๋ ์ ์ด๋ ๊ฒ ๊ธฐ์ต๋ ฅ์ด ์ ์ข์๊ฐ? ์ฒ์์ ์ด ๋ด์ฉ์ ๋ํด์ ๊ณต๋ถํ ๋ ๋ ๊น๊ฒ ํ๊ณ ๋ค๊ณ ๊ณต๋ถํ์ด์ผ ๋๋? ์ด๋ฐ ํํ๊ฐ ์ฐพ์์จ๋ค. ๋ชจ๋ฅด๋ ๊ฒ์ ๋ถ๋๋ฌ์ํ์ง ๋ง๊ณ ๋ ๊น๊ฒ ๊ณ ๋ฏผํ๊ณ ๋ ๊ณต๋ถํ์. ๋ ๋ฒ ์ธ ๋ฒ ๋ค์ ๋ด์ ๋ด ๊ฒ์ผ๋ก ๋ง๋ค๋ฉด ๋๋ค.
์ด๋ป๊ฒ ํ๋ฉดย ์ฌ์ฌ์ฉ๊ฐ๋ฅํย ์ปดํฌ๋ํธ๋ฅผ ๊ฐ๊ฐ ๋ค๋ฅธ use case๋ค์ ๋ง๋๋ก ๋ง๋ค ์ ์์๊น?
๊ธฐ์กด์๋ Modal ์ปดํฌ๋ํธ์ ์ฌ์ฌ์ฉ์ฑ์ ๊ณ ๋ คํ์ง ์๊ณ ์ค๊ณ.
๋ฐ๋ผ์, Modal ์ปดํฌ๋ํธ ์ฌ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅ.
ModalLayout์ ๋๋น๋ ๋์ผํ๋ฏ๋ก ๊ณ ์ ํ๊ณ , height๋ฅผ props๋ก ๋๊ฒจ๋ฐ์ ๋์ด ์กฐ์ .
๋ชจ๋ฌ์ ์ํ(์ด๊ณ , ๋ซ๊ธฐ)๋ useModalControl๋ก ๋ถ๋ฆฌ
ModalLayout์ด ํ์ํ ์ปดํฌ๋ํธ์์ useModalControl hooks์ ModalLayout ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉ.
ModalLayout ๋ด๋ถ์ ๊ฐ๊ฐ ๋ค๋ฅธ ๋ด์ฉ๋ฌผ์ children์ผ๋ก ๋๊ฒจ๋ฐ์ ์ง์ด ๋ฃ๊ธฐ.
๋ซ๊ธฐ ๋ฒํผ์ flot์์ฑ์ ์ฌ์ฉํด์ cssํ๋ฆ์์ ๋น ์ง๊ฒ ์ ์ํ์ (๊ธฐ์กด)
๋ชจ๋ฌ ๋ ์ด์์์ด ํ์ํ ์ปดํฌ๋ํธ๋ค์ ๋ชจ๋ ๋ซ๊ธฐ ๋ฒํผ์ด ํ์ํจ ํ์ง๋ง ํ๋๊ฐ ์์น๊ฐ ๋ค๋ฆ
์๊ฐ
์ปดํฌ๋ํธ๋ฅผ ์ค๊ณํ ๋ ์ฒ์๋ถํฐ ๋ ์ฌ์ฌ์ฉ์ฑ๊ณผ ํ์ฅ์ฑ์ ๊ณ ๋ คํด์ ๊น๊ฒ ๊ณ ๋ฏผํ๊ณ ์ฝ๋๋ฅผ ์ง์.
ํ๊ต ์ด๋ฆ ์ ๋ ฅ๋ input์ ์ ๋ ฅ ์ดํ submit event listen์ input์ value ๊ฐ์ api url
ํ์ฌ ์ด ๊ตฌํ๊ณผ์ ์ ํ๋ก ํธ์๋์์ ์ง์ open api๋ก data๋ฅผ fetchํ๊ฒ ๋๋ค.
ํ์ง๋ง, ์ ์ฒญ์ธ์๋ก ๋ฃ์ด์ฃผ๋ SCHUL_NM์ ๋ฐฑ์๋ api url๋ก ๋๊ฒจ์ฃผ์ด์ ๋ฐฑ์๋์์ open api๋ก ํด๋น data๋ฅผ fetch๋ฐ์ ๋ค์ ํ๋ก ํธ๋ก ๋๊ฒจ์ฃผ๋ ๋ฐฉ์๋ ์์ ๊ฒ ๊ฐ๋ค.
์ฒซ ๋ฒ์งธ๋ ๋ฐฑ์๋์ ์ํต ์์ด ๋ฐ๋ก ์ ๊ทผ, ๋ ๋ฒ์งธ๋ ๋ฐฑ์๋์ ์ํต ์์
๋ญ๊ฐ ๋ ํจ์จ์ ์ธ๊ฐ?
ํ์ฌ๋ ํ์คํ์ง ์์ง๋ง ๋ฐ๋ก url์ ์ ๊ทผํ๊ณ data๋ฅผ ๊ฐ๊ณตํ ํ์์์ด ๋ฃ์ด์ฃผ๋ฉด ๋ผ์ ๋ฐฑ์๋์ ์ํต ์๋ ์ดํผ์ ๋ฐฉ๋ฒ์ ํํ๋ค. ํ์์๋ data๋ fetchํด์ state์ ๋ฃ๊ฒ ๋๋๋ฐ
์ฑ๋ฅ์ ์กฐ๊ธ์ด๋ผ๋ ์ํฅ์ด ์์๊น?
๋ฐฑ์๋์์ ๋ด๊ฐ ํ์ํ SD_SCHUL_CODE, SCHUL_NM, LCTN_SC_NM ๊ฐ๋ค ๋ง๊ณ ๋ค๋ฅธ ํค๋ ๋นผ์ ๋ค์ ํ๋ก ํธ์๊ฒ ์ฃผ๋ฉด์ ํ๋ก ํธ์๋ data์์ด ๋ ์ ์ด์ง๊ฒ ๋์ด์ ์ข์ ๊ฑฐ ๊ฐ๋ค๊ณ ์๊ฐ์ด ๋ ๋ค.
์กฐ์ฌ๋ฅผ ๋ ํด์ ์ด ๋ถ๋ถ์ ๋ํด์ ์์ ํด๋ณด๋๋ก ํ๊ฒ ๋ค.