Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
FE-46 ๐ ๋ธ๋์น์ต์ ํ (#168)
* FE-46 โจ๊ณต์ฉ ์ปดํฌ๋ํธ ํค๋ ๋ค๋ก๊ฐ๊ธฐ ํจ์ ์ถ๊ฐ (#135) (#136) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :lipstick: ํ์๊ฐ์ ํ์ด์ง ๋ ์ด์์ ์ถ๊ฐ * :lipstick: ๊ฐํธ ๋ก๊ทธ์ธ ๋ก๊ณ ์ถ๊ฐ * :lipstick: ํ์๊ฐ์ ui ์ถ๊ฐ * :sparkles: ํ์๊ฐ์ ์คํค๋ง ์ ์ * :heavy_plus_sign: ํ์๊ฐ์ ํ์ด์ง์ ์คํค๋ง ์ ์ฉ * :lipstick: ์๋ฌ ๋ฉ์์ง ๋ฐ ๋ ๋ผ๋ฒจ, ์ธํ๋ ๊ฐ์ ์๋ฌ ์๊น ์ถ๊ฐ * :memo: ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํตํ ๋ฒํผ์ ๋นํ์ฑํ ์ฒ๋ฆฌ * :memo: ์ ํจ์ฑ ๊ฒ์ฌ์ ๋ฐ๋ฅธ ์ธํ ํ ๋๋ฆฌ ์์ ์ฒ๋ฆฌ * :fire: AuthLayout ์ญ์ * :art: ํ์๊ฐ์ ํ์ด์ง ๋ธ๋ผ์ฐ์ ํ๋์ ui ๊นจ์ง ์์ * :truck: ์ ๊ทํํ์ ๋ค์ด๋ฐ ๋ณ๊ฒฝ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * :sparkles: ํ์๊ฐ์ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ํ์๊ฐ์ api ์์ฑ * :sparkles: useRegisterMutation hook ์์ฑ * :zap: ํ์๊ฐ์ ํผ์ mutaion hook ์ ์ฉ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * :zap: isAxiosError๋ก ๋ณ๊ฒฝ * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * :twisted_rightwards_arrows: ์ถฉ๋ ํด๊ฒฐ * :bug: postSignup ํจ์ ์ถ๊ฐ * :bug: postSignin ๋ด๋ณด๋ด๋ ๋ฐฉ์ ์์ * :wrench: lint ์์ * :sparkles: oauth api ์์ฑ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- * :sparkles: ์นด์นด์คํก ๋ฆฌ๋๋ ํธ uri ์ค์ * :sparkles: useKakaoLogin mutation hook ์์ฑ * :zap: ๋ค์ด๋ฒ ๊ตฌ๊ธ ์นด์นด์ค ๊ฐํธ ๋ก๊ทธ์ธ ๋งํฌ ์ค์ * :recycle: ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์์ * FE-51 :twisted_rightwards_arrows: ๊ณต์ฉ API ๋จธ์ง ์์ฒญ (#92) * FE-52 โจ์ํผ๊ทธ๋จ ๋ชฉ๋ก์กฐํ API (#34) * FE-52 feat: api schema ์์ฑ * FE-52 โจfeat: getEpigrams api ์์ฑ * FE-522 โจfix: default export๋ก ๋ณ๊ฒฝ * FE-52 โจtest: ํ ์คํธ ์ฝ๋ ์์ฑ * FE-52 โจfeat: BaseUrl, TeamID ์์ ์ถ๊ฐ ๋ฐ axios baseTRL ์์ * FE-52 โจfix: schema ๋ฐ apis ํ์ผ ์์ * FE-52 โจtest: ํ ์คํธ ์ฝ๋ ์ญ์ * FE-52 โจfix: .envํ์ผ ์์ฑ ๋ฐ BaseURL ์์ * FE-52 โจfix: limit ํ์ ์์ (optional ์ญ์ ) * FE-52 โจtext: ํ ํ ์คํธ์ฝ๋ ์ญ์ * FE-52 โจfix: api GET์์ฒญ ์ฃผ์ ์์ ('epigrams' -> '/epigrams') * FE-53 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์ ์ฅ ์คํค๋ง ์ ์ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์ ์ฅ api ์์ฑ * FE-53 :sparkles: getMe ํจ์๋ฅผ ์ฌ์ฉํด ๋ก๊ทธ์ธ ์ํ ํ์ธ ๊ธฐ๋ฅ ๊ตฌํ * FE-53 :sparkles: ๊ฐ์ ํ์ ๋ณํ ํจ์ * FE-53 :sparkles: ๊ฐ์ ์ ์ฅ ํ ํ ์คํธ ์๋ฆผ ํ์ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์กฐํ api ์์ฑ * FE-53 :hammer: ๊ฐ์ ํ์ ๋ณํ ํจ์ ์ถ๊ฐ +) post, get ํจ์ ๋ด๋ถ๋ก ํ์ ๋ณํ ํจ์ ์ด๋ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์คํค๋ง ์ถ๊ฐ ์ ์ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์กฐํ ํจ์ ์ ์ฉ * FE-53 :truck: ์ค๋์ ๊ฐ์ type ์ด๋ฆ ๋ณ๊ฒฝ * FE-53 :sparkles: useMutation ํ ์ฌ์ฉ * FE-53 :memo: EmotionSelector ์ฃผ์ ์ถ๊ฐ * FE-53 :fire: api ํจ์ ์๋ฌ ์ฒ๋ฆฌ ๋ถ๋ถ ์ ๊ฑฐ * FE-53 :hammer: useQuery๋ฅผ ์ฌ์ฉํด ์ค๋์ ๊ฐ์ ์กฐํ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋๋ useQuery๋ฅผ ์ฌ์ฉํ๋๊ฑฐ๋ผ ํจ * FE-56 :sparkles: ๋๊ธ ์์ API (#84) * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- * FE-56 :sparkles: ๋๊ธ ์์ API --------- * FE-57 :sparkles: ๋๊ธ ์ญ์ API (#88) * FE-51 :twisted_rightwards_arrows: ๊ณต์ฉ API ์ต์ ํ (#93) * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- --------- * FE-51 :twisted_rightwards_arrows: ๊ณต์ฉ API ์ต์ ํ (์ถฉ๋์์ ) (#98) --------- * FE-32 ๐๊ฒ์ ํ์ด์ง ๋ฉ์ธ ๋จธ์ง (#107) * ๐FE-33 ๊ฒ์ ํ์ด์ง UI (#10) * .nvmrc ๋ฒ์ ์์ * ํฐํธ ๋ฐ ๊ณต์ฉ์ปฌ๋ฌ ์ถ๊ฐ (#6) * font-family ์ถ๊ฐ * tailwind common color ์ถ๊ฐ * color ๋ช ๋ณ๊ฒฝ * lang ์์ --------- * :lipstick: ๊ณต์ฉ ์ปดํฌ๋ํธ shadcn ui ์ถ๊ฐ (#7) * :lipstick: Feat: shadcn-ui init * :lipstick: Feat: add toast ui * Feat: add textarea ui * Feat: add switch ui * Feat: add radio-group ui * Feat: add label ui * Feat: add input ui * Feat: add form ui * Feat: add button ui * Feat: add dropdown-menu ui * Feat: add card ui * Feat: add badge ui * Feat: add avatar ui * Feat: add alert dialog ui * Chore: add eslint rules * Chore: add shadcn ui * โจFeat: SearchBar UI ์ด์ ์์ฑ * styles: tailwind css ํฐํธ ์ฌ์ด์ฆ ์ถ๊ฐ * feat: RecentSearches UI ์ด์ ์์ฑ * ๏ฟฝstyles: SearchResults UI ์์ * ๏ฟฝstyles: RecentSearches UI ์์ * โจstyles: ๋ฐ์ํ UI ์ถ๊ฐ * FE-33 fix: build ์ค๋ฅ ์์ ์ค * FE-33 fix: build ์ค๋ฅ ํด๊ฒฐ ์ค * FE-33 fix: build ์ค๋ฅ ํด๊ฒฐ ์ค * FE-33 fix: build ์ค๋ฅ ํด๊ฒฐ ์ค * fix: build ์ค๋ฅ ํด๊ฒฐ ์ค --------- * FE-65 โจ์ต๊ทผ ๊ฒ์์ด ๊ธฐ๋ฅ (#51) * FE-65 โจfeat: ์ต๊ทผ ๊ฒ์์ด ๊ธฐ๋ฅ ๊ตฌํ * FE-65 โจfeat: ๊ฒ์๋ฐ์ ์ฐ๋ํ์ฌ ์ฆ์ ๋ฐ์๋๋๋ก ์์ * FE-65 โจfeat: debounce๋ฅผ ์ํ lodash ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น * FE-65 โจfeat: debounce ๊ธฐ๋ฅ ์ ์ฉ(++lodash ๋ผ์ด๋ธ๋ฌ๋ฆฌ) * FE-65 โจfeat: useEffectt๋ก debouncedSearchํจ์ ์์กด์ฑ ์ค์ * FE-65 โจfeat: useCallback ๋์ useRef๋ก ๋ณ๊ฒฝ * FE-65 โจfix:: debounce ๊ธฐ๋ฅ ์ ๊ฑฐ(๋ถํ์) * FE-65 โจfeat: focus๋ ๋ placeholder ์ฌ๋ผ์ง๊ฒ ์์ ๋ฐ UI ์์ * FE-65 โจfeat: isInitialMount ์ ์ธ ๋ฐ ์ฃผ์ ์ถ๊ฐ * FE-65 โจfix: ์ฃผ์ ์์ * FE-65 โจfeat: ์ต๊ทผ ๊ฒ์์ด ํด๋ฆญ ์ ๊ทธ ๊ฒ์์ด๋ก ๊ฒ์๋๋ ๊ธฐ๋ฅ * FE-65 styles: ์ฃผ์ ์ถ๊ฐ * FE-74 โจ๊ฒ์ ๊ฒฐ๊ณผ ๊ธฐ๋ฅ (#73) * FE-74 fix: ์ฌ์ฉํ์ง ์๋ lodash ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ญ์ * FE-74 โจfeat: ํ ์คํธ ์ฉ api ์ฝ๋ ๊ฐ์ ธ์ค๊ธฐ * FE-74 โจfeat: ๊ฒ์ ๊ฒฐ๊ณผ ๊ธฐ๋ฅ ๊ตฌํ * FE-74 โจfix: ์ค๋ณต๋ key, href ์ ๊ฑฐ ๋ฐ ๊ท์น ๋ฌด์ ์ฃผ์ ์ถ๊ฐ * FE-74 โจtest: ํ ์คํธ ๋ฐ์ดํฐ ์ถ๊ฐ * FE-74 โจfeat: ๊ฒ์์ด ํ์ด๋ผ์ดํ ๋ฐ ์์ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-74 โจfix: ์ฃผ์ ์์ ๋ฐ api ํ์ผ ์ญ์ * FE-74 โจstyles: ์ฃผ์ ์ถ๊ฐ * FE-74 โจfix: ๋ฉํ ๋ง ๋ด์ฉ ์ฃผ์์ผ๋ก ์ถ๊ฐ * FE-32 ๐ epic๋ธ๋์น ์ต์ ํ (#77) * .nvmrc ๋ฒ์ ์์ * ํฐํธ ๋ฐ ๊ณต์ฉ์ปฌ๋ฌ ์ถ๊ฐ (#6) * font-family ์ถ๊ฐ * tailwind common color ์ถ๊ฐ * color ๋ช ๋ณ๊ฒฝ * lang ์์ --------- * :lipstick: ๊ณต์ฉ ์ปดํฌ๋ํธ shadcn ui ์ถ๊ฐ (#7) * :lipstick: Feat: shadcn-ui init * :lipstick: Feat: add toast ui * Feat: add textarea ui * Feat: add switch ui * Feat: add radio-group ui * Feat: add label ui * Feat: add input ui * Feat: add form ui * Feat: add button ui * Feat: add dropdown-menu ui * Feat: add card ui * Feat: add badge ui * Feat: add avatar ui * Feat: add alert dialog ui * Chore: add eslint rules * Chore: add shadcn ui * FE-48 ๐ฐ ๊ณต์ฉ ์ปดํฌ๋ํธ face emoji svg ํ์ผ ์์ฑ * FE-48 :art: ๊ฐ์ ์ด๋ชจํฐ์ฝ ํด๋ ๊ตฌ์กฐ ๋ณ๊ฒฝ * FE-48 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์นด๋ ์ปดํฌ๋ํธ ui ์์ฑ * FE-48 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์ํ์ ๋ฐ๋ฅธ ํด๋์ค ์ค์ * FE-48 :lipstick: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์นด๋ ์ปดํฌ๋ํธ ui ์์ * FE-48 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์นด๋ ํด๋ฆญ ์ด๋ฒคํธ ๊ตฌํ - EmotionIconCardContainer๋ฅผ ์ฌ์ฉํด ์ํ๊ด๋ฆฌ์ ์ด๋ฒคํธ ์ฒ๋ฆฌ (Clicked<->UnClicked) * FE-48 ๐ ์ปดํฌ๋ํธ ์ด๋ฆ ๋ณ๊ฒฝ ๋ช ํํ ์๋ฏธ ์ ๋ฌ์ ์ํด ์ปดํฌ๋ํธ ์ด๋ฆ ๋ณ๊ฒฝ * FE-48 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์ํ ๋ณํ ๋๊ธฐํ ๊ตฌ ๊ฐ์ ์นด๋๋ฅผ ํด๋ฆญํ ๋ ์ํ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ ํ๋๊ณ , ๋ค๋ฅธ ์นด๋์ ์ํ๋ ๋๊ธฐํ๋๋ ๊ธฐ๋ฅ ๊ตฌํ * FE-48 :sparkles: EmotionSelector ์ปดํฌ๋ํธ ๋์ ํฌ๊ธฐ ๋ณ๊ฒฝ ๊ตฌํ useMediaQuery ํ ์์ฑ: ํ๋ฉด์ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ๋ฆฌ์ค๋ ์ถ๊ฐ ๋ฐ ์ ๊ฑฐ * FE-48 :fire: ์ถ๋ ฅ ํ์ธ์ ์ํ ํ ์คํธ ์ปดํฌ๋ํธ ์ญ์ * FE-48 :hammer: EmotionTypes ์ธํฐํ์ด์ค ์ ์ emotion ๊ด๋ จ ์ปดํฌ๋ํธ์์ ํด๋น ์ธํฐํ์ด์ค๋ฅผ importํ์ฌ ์ฌ์ฉํ๊ฒ ๊ตฌํ * FE-59 :sparkles: ์ํผ๊ทธ๋จ ์นด๋ ui ๊ตฌํ tailwind css๋ฅผ ํ์ฅํด ์ค๋ฌด๋ฌ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ๊ตฌํ * FE-59 :sparkles: ์ํผ๊ทธ๋จ ์นด๋ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-59 :lipstick: ์ํผ๊ทธ๋จ ์นด๋ ๊ธ์จ์ฒด ์ ์ฉ * FE-59 :fire: ์ํผ๊ทธ๋จ ์นด๋ ํ ์คํธ ์ฝ๋ ์ญ์ * FE-59 :fire: ํ ์คํธ ํ์ ์ญ์ * FE-58 :sparkles: ๊ณต์ฉ ์ปดํฌ๋ํธ ๋๊ธ ์นด๋ ๊ธฐ๋ณธ ui ๊ตฌํ * FE-58 :lipstick: ๊ณต์ฉ ์ปดํฌ๋ํธ ๋ฐ์ํ ๋์์ธ ์ ์ฉ * FE-58 :fire: ๋๊ธ ์นด๋ ํ ์คํธ ์ฝ๋ ์ญ์ * FE-58 :lips: ๋๊ธ ์นด๋ ๊ด๋ จ ์ธํฐํ์ด์ค, ์คํ์ผ ๋ถ๋ฆฌ * FE-50 โจ๊ณต์ฉ์ปดํฌ๋ํธ ํค๋ ๊ตฌํ (#19) * FE-5050โจ feat: ํค๋ ๋ถ๋ถ ๊ธฐ๋ฅ ์ด์ * FE-50 โจstyles: ์ฃผ์ ์ถ๊ฐ * FE-50 โจstyles: ์ฃผ์ ์ถ์ถ๊ฐ * FE-5050 โจtest: ํ ์คํธ ์ฝ๋ * FE-50 โจfix: ํ ์คํธ ์ฝ๋ ์ญ์ * FE-50 โจfeat: ๊ณต์ ์ด๋ฏธ์ง ์ถ๊ฐ ๋ฐ ํ์ฌ URL ๋ณต์ฌ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-50 โจstyles: U์ ์ค ํ๋๊ฐ ๋น ์ง๋๋ผ๋ ์๋ฌด๋์ง๊ฒ UI ์์ * FE-50 โจcomment: ์ฃผ์ ์์ ๋ฐ ์ถ๊ฐ * FE-50 โจfix: ํ ์คํธ ์ฝ๋ ์ญ์ * FE-50 โจfix: ํจ์๋ช ์ปจ๋ฒค์ ์ ๋ง๊ฒ ๋ณ๊ฒฝ * FE-50 โจfix: types ํด๋์ interface ์ ์ * FE-50 fix: build ์ค๋ฅ ์์ * FE-61 ๐จ eslint ๊ท์น ์์ * FE-61 ๐ฅ InteractiveEmotionIconCard ์ญ์ ๋จ์ ๋ํ ๊ธฐ๋ฅ๋ฐ์ ์๋ ์ปดํฌ๋ํธ ์ญ์ / emotionselector์์ emotioniconcard๋ฅผ ์ง์ ์ฌ์ฉํ๋๋ก ์์ * FE-61 ๐จ EpigramCard ์ฌ์ด์ฆ ์ฌ์ ์ base -> xs๋ก ๋ณ๊ฒฝ * FE-61 ๐ ๊ณต์ฉ ์ปดํฌ๋ํธ ํ ์คํธ ํ ์คํธ ์ฃผ์ ์ถ๊ฐ * FE-61 ๐จ CommentCard ํ์ ๋ด๋ถ ์ ์ * FE-61 :truck: ๊ฐ์ ์นด๋ ํด๋ ๊ตฌ์กฐ ๋ณ๊ฒฝ * FE-61 ๐ ๊ฐ์ ์นด๋, ๊ฐ์ ์ ๋ ํฐ ์ฃผ์ ์ถ๊ฐ * FE-61 :fire: ๋๊ธ ์นด๋ ๋ํดํธ ํ๋กญ ์ญ์ * FE-62 โจfix: ์ฃผ์ ์์ ๋ฐ ํ์ ์์ (#27) * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * build ์ค๋ฅ ํด๊ฒฐ * build ์ค๋ฅ ํด๊ฒฐ ์ค --------- * FE-75 โจ๋ฌดํ ์คํฌ๋กค, ๊ฒ์ ๊ฒฐ๊ณผ URL์ ์ ์ฅ ๊ธฐ๋ฅ ๊ตฌํ (#104) * FE-75 โจstyles: tailwind .config ํ์ผ ๋ฉ์ธ๊ณผ ํตํฉ * FE-75 โจfeat: ๊ณต์ฉ ์ปดํฌ๋ํธ Header ์ถ๊ฐ * FE-75 โจrefactor: useMemo ์ฌ์ฉ * FE-75 โจfeat: URL์ ๊ฒ์ ๊ฒฐ๊ณผ ์ ์ฅ * FE-75 โจstyles: ๋ก๋ฉ ์คํ์ผ ๊ตฌํ * FE-75 โจfeat: ์ค์ api ์ถ๊ฐ * FE-75 โจfeat: api ๊ธฐ๋ฅ ๊ตฌํ * FE-75 โจfeat: ๋ฌดํ ์คํฌ๋กค ๊ตฌํ * FE-75 โจfix: ์์กด์ฑ ๋ฐฐ์ด์์ ๋ก๋ฉ ์ํ ์ ๊ฑฐ * FE-75 โจstyles: ์ฃผ์ ์ถ๊ฐ * FE-75 โจfeat:: ์ฌ์ฉ์๋ง๋ค ์ต๊ทผ ๊ฒ์์ด ๊ด๋ฆฌํ ์ ์๊ฒ ๋ณ๊ฒฝ * FE-75 โจfix: ๊ฒ์ ์ ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์๋๋ก ์์ * FE-32 ๐๋ธ๋์น ์ต์ ํ (#105) * .nvmrc ๋ฒ์ ์์ * ํฐํธ ๋ฐ ๊ณต์ฉ์ปฌ๋ฌ ์ถ๊ฐ (#6) * font-family ์ถ๊ฐ * tailwind common color ์ถ๊ฐ * color ๋ช ๋ณ๊ฒฝ * lang ์์ --------- * :lipstick: ๊ณต์ฉ ์ปดํฌ๋ํธ shadcn ui ์ถ๊ฐ (#7) * :lipstick: Feat: shadcn-ui init * :lipstick: Feat: add toast ui * Feat: add textarea ui * Feat: add switch ui * Feat: add radio-group ui * Feat: add label ui * Feat: add input ui * Feat: add form ui * Feat: add button ui * Feat: add dropdown-menu ui * Feat: add card ui * Feat: add badge ui * Feat: add avatar ui * Feat: add alert dialog ui * Chore: add eslint rules * Chore: add shadcn ui * FE-48 ๐ฐ ๊ณต์ฉ ์ปดํฌ๋ํธ face emoji svg ํ์ผ ์์ฑ * FE-48 :art: ๊ฐ์ ์ด๋ชจํฐ์ฝ ํด๋ ๊ตฌ์กฐ ๋ณ๊ฒฝ * FE-48 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์นด๋ ์ปดํฌ๋ํธ ui ์์ฑ * FE-48 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์ํ์ ๋ฐ๋ฅธ ํด๋์ค ์ค์ * FE-48 :lipstick: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์นด๋ ์ปดํฌ๋ํธ ui ์์ * FE-48 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์นด๋ ํด๋ฆญ ์ด๋ฒคํธ ๊ตฌํ - EmotionIconCardContainer๋ฅผ ์ฌ์ฉํด ์ํ๊ด๋ฆฌ์ ์ด๋ฒคํธ ์ฒ๋ฆฌ (Clicked<->UnClicked) * FE-48 ๐ ์ปดํฌ๋ํธ ์ด๋ฆ ๋ณ๊ฒฝ ๋ช ํํ ์๋ฏธ ์ ๋ฌ์ ์ํด ์ปดํฌ๋ํธ ์ด๋ฆ ๋ณ๊ฒฝ * FE-48 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์ํ ๋ณํ ๋๊ธฐํ ๊ตฌ ๊ฐ์ ์นด๋๋ฅผ ํด๋ฆญํ ๋ ์ํ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ ํ๋๊ณ , ๋ค๋ฅธ ์นด๋์ ์ํ๋ ๋๊ธฐํ๋๋ ๊ธฐ๋ฅ ๊ตฌํ * FE-48 :sparkles: EmotionSelector ์ปดํฌ๋ํธ ๋์ ํฌ๊ธฐ ๋ณ๊ฒฝ ๊ตฌํ useMediaQuery ํ ์์ฑ: ํ๋ฉด์ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ๋ฆฌ์ค๋ ์ถ๊ฐ ๋ฐ ์ ๊ฑฐ * FE-48 :fire: ์ถ๋ ฅ ํ์ธ์ ์ํ ํ ์คํธ ์ปดํฌ๋ํธ ์ญ์ * FE-48 :hammer: EmotionTypes ์ธํฐํ์ด์ค ์ ์ emotion ๊ด๋ จ ์ปดํฌ๋ํธ์์ ํด๋น ์ธํฐํ์ด์ค๋ฅผ importํ์ฌ ์ฌ์ฉํ๊ฒ ๊ตฌํ * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-59 :sparkles: ์ํผ๊ทธ๋จ ์นด๋ ui ๊ตฌํ tailwind css๋ฅผ ํ์ฅํด ์ค๋ฌด๋ฌ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ๊ตฌํ * FE-59 :sparkles: ์ํผ๊ทธ๋จ ์นด๋ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-59 :lipstick: ์ํผ๊ทธ๋จ ์นด๋ ๊ธ์จ์ฒด ์ ์ฉ * FE-59 :fire: ์ํผ๊ทธ๋จ ์นด๋ ํ ์คํธ ์ฝ๋ ์ญ์ * FE-59 :fire: ํ ์คํธ ํ์ ์ญ์ * FE-58 :sparkles: ๊ณต์ฉ ์ปดํฌ๋ํธ ๋๊ธ ์นด๋ ๊ธฐ๋ณธ ui ๊ตฌํ * FE-58 :lipstick: ๊ณต์ฉ ์ปดํฌ๋ํธ ๋ฐ์ํ ๋์์ธ ์ ์ฉ * FE-58 :fire: ๋๊ธ ์นด๋ ํ ์คํธ ์ฝ๋ ์ญ์ * FE-58 :lips: ๋๊ธ ์นด๋ ๊ด๋ จ ์ธํฐํ์ด์ค, ์คํ์ผ ๋ถ๋ฆฌ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-50 โจ๊ณต์ฉ์ปดํฌ๋ํธ ํค๋ ๊ตฌํ (#19) * FE-5050โจ feat: ํค๋ ๋ถ๋ถ ๊ธฐ๋ฅ ์ด์ * FE-50 โจstyles: ์ฃผ์ ์ถ๊ฐ * FE-50 โจstyles: ์ฃผ์ ์ถ์ถ๊ฐ * FE-5050 โจtest: ํ ์คํธ ์ฝ๋ * FE-50 โจfix: ํ ์คํธ ์ฝ๋ ์ญ์ * FE-50 โจfeat: ๊ณต์ ์ด๋ฏธ์ง ์ถ๊ฐ ๋ฐ ํ์ฌ URL ๋ณต์ฌ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-50 โจstyles: U์ ์ค ํ๋๊ฐ ๋น ์ง๋๋ผ๋ ์๋ฌด๋์ง๊ฒ UI ์์ * FE-50 โจcomment: ์ฃผ์ ์์ ๋ฐ ์ถ๊ฐ * FE-50 โจfix: ํ ์คํธ ์ฝ๋ ์ญ์ * FE-50 โจfix: ํจ์๋ช ์ปจ๋ฒค์ ์ ๋ง๊ฒ ๋ณ๊ฒฝ * FE-50 โจfix: types ํด๋์ interface ์ ์ * FE-50 fix: build ์ค๋ฅ ์์ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * FE-61 ๐จ eslint ๊ท์น ์์ * FE-61 ๐ฅ InteractiveEmotionIconCard ์ญ์ ๋จ์ ๋ํ ๊ธฐ๋ฅ๋ฐ์ ์๋ ์ปดํฌ๋ํธ ์ญ์ / emotionselector์์ emotioniconcard๋ฅผ ์ง์ ์ฌ์ฉํ๋๋ก ์์ * FE-61 ๐จ EpigramCard ์ฌ์ด์ฆ ์ฌ์ ์ base -> xs๋ก ๋ณ๊ฒฝ * FE-61 ๐ ๊ณต์ฉ ์ปดํฌ๋ํธ ํ ์คํธ ํ ์คํธ ์ฃผ์ ์ถ๊ฐ * FE-61 ๐จ CommentCard ํ์ ๋ด๋ถ ์ ์ * FE-61 :truck: ๊ฐ์ ์นด๋ ํด๋ ๊ตฌ์กฐ ๋ณ๊ฒฝ * FE-61 ๐ ๊ฐ์ ์นด๋, ๊ฐ์ ์ ๋ ํฐ ์ฃผ์ ์ถ๊ฐ * FE-61 :fire: ๋๊ธ ์นด๋ ๋ํดํธ ํ๋กญ ์ญ์ * FE-62 โจfix: ์ฃผ์ ์์ ๋ฐ ํ์ ์์ (#27) * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :lipstick: ํ์๊ฐ์ ํ์ด์ง ๋ ์ด์์ ์ถ๊ฐ * :lipstick: ๊ฐํธ ๋ก๊ทธ์ธ ๋ก๊ณ ์ถ๊ฐ * :lipstick: ํ์๊ฐ์ ui ์ถ๊ฐ * :sparkles: ํ์๊ฐ์ ์คํค๋ง ์ ์ * :heavy_plus_sign: ํ์๊ฐ์ ํ์ด์ง์ ์คํค๋ง ์ ์ฉ * :lipstick: ์๋ฌ ๋ฉ์์ง ๋ฐ ๋ ๋ผ๋ฒจ, ์ธํ๋ ๊ฐ์ ์๋ฌ ์๊น ์ถ๊ฐ * :memo: ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํตํ ๋ฒํผ์ ๋นํ์ฑํ ์ฒ๋ฆฌ * :memo: ์ ํจ์ฑ ๊ฒ์ฌ์ ๋ฐ๋ฅธ ์ธํ ํ ๋๋ฆฌ ์์ ์ฒ๋ฆฌ * :fire: AuthLayout ์ญ์ * :art: ํ์๊ฐ์ ํ์ด์ง ๋ธ๋ผ์ฐ์ ํ๋์ ui ๊นจ์ง ์์ * :truck: ์ ๊ทํํ์ ๋ค์ด๋ฐ ๋ณ๊ฒฝ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * :sparkles: ํ์๊ฐ์ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ํ์๊ฐ์ api ์์ฑ * :sparkles: useRegisterMutation hook ์์ฑ * :zap: ํ์๊ฐ์ ํผ์ mutaion hook ์ ์ฉ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * :zap: isAxiosError๋ก ๋ณ๊ฒฝ * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * :twisted_rightwards_arrows: ์ถฉ๋ ํด๊ฒฐ * :bug: postSignup ํจ์ ์ถ๊ฐ * :bug: postSignin ๋ด๋ณด๋ด๋ ๋ฐฉ์ ์์ * :wrench: lint ์์ * build ์ค๋ฅ ํด๊ฒฐ * build ์ค๋ฅ ํด๊ฒฐ ์ค * :sparkles: oauth api ์์ฑ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- * :sparkles: ์นด์นด์คํก ๋ฆฌ๋๋ ํธ uri ์ค์ * :sparkles: useKakaoLogin mutation hook ์์ฑ * :zap: ๋ค์ด๋ฒ ๊ตฌ๊ธ ์นด์นด์ค ๊ฐํธ ๋ก๊ทธ์ธ ๋งํฌ ์ค์ * :recycle: ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์์ * FE-51 :twisted_rightwards_arrows: ๊ณต์ฉ API ๋จธ์ง ์์ฒญ (#92) * FE-52 โจ์ํผ๊ทธ๋จ ๋ชฉ๋ก์กฐํ API (#34) * FE-52 feat: api schema ์์ฑ * FE-52 โจfeat: getEpigrams api ์์ฑ * FE-522 โจfix: default export๋ก ๋ณ๊ฒฝ * FE-52 โจtest: ํ ์คํธ ์ฝ๋ ์์ฑ * FE-52 โจfeat: BaseUrl, TeamID ์์ ์ถ๊ฐ ๋ฐ axios baseTRL ์์ * FE-52 โจfix: schema ๋ฐ apis ํ์ผ ์์ * FE-52 โจtest: ํ ์คํธ ์ฝ๋ ์ญ์ * FE-52 โจfix: .envํ์ผ ์์ฑ ๋ฐ BaseURL ์์ * FE-52 โจfix: limit ํ์ ์์ (optional ์ญ์ ) * FE-52 โจtext: ํ ํ ์คํธ์ฝ๋ ์ญ์ * FE-52 โจfix: api GET์์ฒญ ์ฃผ์ ์์ ('epigrams' -> '/epigrams') * FE-53 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์ ์ฅ ์คํค๋ง ์ ์ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์ ์ฅ api ์์ฑ * FE-53 :sparkles: getMe ํจ์๋ฅผ ์ฌ์ฉํด ๋ก๊ทธ์ธ ์ํ ํ์ธ ๊ธฐ๋ฅ ๊ตฌํ * FE-53 :sparkles: ๊ฐ์ ํ์ ๋ณํ ํจ์ * FE-53 :sparkles: ๊ฐ์ ์ ์ฅ ํ ํ ์คํธ ์๋ฆผ ํ์ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์กฐํ api ์์ฑ * FE-53 :hammer: ๊ฐ์ ํ์ ๋ณํ ํจ์ ์ถ๊ฐ +) post, get ํจ์ ๋ด๋ถ๋ก ํ์ ๋ณํ ํจ์ ์ด๋ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์คํค๋ง ์ถ๊ฐ ์ ์ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์กฐํ ํจ์ ์ ์ฉ * FE-53 :truck: ์ค๋์ ๊ฐ์ type ์ด๋ฆ ๋ณ๊ฒฝ * FE-53 :sparkles: useMutation ํ ์ฌ์ฉ * FE-53 :memo: EmotionSelector ์ฃผ์ ์ถ๊ฐ * FE-53 :fire: api ํจ์ ์๋ฌ ์ฒ๋ฆฌ ๋ถ๋ถ ์ ๊ฑฐ * FE-53 :hammer: useQuery๋ฅผ ์ฌ์ฉํด ์ค๋์ ๊ฐ์ ์กฐํ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋๋ useQuery๋ฅผ ์ฌ์ฉํ๋๊ฑฐ๋ผ ํจ * FE-56 :sparkles: ๋๊ธ ์์ API (#84) * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- * FE-56 :sparkles: ๋๊ธ ์์ API --------- * FE-57 :sparkles: ๋๊ธ ์ญ์ API (#88) * FE-51 :twisted_rightwards_arrows: ๊ณต์ฉ API ์ต์ ํ (#93) * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- --------- * FE-51 :twisted_rightwards_arrows: ๊ณต์ฉ API ์ต์ ํ (์ถฉ๋์์ ) (#98) --------- * .http ํ์ผ ์ญ์ --------- * FE-32 ๐๋ธ๋์น ์ต์ ํ (#110) * .nvmrc ๋ฒ์ ์์ * ํฐํธ ๋ฐ ๊ณต์ฉ์ปฌ๋ฌ ์ถ๊ฐ (#6) * font-family ์ถ๊ฐ * tailwind common color ์ถ๊ฐ * color ๋ช ๋ณ๊ฒฝ * lang ์์ --------- * :lipstick: ๊ณต์ฉ ์ปดํฌ๋ํธ shadcn ui ์ถ๊ฐ (#7) * :lipstick: Feat: shadcn-ui init * :lipstick: Feat: add toast ui * Feat: add textarea ui * Feat: add switch ui * Feat: add radio-group ui * Feat: add label ui * Feat: add input ui * Feat: add form ui * Feat: add button ui * Feat: add dropdown-menu ui * Feat: add card ui * Feat: add badge ui * Feat: add avatar ui * Feat: add alert dialog ui * Chore: add eslint rules * Chore: add shadcn ui * FE-48 ๐ฐ ๊ณต์ฉ ์ปดํฌ๋ํธ face emoji svg ํ์ผ ์์ฑ * FE-48 :art: ๊ฐ์ ์ด๋ชจํฐ์ฝ ํด๋ ๊ตฌ์กฐ ๋ณ๊ฒฝ * FE-48 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์นด๋ ์ปดํฌ๋ํธ ui ์์ฑ * FE-48 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์ํ์ ๋ฐ๋ฅธ ํด๋์ค ์ค์ * FE-48 :lipstick: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์นด๋ ์ปดํฌ๋ํธ ui ์์ * FE-48 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์นด๋ ํด๋ฆญ ์ด๋ฒคํธ ๊ตฌํ - EmotionIconCardContainer๋ฅผ ์ฌ์ฉํด ์ํ๊ด๋ฆฌ์ ์ด๋ฒคํธ ์ฒ๋ฆฌ (Clicked<->UnClicked) * FE-48 ๐ ์ปดํฌ๋ํธ ์ด๋ฆ ๋ณ๊ฒฝ ๋ช ํํ ์๋ฏธ ์ ๋ฌ์ ์ํด ์ปดํฌ๋ํธ ์ด๋ฆ ๋ณ๊ฒฝ * FE-48 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์ํ ๋ณํ ๋๊ธฐํ ๊ตฌ ๊ฐ์ ์นด๋๋ฅผ ํด๋ฆญํ ๋ ์ํ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ ํ๋๊ณ , ๋ค๋ฅธ ์นด๋์ ์ํ๋ ๋๊ธฐํ๋๋ ๊ธฐ๋ฅ ๊ตฌํ * FE-48 :sparkles: EmotionSelector ์ปดํฌ๋ํธ ๋์ ํฌ๊ธฐ ๋ณ๊ฒฝ ๊ตฌํ useMediaQuery ํ ์์ฑ: ํ๋ฉด์ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ๋ฆฌ์ค๋ ์ถ๊ฐ ๋ฐ ์ ๊ฑฐ * FE-48 :fire: ์ถ๋ ฅ ํ์ธ์ ์ํ ํ ์คํธ ์ปดํฌ๋ํธ ์ญ์ * FE-48 :hammer: EmotionTypes ์ธํฐํ์ด์ค ์ ์ emotion ๊ด๋ จ ์ปดํฌ๋ํธ์์ ํด๋น ์ธํฐํ์ด์ค๋ฅผ importํ์ฌ ์ฌ์ฉํ๊ฒ ๊ตฌํ * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-59 :sparkles: ์ํผ๊ทธ๋จ ์นด๋ ui ๊ตฌํ tailwind css๋ฅผ ํ์ฅํด ์ค๋ฌด๋ฌ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ๊ตฌํ * FE-59 :sparkles: ์ํผ๊ทธ๋จ ์นด๋ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-59 :lipstick: ์ํผ๊ทธ๋จ ์นด๋ ๊ธ์จ์ฒด ์ ์ฉ * FE-59 :fire: ์ํผ๊ทธ๋จ ์นด๋ ํ ์คํธ ์ฝ๋ ์ญ์ * FE-59 :fire: ํ ์คํธ ํ์ ์ญ์ * FE-58 :sparkles: ๊ณต์ฉ ์ปดํฌ๋ํธ ๋๊ธ ์นด๋ ๊ธฐ๋ณธ ui ๊ตฌํ * FE-58 :lipstick: ๊ณต์ฉ ์ปดํฌ๋ํธ ๋ฐ์ํ ๋์์ธ ์ ์ฉ * FE-58 :fire: ๋๊ธ ์นด๋ ํ ์คํธ ์ฝ๋ ์ญ์ * FE-58 :lips: ๋๊ธ ์นด๋ ๊ด๋ จ ์ธํฐํ์ด์ค, ์คํ์ผ ๋ถ๋ฆฌ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-50 โจ๊ณต์ฉ์ปดํฌ๋ํธ ํค๋ ๊ตฌํ (#19) * FE-5050โจ feat: ํค๋ ๋ถ๋ถ ๊ธฐ๋ฅ ์ด์ * FE-50 โจstyles: ์ฃผ์ ์ถ๊ฐ * FE-50 โจstyles: ์ฃผ์ ์ถ์ถ๊ฐ * FE-5050 โจtest: ํ ์คํธ ์ฝ๋ * FE-50 โจfix: ํ ์คํธ ์ฝ๋ ์ญ์ * FE-50 โจfeat: ๊ณต์ ์ด๋ฏธ์ง ์ถ๊ฐ ๋ฐ ํ์ฌ URL ๋ณต์ฌ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-50 โจstyles: U์ ์ค ํ๋๊ฐ ๋น ์ง๋๋ผ๋ ์๋ฌด๋์ง๊ฒ UI ์์ * FE-50 โจcomment: ์ฃผ์ ์์ ๋ฐ ์ถ๊ฐ * FE-50 โจfix: ํ ์คํธ ์ฝ๋ ์ญ์ * FE-50 โจfix: ํจ์๋ช ์ปจ๋ฒค์ ์ ๋ง๊ฒ ๋ณ๊ฒฝ * FE-50 โจfix: types ํด๋์ interface ์ ์ * FE-50 fix: build ์ค๋ฅ ์์ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * FE-61 ๐จ eslint ๊ท์น ์์ * FE-61 ๐ฅ InteractiveEmotionIconCard ์ญ์ ๋จ์ ๋ํ ๊ธฐ๋ฅ๋ฐ์ ์๋ ์ปดํฌ๋ํธ ์ญ์ / emotionselector์์ emotioniconcard๋ฅผ ์ง์ ์ฌ์ฉํ๋๋ก ์์ * FE-61 ๐จ EpigramCard ์ฌ์ด์ฆ ์ฌ์ ์ base -> xs๋ก ๋ณ๊ฒฝ * FE-61 ๐ ๊ณต์ฉ ์ปดํฌ๋ํธ ํ ์คํธ ํ ์คํธ ์ฃผ์ ์ถ๊ฐ * FE-61 ๐จ CommentCard ํ์ ๋ด๋ถ ์ ์ * FE-61 :truck: ๊ฐ์ ์นด๋ ํด๋ ๊ตฌ์กฐ ๋ณ๊ฒฝ * FE-61 ๐ ๊ฐ์ ์นด๋, ๊ฐ์ ์ ๋ ํฐ ์ฃผ์ ์ถ๊ฐ * FE-61 :fire: ๋๊ธ ์นด๋ ๋ํดํธ ํ๋กญ ์ญ์ * FE-62 โจfix: ์ฃผ์ ์์ ๋ฐ ํ์ ์์ (#27) * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :lipstick: ํ์๊ฐ์ ํ์ด์ง ๋ ์ด์์ ์ถ๊ฐ * :lipstick: ๊ฐํธ ๋ก๊ทธ์ธ ๋ก๊ณ ์ถ๊ฐ * :lipstick: ํ์๊ฐ์ ui ์ถ๊ฐ * :sparkles: ํ์๊ฐ์ ์คํค๋ง ์ ์ * :heavy_plus_sign: ํ์๊ฐ์ ํ์ด์ง์ ์คํค๋ง ์ ์ฉ * :lipstick: ์๋ฌ ๋ฉ์์ง ๋ฐ ๋ ๋ผ๋ฒจ, ์ธํ๋ ๊ฐ์ ์๋ฌ ์๊น ์ถ๊ฐ * :memo: ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํตํ ๋ฒํผ์ ๋นํ์ฑํ ์ฒ๋ฆฌ * :memo: ์ ํจ์ฑ ๊ฒ์ฌ์ ๋ฐ๋ฅธ ์ธํ ํ ๋๋ฆฌ ์์ ์ฒ๋ฆฌ * :fire: AuthLayout ์ญ์ * :art: ํ์๊ฐ์ ํ์ด์ง ๋ธ๋ผ์ฐ์ ํ๋์ ui ๊นจ์ง ์์ * :truck: ์ ๊ทํํ์ ๋ค์ด๋ฐ ๋ณ๊ฒฝ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * :sparkles: ํ์๊ฐ์ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ํ์๊ฐ์ api ์์ฑ * :sparkles: useRegisterMutation hook ์์ฑ * :zap: ํ์๊ฐ์ ํผ์ mutaion hook ์ ์ฉ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * :zap: isAxiosError๋ก ๋ณ๊ฒฝ * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * :twisted_rightwards_arrows: ์ถฉ๋ ํด๊ฒฐ * :bug: postSignup ํจ์ ์ถ๊ฐ * :bug: postSignin ๋ด๋ณด๋ด๋ ๋ฐฉ์ ์์ * :wrench: lint ์์ * build ์ค๋ฅ ํด๊ฒฐ * build ์ค๋ฅ ํด๊ฒฐ ์ค * :sparkles: oauth api ์์ฑ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- * :sparkles: ์นด์นด์คํก ๋ฆฌ๋๋ ํธ uri ์ค์ * :sparkles: useKakaoLogin mutation hook ์์ฑ * :zap: ๋ค์ด๋ฒ ๊ตฌ๊ธ ์นด์นด์ค ๊ฐํธ ๋ก๊ทธ์ธ ๋งํฌ ์ค์ * :recycle: ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์์ * FE-51 :twisted_rightwards_arrows: ๊ณต์ฉ API ๋จธ์ง ์์ฒญ (#92) * FE-52 โจ์ํผ๊ทธ๋จ ๋ชฉ๋ก์กฐํ API (#34) * FE-52 feat: api schema ์์ฑ * FE-52 โจfeat: getEpigrams api ์์ฑ * FE-522 โจfix: default export๋ก ๋ณ๊ฒฝ * FE-52 โจtest: ํ ์คํธ ์ฝ๋ ์์ฑ * FE-52 โจfeat: BaseUrl, TeamID ์์ ์ถ๊ฐ ๋ฐ axios baseTRL ์์ * FE-52 โจfix: schema ๋ฐ apis ํ์ผ ์์ * FE-52 โจtest: ํ ์คํธ ์ฝ๋ ์ญ์ * FE-52 โจfix: .envํ์ผ ์์ฑ ๋ฐ BaseURL ์์ * FE-52 โจfix: limit ํ์ ์์ (optional ์ญ์ ) * FE-52 โจtext: ํ ํ ์คํธ์ฝ๋ ์ญ์ * FE-52 โจfix: api GET์์ฒญ ์ฃผ์ ์์ ('epigrams' -> '/epigrams') * FE-53 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์ ์ฅ ์คํค๋ง ์ ์ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์ ์ฅ api ์์ฑ * FE-53 :sparkles: getMe ํจ์๋ฅผ ์ฌ์ฉํด ๋ก๊ทธ์ธ ์ํ ํ์ธ ๊ธฐ๋ฅ ๊ตฌํ * FE-53 :sparkles: ๊ฐ์ ํ์ ๋ณํ ํจ์ * FE-53 :sparkles: ๊ฐ์ ์ ์ฅ ํ ํ ์คํธ ์๋ฆผ ํ์ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์กฐํ api ์์ฑ * FE-53 :hammer: ๊ฐ์ ํ์ ๋ณํ ํจ์ ์ถ๊ฐ +) post, get ํจ์ ๋ด๋ถ๋ก ํ์ ๋ณํ ํจ์ ์ด๋ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์คํค๋ง ์ถ๊ฐ ์ ์ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์กฐํ ํจ์ ์ ์ฉ * FE-53 :truck: ์ค๋์ ๊ฐ์ type ์ด๋ฆ ๋ณ๊ฒฝ * FE-53 :sparkles: useMutation ํ ์ฌ์ฉ * FE-53 :memo: EmotionSelector ์ฃผ์ ์ถ๊ฐ * FE-53 :fire: api ํจ์ ์๋ฌ ์ฒ๋ฆฌ ๋ถ๋ถ ์ ๊ฑฐ * FE-53 :hammer: useQuery๋ฅผ ์ฌ์ฉํด ์ค๋์ ๊ฐ์ ์กฐํ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋๋ useQuery๋ฅผ ์ฌ์ฉํ๋๊ฑฐ๋ผ ํจ * FE-56 :sparkles: ๋๊ธ ์์ API (#84) * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- * FE-56 :sparkles: ๋๊ธ ์์ API --------- * FE-57 :sparkles: ๋๊ธ ์ญ์ API (#88) * FE-51 :twisted_rightwards_arrows: ๊ณต์ฉ API ์ต์ ํ (#93) * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- --------- * FE-51 :twisted_rightwards_arrows: ๊ณต์ฉ API ์ต์ ํ (์ถฉ๋์์ ) (#98) --------- * .http ํ์ผ ์ญ์ * merge main --------- * FE-32 ๊ฒ์ํ์ด์ง ๋ฉ์ธ ์ถฉ๋ ์์ (#112) * .nvmrc ๋ฒ์ ์์ * ํฐํธ ๋ฐ ๊ณต์ฉ์ปฌ๋ฌ ์ถ๊ฐ (#6) * font-family ์ถ๊ฐ * tailwind common color ์ถ๊ฐ * color ๋ช ๋ณ๊ฒฝ * lang ์์ --------- * :lipstick: ๊ณต์ฉ ์ปดํฌ๋ํธ shadcn ui ์ถ๊ฐ (#7) * :lipstick: Feat: shadcn-ui init * :lipstick: Feat: add toast ui * Feat: add textarea ui * Feat: add switch ui * Feat: add radio-group ui * Feat: add label ui * Feat: add input ui * Feat: add form ui * Feat: add button ui * Feat: add dropdown-menu ui * Feat: add card ui * Feat: add badge ui * Feat: add avatar ui * Feat: add alert dialog ui * Chore: add eslint rules * Chore: add shadcn ui * FE-48 ๐ฐ ๊ณต์ฉ ์ปดํฌ๋ํธ face emoji svg ํ์ผ ์์ฑ * FE-48 :art: ๊ฐ์ ์ด๋ชจํฐ์ฝ ํด๋ ๊ตฌ์กฐ ๋ณ๊ฒฝ * FE-48 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์นด๋ ์ปดํฌ๋ํธ ui ์์ฑ * FE-48 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์ํ์ ๋ฐ๋ฅธ ํด๋์ค ์ค์ * FE-48 :lipstick: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์นด๋ ์ปดํฌ๋ํธ ui ์์ * FE-48 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์นด๋ ํด๋ฆญ ์ด๋ฒคํธ ๊ตฌํ - EmotionIconCardContainer๋ฅผ ์ฌ์ฉํด ์ํ๊ด๋ฆฌ์ ์ด๋ฒคํธ ์ฒ๋ฆฌ (Clicked<->UnClicked) * FE-48 ๐ ์ปดํฌ๋ํธ ์ด๋ฆ ๋ณ๊ฒฝ ๋ช ํํ ์๋ฏธ ์ ๋ฌ์ ์ํด ์ปดํฌ๋ํธ ์ด๋ฆ ๋ณ๊ฒฝ * FE-48 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์ํ ๋ณํ ๋๊ธฐํ ๊ตฌ ๊ฐ์ ์นด๋๋ฅผ ํด๋ฆญํ ๋ ์ํ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ ํ๋๊ณ , ๋ค๋ฅธ ์นด๋์ ์ํ๋ ๋๊ธฐํ๋๋ ๊ธฐ๋ฅ ๊ตฌํ * FE-48 :sparkles: EmotionSelector ์ปดํฌ๋ํธ ๋์ ํฌ๊ธฐ ๋ณ๊ฒฝ ๊ตฌํ useMediaQuery ํ ์์ฑ: ํ๋ฉด์ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ๋ฆฌ์ค๋ ์ถ๊ฐ ๋ฐ ์ ๊ฑฐ * FE-48 :fire: ์ถ๋ ฅ ํ์ธ์ ์ํ ํ ์คํธ ์ปดํฌ๋ํธ ์ญ์ * FE-48 :hammer: EmotionTypes ์ธํฐํ์ด์ค ์ ์ emotion ๊ด๋ จ ์ปดํฌ๋ํธ์์ ํด๋น ์ธํฐํ์ด์ค๋ฅผ importํ์ฌ ์ฌ์ฉํ๊ฒ ๊ตฌํ * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-59 :sparkles: ์ํผ๊ทธ๋จ ์นด๋ ui ๊ตฌํ tailwind css๋ฅผ ํ์ฅํด ์ค๋ฌด๋ฌ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ๊ตฌํ * FE-59 :sparkles: ์ํผ๊ทธ๋จ ์นด๋ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-59 :lipstick: ์ํผ๊ทธ๋จ ์นด๋ ๊ธ์จ์ฒด ์ ์ฉ * FE-59 :fire: ์ํผ๊ทธ๋จ ์นด๋ ํ ์คํธ ์ฝ๋ ์ญ์ * FE-59 :fire: ํ ์คํธ ํ์ ์ญ์ * FE-58 :sparkles: ๊ณต์ฉ ์ปดํฌ๋ํธ ๋๊ธ ์นด๋ ๊ธฐ๋ณธ ui ๊ตฌํ * FE-58 :lipstick: ๊ณต์ฉ ์ปดํฌ๋ํธ ๋ฐ์ํ ๋์์ธ ์ ์ฉ * FE-58 :fire: ๋๊ธ ์นด๋ ํ ์คํธ ์ฝ๋ ์ญ์ * FE-58 :lips: ๋๊ธ ์นด๋ ๊ด๋ จ ์ธํฐํ์ด์ค, ์คํ์ผ ๋ถ๋ฆฌ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-50 โจ๊ณต์ฉ์ปดํฌ๋ํธ ํค๋ ๊ตฌํ (#19) * FE-5050โจ feat: ํค๋ ๋ถ๋ถ ๊ธฐ๋ฅ ์ด์ * FE-50 โจstyles: ์ฃผ์ ์ถ๊ฐ * FE-50 โจstyles: ์ฃผ์ ์ถ์ถ๊ฐ * FE-5050 โจtest: ํ ์คํธ ์ฝ๋ * FE-50 โจfix: ํ ์คํธ ์ฝ๋ ์ญ์ * FE-50 โจfeat: ๊ณต์ ์ด๋ฏธ์ง ์ถ๊ฐ ๋ฐ ํ์ฌ URL ๋ณต์ฌ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-50 โจstyles: U์ ์ค ํ๋๊ฐ ๋น ์ง๋๋ผ๋ ์๋ฌด๋์ง๊ฒ UI ์์ * FE-50 โจcomment: ์ฃผ์ ์์ ๋ฐ ์ถ๊ฐ * FE-50 โจfix: ํ ์คํธ ์ฝ๋ ์ญ์ * FE-50 โจfix: ํจ์๋ช ์ปจ๋ฒค์ ์ ๋ง๊ฒ ๋ณ๊ฒฝ * FE-50 โจfix: types ํด๋์ interface ์ ์ * FE-50 fix: build ์ค๋ฅ ์์ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * FE-61 ๐จ eslint ๊ท์น ์์ * FE-61 ๐ฅ InteractiveEmotionIconCard ์ญ์ ๋จ์ ๋ํ ๊ธฐ๋ฅ๋ฐ์ ์๋ ์ปดํฌ๋ํธ ์ญ์ / emotionselector์์ emotioniconcard๋ฅผ ์ง์ ์ฌ์ฉํ๋๋ก ์์ * FE-61 ๐จ EpigramCard ์ฌ์ด์ฆ ์ฌ์ ์ base -> xs๋ก ๋ณ๊ฒฝ * FE-61 ๐ ๊ณต์ฉ ์ปดํฌ๋ํธ ํ ์คํธ ํ ์คํธ ์ฃผ์ ์ถ๊ฐ * FE-61 ๐จ CommentCard ํ์ ๋ด๋ถ ์ ์ * FE-61 :truck: ๊ฐ์ ์นด๋ ํด๋ ๊ตฌ์กฐ ๋ณ๊ฒฝ * FE-61 ๐ ๊ฐ์ ์นด๋, ๊ฐ์ ์ ๋ ํฐ ์ฃผ์ ์ถ๊ฐ * FE-61 :fire: ๋๊ธ ์นด๋ ๋ํดํธ ํ๋กญ ์ญ์ * FE-62 โจfix: ์ฃผ์ ์์ ๋ฐ ํ์ ์์ (#27) * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :lipstick: ํ์๊ฐ์ ํ์ด์ง ๋ ์ด์์ ์ถ๊ฐ * :lipstick: ๊ฐํธ ๋ก๊ทธ์ธ ๋ก๊ณ ์ถ๊ฐ * :lipstick: ํ์๊ฐ์ ui ์ถ๊ฐ * :sparkles: ํ์๊ฐ์ ์คํค๋ง ์ ์ * :heavy_plus_sign: ํ์๊ฐ์ ํ์ด์ง์ ์คํค๋ง ์ ์ฉ * :lipstick: ์๋ฌ ๋ฉ์์ง ๋ฐ ๋ ๋ผ๋ฒจ, ์ธํ๋ ๊ฐ์ ์๋ฌ ์๊น ์ถ๊ฐ * :memo: ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํตํ ๋ฒํผ์ ๋นํ์ฑํ ์ฒ๋ฆฌ * :memo: ์ ํจ์ฑ ๊ฒ์ฌ์ ๋ฐ๋ฅธ ์ธํ ํ ๋๋ฆฌ ์์ ์ฒ๋ฆฌ * :fire: AuthLayout ์ญ์ * :art: ํ์๊ฐ์ ํ์ด์ง ๋ธ๋ผ์ฐ์ ํ๋์ ui ๊นจ์ง ์์ * :truck: ์ ๊ทํํ์ ๋ค์ด๋ฐ ๋ณ๊ฒฝ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * :sparkles: ํ์๊ฐ์ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ํ์๊ฐ์ api ์์ฑ * :sparkles: useRegisterMutation hook ์์ฑ * :zap: ํ์๊ฐ์ ํผ์ mutaion hook ์ ์ฉ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * :zap: isAxiosError๋ก ๋ณ๊ฒฝ * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * :twisted_rightwards_arrows: ์ถฉ๋ ํด๊ฒฐ * :bug: postSignup ํจ์ ์ถ๊ฐ * :bug: postSignin ๋ด๋ณด๋ด๋ ๋ฐฉ์ ์์ * :wrench: lint ์์ * :sparkles: oauth api ์์ฑ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- * :sparkles: ์นด์นด์คํก ๋ฆฌ๋๋ ํธ uri ์ค์ * :sparkles: useKakaoLogin mutation hook ์์ฑ * :zap: ๋ค์ด๋ฒ ๊ตฌ๊ธ ์นด์นด์ค ๊ฐํธ ๋ก๊ทธ์ธ ๋งํฌ ์ค์ * :recycle: ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์์ * FE-51 :twisted_rightwards_arrows: ๊ณต์ฉ API ๋จธ์ง ์์ฒญ (#92) * FE-52 โจ์ํผ๊ทธ๋จ ๋ชฉ๋ก์กฐํ API (#34) * FE-52 feat: api schema ์์ฑ * FE-52 โจfeat: getEpigrams api ์์ฑ * FE-522 โจfix: default export๋ก ๋ณ๊ฒฝ * FE-52 โจtest: ํ ์คํธ ์ฝ๋ ์์ฑ * FE-52 โจfeat: BaseUrl, TeamID ์์ ์ถ๊ฐ ๋ฐ axios baseTRL ์์ * FE-52 โจfix: schema ๋ฐ apis ํ์ผ ์์ * FE-52 โจtest: ํ ์คํธ ์ฝ๋ ์ญ์ * FE-52 โจfix: .envํ์ผ ์์ฑ ๋ฐ BaseURL ์์ * FE-52 โจfix: limit ํ์ ์์ (optional ์ญ์ ) * FE-52 โจtext: ํ ํ ์คํธ์ฝ๋ ์ญ์ * FE-52 โจfix: api GET์์ฒญ ์ฃผ์ ์์ ('epigrams' -> '/epigrams') * FE-53 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์ ์ฅ ์คํค๋ง ์ ์ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์ ์ฅ api ์์ฑ * FE-53 :sparkles: getMe ํจ์๋ฅผ ์ฌ์ฉํด ๋ก๊ทธ์ธ ์ํ ํ์ธ ๊ธฐ๋ฅ ๊ตฌํ * FE-53 :sparkles: ๊ฐ์ ํ์ ๋ณํ ํจ์ * FE-53 :sparkles: ๊ฐ์ ์ ์ฅ ํ ํ ์คํธ ์๋ฆผ ํ์ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์กฐํ api ์์ฑ * FE-53 :hammer: ๊ฐ์ ํ์ ๋ณํ ํจ์ ์ถ๊ฐ +) post, get ํจ์ ๋ด๋ถ๋ก ํ์ ๋ณํ ํจ์ ์ด๋ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์คํค๋ง ์ถ๊ฐ ์ ์ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์กฐํ ํจ์ ์ ์ฉ * FE-53 :truck: ์ค๋์ ๊ฐ์ type ์ด๋ฆ ๋ณ๊ฒฝ * FE-53 :sparkles: useMutation ํ ์ฌ์ฉ * FE-53 :memo: EmotionSelector ์ฃผ์ ์ถ๊ฐ * FE-53 :fire: api ํจ์ ์๋ฌ ์ฒ๋ฆฌ ๋ถ๋ถ ์ ๊ฑฐ * FE-53 :hammer: useQuery๋ฅผ ์ฌ์ฉํด ์ค๋์ ๊ฐ์ ์กฐํ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋๋ useQuery๋ฅผ ์ฌ์ฉํ๋๊ฑฐ๋ผ ํจ * FE-56 :sparkles: ๋๊ธ ์์ API (#84) * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- * FE-56 :sparkles: ๋๊ธ ์์ API --------- * FE-57 :sparkles: ๋๊ธ ์ญ์ API (#88) * FE-51 :twisted_rightwards_arrows: ๊ณต์ฉ API ์ต์ ํ (#93) * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- --------- * FE-51 :twisted_rightwards_arrows: ๊ณต์ฉ API ์ต์ ํ (์ถฉ๋์์ ) (#98) --------- --------- --------- * FE-27 :twisted_rightwards_arrows: ๋ง์ดํ์ด์ง ๋จธ์ง ์์ฒญ (#100) * FE-34 :sparkles: ๋ง์ดํ์ด์ง ํ๋กํ ์์ ๊ธฐ๋ฅ (#53) * FE-34 :lipstick: ๋ง์ดํ์ด์ง UI ์ด๊ธฐ์์ * FE-34 :sparkles: ๋ด ์ ๋ณด ์กฐํ API ์ฐ๋ * FE-34 :lipstick: shadcn/ui Dialog ์ค์น * FE-34 :sparkles: ํ๋กํ ์์ API ์ฐ๋ * FE-34 :sparkles: ์ด๋ฏธ์ง ์คํจ ํ ์คํธ ์ถ๊ฐ * FE-36 :sparkles: ๋ง์ดํ์ด์ง ์บ๋ฆฐ๋ ์ถ๋ ฅ ํจ์ (#58) * FE-36 :lipstick: ๊ฐ์ ๋ฌ๋ ฅ UI * FE-36 :sparkles: ์บ๋ฆฐ๋ ํจ์ ์์ฑ * FE-36 :sparkles: ๋ง์ดํ์ด์ง ๊ฐ์ ๋ฌ๋ ฅ (#65) * FE-36 :lipstick: ๊ฐ์ ๋ฌ๋ ฅ UI * FE-36 :sparkles: ์บ๋ฆฐ๋ ํจ์ ์์ฑ * FE-36 :sparkles: ๋ง์ดํ์ด์ง ๊ฐ์ ๋ฌ๋ ฅ: ์ค๋ ๋ ์ง ํ์ * FE-36 :sparkles: ๋ง์ดํ์ด์ง ์ ๋ณ ๊ฐ์ ๋ก๊ทธ ์กฐํ API ์ฐ๋ * FE-36 :sparkles: ์๋ณ ๊ฐ์ ๋ก๊ทธ ํด๋น ๋ ์ง์ ์ถ๋ ฅ * FE-36 :lipstick: ๋ฌ๋ ฅ css ์์ * FE-36 :art: ๋ง์ดํ์ด์ง ์บ๋ฆฐ๋ ํค๋ ์ปดํฌ๋ํธ ๋ถ๋ฆฌ * FE-36 :sparkles: ๋ง์ดํ์ด์ง ๊ฐ์ ๋ฌ๋ ฅ ํํฐ๊ธฐ๋ฅ * FE-27 :twisted_rightwards_arrows: ์ํฝ ๋ธ๋์น ์ต์ ํ (#81) * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- --------- * FE-27 :twisted_rightwards_arrows: ๋ง์ดํ์ด์ง ์ํฝ ๋ธ๋์น ์ต์ ํ (#85) * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- --------- * FE-27 :twisted_rightwards_arrows: ๋ธ๋์น ์ต์ ํ (#86) * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- --------- * FE-37 :sparkles: ๋ง์ดํ์ด์ง ๊ฐ์ ์ฐจํธ (#89) * FE-37 :recycle: ์๋ณ ๊ฐ์ ๋ก๊ทธ ์กฐํ ์ฝ๋ ๋ฆฌํฉํ ๋ง * FE-37 :sparkles: ๊ฐ์ ์ฐจํธ * FE-37 :hammer: ์์ ์ปจ๋ฒค์ ์์ * FE-27 :twisted_rightwards_arrows: ๋ธ๋์น ์ต์ ํ (#99) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :lipstick: ํ์๊ฐ์ ํ์ด์ง ๋ ์ด์์ ์ถ๊ฐ * :lipstick: ๊ฐํธ ๋ก๊ทธ์ธ ๋ก๊ณ ์ถ๊ฐ * :lipstick: ํ์๊ฐ์ ui ์ถ๊ฐ * :sparkles: ํ์๊ฐ์ ์คํค๋ง ์ ์ * :heavy_plus_sign: ํ์๊ฐ์ ํ์ด์ง์ ์คํค๋ง ์ ์ฉ * :lipstick: ์๋ฌ ๋ฉ์์ง ๋ฐ ๋ ๋ผ๋ฒจ, ์ธํ๋ ๊ฐ์ ์๋ฌ ์๊น ์ถ๊ฐ * :memo: ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํตํ ๋ฒํผ์ ๋นํ์ฑํ ์ฒ๋ฆฌ * :memo: ์ ํจ์ฑ ๊ฒ์ฌ์ ๋ฐ๋ฅธ ์ธํ ํ ๋๋ฆฌ ์์ ์ฒ๋ฆฌ * :fire: AuthLayout ์ญ์ * :art: ํ์๊ฐ์ ํ์ด์ง ๋ธ๋ผ์ฐ์ ํ๋์ ui ๊นจ์ง ์์ * :truck: ์ ๊ทํํ์ ๋ค์ด๋ฐ ๋ณ๊ฒฝ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * :sparkles: ํ์๊ฐ์ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ํ์๊ฐ์ api ์์ฑ * :sparkles: useRegisterMutation hook ์์ฑ * :zap: ํ์๊ฐ์ ํผ์ mutaion hook ์ ์ฉ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * :zap: isAxiosError๋ก ๋ณ๊ฒฝ * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * :twisted_rightwards_arrows: ์ถฉ๋ ํด๊ฒฐ * :bug: postSignup ํจ์ ์ถ๊ฐ * :bug: postSignin ๋ด๋ณด๋ด๋ ๋ฐฉ์ ์์ * :wrench: lint ์์ * :sparkles: oauth api ์์ฑ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- * :sparkles: ์นด์นด์คํก ๋ฆฌ๋๋ ํธ uri ์ค์ * :sparkles: useKakaoLogin mutation hook ์์ฑ * :zap: ๋ค์ด๋ฒ ๊ตฌ๊ธ ์นด์นด์ค ๊ฐํธ ๋ก๊ทธ์ธ ๋งํฌ ์ค์ * :recycle: ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์์ * FE-51 :twisted_rightwards_arrows: ๊ณต์ฉ API ๋จธ์ง ์์ฒญ (#92) * FE-52 โจ์ํผ๊ทธ๋จ ๋ชฉ๋ก์กฐํ API (#34) * FE-52 feat: api schema ์์ฑ * FE-52 โจfeat: getEpigrams api ์์ฑ * FE-522 โจfix: default export๋ก ๋ณ๊ฒฝ * FE-52 โจtest: ํ ์คํธ ์ฝ๋ ์์ฑ * FE-52 โจfeat: BaseUrl, TeamID ์์ ์ถ๊ฐ ๋ฐ axios baseTRL ์์ * FE-52 โจfix: schema ๋ฐ apis ํ์ผ ์์ * FE-52 โจtest: ํ ์คํธ ์ฝ๋ ์ญ์ * FE-52 โจfix: .envํ์ผ ์์ฑ ๋ฐ BaseURL ์์ * FE-52 โจfix: limit ํ์ ์์ (optional ์ญ์ ) * FE-52 โจtext: ํ ํ ์คํธ์ฝ๋ ์ญ์ * FE-52 โจfix: api GET์์ฒญ ์ฃผ์ ์์ ('epigrams' -> '/epigrams') * FE-53 :sparkles: ๊ฐ์ ์ด๋ชจํฐ์ฝ ์ ์ฅ ์คํค๋ง ์ ์ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์ ์ฅ api ์์ฑ * FE-53 :sparkles: getMe ํจ์๋ฅผ ์ฌ์ฉํด ๋ก๊ทธ์ธ ์ํ ํ์ธ ๊ธฐ๋ฅ ๊ตฌํ * FE-53 :sparkles: ๊ฐ์ ํ์ ๋ณํ ํจ์ * FE-53 :sparkles: ๊ฐ์ ์ ์ฅ ํ ํ ์คํธ ์๋ฆผ ํ์ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์กฐํ api ์์ฑ * FE-53 :hammer: ๊ฐ์ ํ์ ๋ณํ ํจ์ ์ถ๊ฐ +) post, get ํจ์ ๋ด๋ถ๋ก ํ์ ๋ณํ ํจ์ ์ด๋ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์คํค๋ง ์ถ๊ฐ ์ ์ * FE-53 :sparkles: ์ค๋์ ๊ฐ์ ์กฐํ ํจ์ ์ ์ฉ * FE-53 :truck: ์ค๋์ ๊ฐ์ type ์ด๋ฆ ๋ณ๊ฒฝ * FE-53 :sparkles: useMutation ํ ์ฌ์ฉ * FE-53 :memo: EmotionSelector ์ฃผ์ ์ถ๊ฐ * FE-53 :fire: api ํจ์ ์๋ฌ ์ฒ๋ฆฌ ๋ถ๋ถ ์ ๊ฑฐ * FE-53 :hammer: useQuery๋ฅผ ์ฌ์ฉํด ์ค๋์ ๊ฐ์ ์กฐํ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋๋ useQuery๋ฅผ ์ฌ์ฉํ๋๊ฑฐ๋ผ ํจ * FE-56 :sparkles: ๋๊ธ ์์ API (#84) * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธโฆ Co-authored-by: MOON <[email protected]> Co-authored-by: MOON <[email protected]> Co-authored-by: NEWJIN <[email protected]> Co-authored-by: Jiseok Woo <[email protected]> Co-authored-by: ์ฐ์ง์ <[email protected]> Co-authored-by: JeonYumin <[email protected]> Co-authored-by: NEWJIN <[email protected]> Co-authored-by: ์ ์ ๋ฏผ <[email protected]> Co-authored-by: kich555 <[email protected]> Co-authored-by: morrison <[email protected]> * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ, ๊ฐํธ ๋ก๊ทธ์ธ ์์ ์ฌํญ ๋ฐ์ ์์ฒญ (#140) * :sparkles: ๋ค์ด๋ฒ post api ์ถ๊ฐ * :sparkles: ๊ตฌ๊ธ post api ์ถ๊ฐ * :wrench: ๋ผ์ฐํ ์์ * :sparkles: ๋ค์ด๋ฒ ๋ก๊ทธ์ธ ํ ์ถ๊ฐ ๋ฐ ๋ผ์ฐํ , ์๋ฌ ํธ๋ค๋ง ๊ตฌํ * :sparkles: ๊ตฌ๊ธ ๋ก๊ทธ์ธ ํ ์ถ๊ฐ ๋ฐ ๋ผ์ฐํ , ์๋ฌ ํธ๋ค๋ง ๊ตฌํ * :sparkles: ๋ค์ด๋ฒ ๊ฐํธ ๋ก๊ทธ์ธ ๋ฆฌ๋ค์ด๋ ํธ ์ค์ * :sparkles: ๊ตฌ๊ธ ๊ฐํธ ๋ก๊ทธ์ธ ๋ฆฌ๋ค์ด๋ ํธ ์ค์ * :wrench: ํ๊ฒฝ ๋ณ์ ์ ์ฉ: ๋ค์ด๋ฒ, ๊ตฌ๊ธ, ์นด์นด์ค ๋ก๊ทธ์ธ URL ์ ๋ฐ์ดํธ * :wrench: ๊ฐ์ ํ๊ธฐ ๊ฒฝ๋ก ์์ * :wrench: ๋ก๊ทธ์ธ ํ ๋ผ์ฐํ ์์ * :wrench: ๋ก๊ทธ์ธ ํ ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์์ * FE-27 :twisted_rightwards_arrows: ๋ง์ดํ์ด์ง main ๋จธ์ง ์์ฒญ (#147) * FE-34 :sparkles: ๋ง์ดํ์ด์ง ํ๋กํ ์์ ๊ธฐ๋ฅ (#53) * FE-34 :lipstick: ๋ง์ดํ์ด์ง UI ์ด๊ธฐ์์ * FE-34 :sparkles: ๋ด ์ ๋ณด ์กฐํ API ์ฐ๋ * FE-34 :lipstick: shadcn/ui Dialog ์ค์น * FE-34 :sparkles: ํ๋กํ ์์ API ์ฐ๋ * FE-34 :sparkles: ์ด๋ฏธ์ง ์คํจ ํ ์คํธ ์ถ๊ฐ * FE-36 :sparkles: ๋ง์ดํ์ด์ง ์บ๋ฆฐ๋ ์ถ๋ ฅ ํจ์ (#58) * FE-36 :lipstick: ๊ฐ์ ๋ฌ๋ ฅ UI * FE-36 :sparkles: ์บ๋ฆฐ๋ ํจ์ ์์ฑ * FE-36 :sparkles: ๋ง์ดํ์ด์ง ๊ฐ์ ๋ฌ๋ ฅ (#65) * FE-36 :lipstick: ๊ฐ์ ๋ฌ๋ ฅ UI * FE-36 :sparkles: ์บ๋ฆฐ๋ ํจ์ ์์ฑ * FE-36 :sparkles: ๋ง์ดํ์ด์ง ๊ฐ์ ๋ฌ๋ ฅ: ์ค๋ ๋ ์ง ํ์ * FE-36 :sparkles: ๋ง์ดํ์ด์ง ์ ๋ณ ๊ฐ์ ๋ก๊ทธ ์กฐํ API ์ฐ๋ * FE-36 :sparkles: ์๋ณ ๊ฐ์ ๋ก๊ทธ ํด๋น ๋ ์ง์ ์ถ๋ ฅ * FE-36 :lipstick: ๋ฌ๋ ฅ css ์์ * FE-36 :art: ๋ง์ดํ์ด์ง ์บ๋ฆฐ๋ ํค๋ ์ปดํฌ๋ํธ ๋ถ๋ฆฌ * FE-36 :sparkles: ๋ง์ดํ์ด์ง ๊ฐ์ ๋ฌ๋ ฅ ํํฐ๊ธฐ๋ฅ * FE-27 :twisted_rightwards_arrows: ์ํฝ ๋ธ๋์น ์ต์ ํ (#81) * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- Co-authored-by: ์ฐ์ง์ <[email protected]> * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- Co-authored-by: ์ฐ์ง์ <[email protected]> * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- Co-authored-by: ์ฐ์ง์ <[email protected]> --------- Co-authored-by: MOON <[email protected]> Co-authored-by: Jiseok Woo <[email protected]> Co-authored-by: ์ฐ์ง์ <[email protected]> * FE-27 :twisted_rightwards_arrows: ๋ง์ดํ์ด์ง ์ํฝ ๋ธ๋์น ์ต์ ํ (#85) * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- Co-authored-by: ์ฐ์ง์ <[email protected]> * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- Co-authored-by: ์ฐ์ง์ <[email protected]> * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- Co-authored-by: ์ฐ์ง์ <[email protected]> --------- Co-authored-by: MOON <[email protected]> Co-authored-by: Jiseok Woo <[email protected]> Co-authored-by: ์ฐ์ง์ <[email protected]> * FE-27 :twisted_rightwards_arrows: ๋ธ๋์น ์ต์ ํ (#86) * FE-29 :twisted_rightwards_arrows: ๋ก๊ทธ์ธ ํ์ด์ง ๋จธ์ง ์์ฒญ (#39) * :heavy_plus_sign: ์ด๋ฏธ์ง ํ์ผ ์ถ๊ฐ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ฑ * :lipstick: ๋ก๊ทธ์ธ ํ์ด์ง UI ์์ฑ ๋ฐ ๋ฐ์ํ ๋์์ธ ๊ตฌํ * FE-60 :sparkles: react hook form, zod ์ถ๊ฐ * FE-60 :lipstick: ๋ก๊ทธ์ธ ํผ ์คํ์ผ ์์ - ํ ์คํธ ์ธํ ํ ๋๋ฆฌ - ๋ก๊ทธ์ธ ๋ฒํผ * FE-60 :recycle: ๋ก๊ทธ์ธ ์คํค๋ง ๋ถ๋ฆฌ * :sparkles: ๋ก๊ทธ์ธ ์๋ต ๋ฐ์ดํฐ ์คํค๋ง ์ ์ * :sparkles: ๋ก๊ทธ์ธ api ์์ฑ * :sparkles: ์์ฒญ๊ณผ ์๋ต์ ๊ดํ ์ธํฐ์ ํฐ ์ถ๊ฐ * :sparkles: useSignin mutation hook ์์ฑ * :zap: useSignin hook ๋ก๊ทธ์ธ ํผ์ ์ ์ฉ * :fire: AuthLayout ์ญ์ * :art: onSubmit ํจ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ * :recycle: ์๋ต ์ธํฐ์ ํฐ์ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ๊ฐฑ์ ๋ก์ง ๊ฐ์ * :recycle: postSignin api ์๋ฌ์ฒ๋ฆฌ ๋ก์ง ์ญ์ * :fire: useSignin hook ์ญ์ * :truck: useSigninMutation hook์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ํ์ผ ์ด๋ * :sparkles: Toaster ์ปดํฌ๋ํธ ์ถ๊ฐ * :sparkles: toast๋ก ์๋ฌ๋ฉ์์ง ๋์ฐ๊ธฐ * FE-71 ๐ ์ํผ๊ทธ๋จ ์์ฑ ํ์ด์ง (#71) * FE-64๐ ๊ธ์์ฑ ํ์ด์ง UI์ถ๊ฐ (#44) * FE-72 โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ (#52) * FE-72โจ ๊ธ์์ฑํ์ด์ง ์คํค๋ง ์ถ๊ฐ * FE-72โจ formํ๊ทธ Form์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝ * FE-72โจ ํ๊ทธ ์ ์ฅ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก api์ฐ๋ * FE-72โจ ์ํผ๊ทธ๋จ ๋ฑ๋ก์ ํด๋น ์ํผ๊ทธ๋จ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ * FE-72โจ ๋ฑ๋ก ์ค์ผ๋์ ๋ก์ง์ถ๊ฐ * FE-72โจ toast-> alert-dailog๋ก ๋ณ๊ฒฝ * FE-72๐ TODO์ฃผ์ ์ถ๊ฐ --------- Co-authored-by: ์ฐ์ง์ <[email protected]> * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ (#66) * FE-73โป๏ธ Tag๊ด๋ฆฌ ํจ์ ํ ์ผ๋ก ๋ถ๋ฆฌ * FE-73โจ RadioGroup ๋ก์ง ์์ * FE-73โจ ์ ํจ์ฑ๊ฒ์ฌ ์ถ๊ฐ * FE-73โป๏ธ ์ ์ ๋ณธ์ธ ์ ํ์์ ๋ก์ง ๋ณ๊ฒฝ * FE-73โจ ์ค๋ณต ํ๊ทธ ๊ฒ์ฌ ๋ก์ง ์ถ๊ฐ * FE-73โป๏ธ ์ถ์ฒ ์ ํจ์ฑ(optional)๊ฒ์ฌ ์์ * FE-73โจ ํ์ํญ๋ชฉ ์ ๋ ฅํ์๋ ๋ฒํผ ํ์ฑํ * FE-73๐ ํ๊ทธ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ง์ ์๋ ๋ฒํผ ํ์ฑํ๋์๋ ๋ฒ๊ทธ ์์ * FE-73๐ useEffect ์์กด์ฑ๋ฐฐ์ด lint problem ํด๊ฒฐ * FE-73๐ url์ ํจ์ฑ๊ฒ์ฌ ์๋ฌ ๋ฉ์ธ์ง ์๋จ๋ ๋ฒ๊ทธ ์์ --------- Co-authored-by: ์ฐ์ง์ <[email protected]> * FE-71โป๏ธ epic๋ธ๋์น ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ (#76) * FE-71โป๏ธ token,interceptor ๋ก์ง ์์ * FE-71โป๏ธ AddEpigram ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ * FE-71๐ฅ ํ ์คํธ์ฉ ์์ธํ์ด์ง ์ญ์ * FE-71โป๏ธ onKeyDown -> onKeyUp ์์ --------- Co-authored-by: ์ฐ์ง์ <[email protected]> --------- Co-authored-by: MOON <[email protected]> Co-authored-by: Jiseok Woo <[email protected]โฆ
- Loading branch information