Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโ€™ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FE-32 ๐Ÿ”€ ๊ฒ€์ƒ‰ํŽ˜์ด์ง€ ์˜ค๋ฅ˜ ์ˆ˜์ • #178

Merged
merged 13 commits into from
Aug 4, 2024

Conversation

imsoohyeok
Copy link
Contributor

@imsoohyeok imsoohyeok commented Aug 3, 2024

๐Ÿ”– Issue Ticket

X

โœ๏ธ Description

๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ ๋ฌดํ•œ ์Šคํฌ๋กค ์˜ค๋ฅ˜ ์ˆ˜์ • ๋ฐ ์ €์ž ํ•˜์ด๋ผ์ดํŒ… ์˜ค๋ฅ˜ ์ˆ˜์ •, ํ—ค๋” ์ค‘์•™์œผ๋กœ ์ˆ˜์ •

โ— SearchResults.tsx, useGetEpigramsHooks.ts, SearchLayout.tsx ๋งŒ ๋ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค!

โœ… Checklist

PR

  • Branch Convention ํ™•์ธ

epic/ ์—ํ”ฝ, feat/ ํ”ผ์ณ, fix/ ๋ฒ„๊ทธ ์ˆ˜์ •, refactor/ ๊ฐœ์„ 

  • Base Branch ํ™•์ธ
  • ์ ์ ˆํ•œ Label ์ง€์ •
  • Assignee ๋ฐ Reviewer ์ง€์ •

Test

  • ๋กœ์ปฌ ์ž‘๋™ ํ™•์ธ

Additional Notes

  • (์—†์Œ)

imsoohyeok and others added 11 commits July 11, 2024 16:29
* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* ๐Ÿ’„ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ shadcn ui ์ถ”๊ฐ€ (#7)

* ๐Ÿ’„ Feat: shadcn-ui init

* ๐Ÿ’„ 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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
* 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 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: ๋ฉ˜ํ† ๋ง  ๋‚ด์šฉ ์ฃผ์„์œผ๋กœ  ์ถ”๊ฐ€
* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* ๐Ÿ’„ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ shadcn ui ์ถ”๊ฐ€ (#7)

* ๐Ÿ’„ Feat: shadcn-ui init

* ๐Ÿ’„ 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 ๐ŸŽจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ํด๋” ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-48 โœจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ui ์ƒ์„ฑ

* FE-48 โœจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์ƒํƒœ์— ๋”ฐ๋ฅธ ํด๋ž˜์Šค ์„ค์ •

* FE-48 ๐Ÿ’„ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ui ์ˆ˜์ •

* FE-48 โœจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ํด๋ฆญ ์ด๋ฒคํŠธ ๊ตฌํ˜„

- EmotionIconCardContainer๋ฅผ ์‚ฌ์šฉํ•ด ์ƒํƒœ๊ด€๋ฆฌ์™€ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ (Clicked<->UnClicked)

* FE-48 ๐Ÿ“ ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„ ๋ณ€๊ฒฝ

๋ช…ํ™•ํ•œ ์˜๋ฏธ ์ „๋‹ฌ์„ ์œ„ํ•ด ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-48 โœจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์ƒํƒœ ๋ณ€ํ™” ๋™๊ธฐํ™” ๊ตฌ

๊ฐ์ • ์นด๋“œ๋ฅผ ํด๋ฆญํ•  ๋•Œ ์ƒํƒœ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ „ํ™˜๋˜๊ณ , ๋‹ค๋ฅธ ์นด๋“œ์˜ ์ƒํƒœ๋„ ๋™๊ธฐํ™”๋˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-48 โœจ EmotionSelector ์ปดํฌ๋„ŒํŠธ ๋™์  ํฌ๊ธฐ ๋ณ€๊ฒฝ ๊ตฌํ˜„

useMediaQuery ํ›… ์ƒ์„ฑ: ํ™”๋ฉด์˜ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋ฆฌ์Šค๋„ˆ ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐ

* FE-48 ๐Ÿ”ฅ ์ถœ๋ ฅ ํ™•์ธ์„ ์œ„ํ•œ ํ…Œ์ŠคํŠธ ์ปดํฌ๋„ŒํŠธ ์‚ญ์ œ

* FE-48 ๐Ÿ”จ EmotionTypes ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜

emotion ๊ด€๋ จ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ importํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ฒŒ ๊ตฌํ˜„

* FE-59 โœจ ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ui ๊ตฌํ˜„

tailwind css๋ฅผ ํ™•์žฅํ•ด ์ค„๋ฌด๋Šฌ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€ ๊ตฌํ˜„

* FE-59 โœจ ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ๋ฐ˜์‘ํ˜„ ๋””์ž์ธ ๊ตฌํ˜„

* FE-59 ๐Ÿ’„ ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ๊ธ€์”จ์ฒด ์ ์šฉ

* FE-59 ๐Ÿ”ฅ ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-59 ๐Ÿ”ฅ ํ…Œ์ŠคํŠธ ํ”์  ์‚ญ์ œ

* FE-58 โœจ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ๋Œ“๊ธ€ ์นด๋“œ ๊ธฐ๋ณธ ui ๊ตฌํ˜„

* FE-58 ๐Ÿ’„ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ ์šฉ

* FE-58 ๐Ÿ”ฅ ๋Œ“๊ธ€ ์นด๋“œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-58 ๐Ÿ‘„ ๋Œ“๊ธ€ ์นด๋“œ ๊ด€๋ จ ์ธํ„ฐํŽ˜์ด์Šค, ์Šคํƒ€์ผ ๋ถ„๋ฆฌ

* 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 ๐Ÿšš ๊ฐ์ • ์นด๋“œ ํด๋” ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-61 ๐Ÿ“ ๊ฐ์ • ์นด๋“œ, ๊ฐ์ • ์…€๋ ‰ํ„ฐ ์ฃผ์„ ์ถ”๊ฐ€

* FE-61 ๐Ÿ”ฅ ๋Œ“๊ธ€ ์นด๋“œ ๋””ํดํŠธ ํ”„๋กญ ์‚ญ์ œ

* FE-62 โœจfix:  ์ฃผ์„ ์ˆ˜์ • ๋ฐ ํƒ€์ž… ์ˆ˜์ • (#27)

* FE-29 ๐Ÿ”€ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* โž• ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 โœจ react hook form, zod ์ถ”๊ฐ€

* FE-60 ๐Ÿ’„ ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 โ™ป๏ธ ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* โœจ ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* โœจ ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* โœจ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* โœจ useSignin mutation hook ์ƒ์„ฑ

* โšก useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* ๐Ÿ”ฅ AuthLayout ์‚ญ์ œ

* ๐ŸŽจ onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* โ™ป๏ธ ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* โ™ป๏ธ postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* ๐Ÿ”ฅ useSignin hook ์‚ญ์ œ

* ๐Ÿšš useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* โœจ Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* โœจ toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
* 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: ๊ฒ€์ƒ‰ ์ „ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€  ๋‚˜์˜ค์ง€ ์•Š๋„๋ก ์ˆ˜์ •
* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* ๐Ÿ’„ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ shadcn ui ์ถ”๊ฐ€ (#7)

* ๐Ÿ’„ Feat: shadcn-ui init

* ๐Ÿ’„ 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 ๐ŸŽจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ํด๋” ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-48 โœจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ui ์ƒ์„ฑ

* FE-48 โœจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์ƒํƒœ์— ๋”ฐ๋ฅธ ํด๋ž˜์Šค ์„ค์ •

* FE-48 ๐Ÿ’„ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ui ์ˆ˜์ •

* FE-48 โœจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ํด๋ฆญ ์ด๋ฒคํŠธ ๊ตฌํ˜„

- EmotionIconCardContainer๋ฅผ ์‚ฌ์šฉํ•ด ์ƒํƒœ๊ด€๋ฆฌ์™€ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ (Clicked<->UnClicked)

* FE-48 ๐Ÿ“ ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„ ๋ณ€๊ฒฝ

๋ช…ํ™•ํ•œ ์˜๋ฏธ ์ „๋‹ฌ์„ ์œ„ํ•ด ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-48 โœจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์ƒํƒœ ๋ณ€ํ™” ๋™๊ธฐํ™” ๊ตฌ

๊ฐ์ • ์นด๋“œ๋ฅผ ํด๋ฆญํ•  ๋•Œ ์ƒํƒœ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ „ํ™˜๋˜๊ณ , ๋‹ค๋ฅธ ์นด๋“œ์˜ ์ƒํƒœ๋„ ๋™๊ธฐํ™”๋˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-48 โœจ EmotionSelector ์ปดํฌ๋„ŒํŠธ ๋™์  ํฌ๊ธฐ ๋ณ€๊ฒฝ ๊ตฌํ˜„

useMediaQuery ํ›… ์ƒ์„ฑ: ํ™”๋ฉด์˜ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋ฆฌ์Šค๋„ˆ ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐ

* FE-48 ๐Ÿ”ฅ ์ถœ๋ ฅ ํ™•์ธ์„ ์œ„ํ•œ ํ…Œ์ŠคํŠธ ์ปดํฌ๋„ŒํŠธ ์‚ญ์ œ

* FE-48 ๐Ÿ”จ EmotionTypes ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜

emotion ๊ด€๋ จ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ importํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ฒŒ ๊ตฌํ˜„

* โž• ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-59 โœจ ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ui ๊ตฌํ˜„

tailwind css๋ฅผ ํ™•์žฅํ•ด ์ค„๋ฌด๋Šฌ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€ ๊ตฌํ˜„

* FE-59 โœจ ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ๋ฐ˜์‘ํ˜„ ๋””์ž์ธ ๊ตฌํ˜„

* FE-59 ๐Ÿ’„ ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ๊ธ€์”จ์ฒด ์ ์šฉ

* FE-59 ๐Ÿ”ฅ ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-59 ๐Ÿ”ฅ ํ…Œ์ŠคํŠธ ํ”์  ์‚ญ์ œ

* FE-58 โœจ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ๋Œ“๊ธ€ ์นด๋“œ ๊ธฐ๋ณธ ui ๊ตฌํ˜„

* FE-58 ๐Ÿ’„ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ ์šฉ

* FE-58 ๐Ÿ”ฅ ๋Œ“๊ธ€ ์นด๋“œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-58 ๐Ÿ‘„ ๋Œ“๊ธ€ ์นด๋“œ ๊ด€๋ จ ์ธํ„ฐํŽ˜์ด์Šค, ์Šคํƒ€์ผ ๋ถ„๋ฆฌ

* FE-60 โœจ 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 ๐Ÿ’„ ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 โ™ป๏ธ ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* FE-61 ๐Ÿ”จ eslint ๊ทœ์น™ ์ˆ˜์ •

* FE-61 ๐Ÿ”ฅ InteractiveEmotionIconCard ์‚ญ์ œ

๋‹จ์ˆœ ๋ž˜ํ•‘ ๊ธฐ๋Šฅ๋ฐ–์— ์—†๋Š” ์ปดํฌ๋„ŒํŠธ ์‚ญ์ œ / emotionselector์—์„œ emotioniconcard๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋„๋ก ์ˆ˜์ •

* FE-61 ๐Ÿ”จ EpigramCard ์‚ฌ์ด์ฆˆ ์žฌ์ •์˜

base -> xs๋กœ ๋ณ€๊ฒฝ

* FE-61 ๐Ÿ“ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ํ…Œ์ŠคํŠธ ํ…์ŠคํŠธ ์ฃผ์„ ์ถ”๊ฐ€

* FE-61 ๐Ÿ”จ CommentCard ํƒ€์ž… ๋‚ด๋ถ€ ์ •์˜

* FE-61 ๐Ÿšš ๊ฐ์ • ์นด๋“œ ํด๋” ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-61 ๐Ÿ“ ๊ฐ์ • ์นด๋“œ, ๊ฐ์ • ์…€๋ ‰ํ„ฐ ์ฃผ์„ ์ถ”๊ฐ€

* FE-61 ๐Ÿ”ฅ ๋Œ“๊ธ€ ์นด๋“œ ๋””ํดํŠธ ํ”„๋กญ ์‚ญ์ œ

* FE-62 โœจfix:  ์ฃผ์„ ์ˆ˜์ • ๋ฐ ํƒ€์ž… ์ˆ˜์ • (#27)

* โœจ ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* โœจ ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* โœจ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* โœจ useSignin mutation hook ์ƒ์„ฑ

* โšก useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* ๐Ÿ’„ ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ถ”๊ฐ€

* ๐Ÿ’„ ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๋กœ๊ณ  ์ถ”๊ฐ€

* ๐Ÿ’„ ํšŒ์›๊ฐ€์ž… ui ์ถ”๊ฐ€

* โœจ ํšŒ์›๊ฐ€์ž… ์Šคํ‚ค๋งˆ ์ •์˜

* โž• ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€์— ์Šคํ‚ค๋งˆ ์ ์šฉ

* ๐Ÿ’„ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ๋œฐ ๋•Œ ๋ผ๋ฒจ, ์ธํ’‹๋„ ๊ฐ™์€ ์—๋Ÿฌ ์ƒ‰๊น” ์ถ”๊ฐ€

* ๐Ÿ“ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ†ตํ•œ ๋ฒ„ํŠผ์˜ ๋น„ํ™œ์„ฑํ™” ์ฒ˜๋ฆฌ

* ๐Ÿ“ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ๋”ฐ๋ฅธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒ ์ฒ˜๋ฆฌ

* ๐Ÿ”ฅ AuthLayout ์‚ญ์ œ

* ๐ŸŽจ ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๋ธŒ๋ผ์šฐ์ € ํ™•๋Œ€์‹œ ui ๊นจ์ง ์ˆ˜์ •

* ๐Ÿšš ์ •๊ทœํ‘œํ˜„์‹ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* ๐Ÿ”ฅ AuthLayout ์‚ญ์ œ

* ๐ŸŽจ onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* โ™ป๏ธ ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* โ™ป๏ธ postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* ๐Ÿ”ฅ useSignin hook ์‚ญ์ œ

* ๐Ÿšš useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* โœจ Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* โœจ toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* โœจ ํšŒ์›๊ฐ€์ž… ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* โœจ ํšŒ์›๊ฐ€์ž… api ์ƒ์„ฑ

* โœจ useRegisterMutation hook ์ƒ์„ฑ

* โšก ํšŒ์›๊ฐ€์ž… ํผ์— mutaion hook ์ ์šฉ

* โœจ Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* โœจ toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* โšก isAxiosError๋กœ ๋ณ€๊ฒฝ

* FE-29 ๐Ÿ”€ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* โž• ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 โœจ react hook form, zod ์ถ”๊ฐ€

* FE-60 ๐Ÿ’„ ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 โ™ป๏ธ ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* โœจ ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* โœจ ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* โœจ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* โœจ useSignin mutation hook ์ƒ์„ฑ

* โšก useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* ๐Ÿ”ฅ AuthLayout ์‚ญ์ œ

* ๐ŸŽจ onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* โ™ป๏ธ ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* โ™ป๏ธ postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* ๐Ÿ”ฅ useSignin hook ์‚ญ์ œ

* ๐Ÿšš useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* โœจ Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* โœจ toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* ๐Ÿ”€ ์ถฉ๋Œ ํ•ด๊ฒฐ

* ๐Ÿ› postSignup ํ•จ์ˆ˜ ์ถ”๊ฐ€

* ๐Ÿ› postSignin ๋‚ด๋ณด๋‚ด๋Š” ๋ฐฉ์‹ ์ˆ˜์ •

* ๐Ÿ”ง lint ์ˆ˜์ •

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

* โœจ 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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* โœจ ์นด์นด์˜คํ†ก ๋ฆฌ๋””๋ ‰ํŠธ uri ์„ค์ •

* โœจ useKakaoLogin mutation hook ์ƒ์„ฑ

* โšก ๋„ค์ด๋ฒ„ ๊ตฌ๊ธ€ ์นด์นด์˜ค ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๋งํฌ ์„ค์ •

* โ™ป๏ธ ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์ˆ˜์ •

* FE-51 ๐Ÿ”€ ๊ณต์šฉ 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 โœจ ๊ฐ์ •์ด๋ชจํ‹ฐ์ฝ˜ ์ €์žฅ ์Šคํ‚ค๋งˆ ์ •์˜

* FE-53 โœจ ์˜ค๋Š˜์˜ ๊ฐ์ • ์ €์žฅ api ์ƒ์„ฑ

* FE-53 โœจ getMe ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๋กœ๊ทธ์ธ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-53 โœจ ๊ฐ์ • ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜

* FE-53 โœจ ๊ฐ์ • ์ €์žฅ ํ›„ ํ† ์ŠคํŠธ ์•Œ๋ฆผ ํ‘œ์‹œ

* FE-53 โœจ ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ api ์ƒ์„ฑ

* FE-53 ๐Ÿ”จ ๊ฐ์ • ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜ ์ถ”๊ฐ€

+) post, get ํ•จ์ˆ˜ ๋‚ด๋ถ€๋กœ ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜ ์ด๋™

* FE-53 โœจ ์˜ค๋Š˜์˜ ๊ฐ์ • ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€ ์ •์˜

* FE-53 โœจ ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ ํ•จ์ˆ˜ ์ ์šฉ

* FE-53 ๐Ÿšš ์˜ค๋Š˜์˜ ๊ฐ์ • type ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-53 โœจ useMutation ํ›… ์‚ฌ์šฉ

* FE-53 ๐Ÿ“ EmotionSelector ์ฃผ์„ ์ถ”๊ฐ€

* FE-53 ๐Ÿ”ฅ api ํ•จ์ˆ˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ถ€๋ถ„ ์ œ๊ฑฐ

* FE-53 ๐Ÿ”จ useQuery๋ฅผ ์‚ฌ์šฉํ•ด ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ

๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ๋Š” useQuery๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฑฐ๋ผ ํ•จ

* FE-56 โœจ ๋Œ“๊ธ€ ์ˆ˜์ • API (#84)

* FE-29 ๐Ÿ”€ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* โž• ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 โœจ react hook form, zod ์ถ”๊ฐ€

* FE-60 ๐Ÿ’„ ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 โ™ป๏ธ ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* โœจ ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* โœจ ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* โœจ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* โœจ useSignin mutation hook ์ƒ์„ฑ

* โšก useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* ๐Ÿ”ฅ AuthLayout ์‚ญ์ œ

* ๐ŸŽจ onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* โ™ป๏ธ ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* โ™ป๏ธ postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* ๐Ÿ”ฅ useSignin hook ์‚ญ์ œ

* ๐Ÿšš useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* โœจ Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* โœจ 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]>

* FE-56 โœจ ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-57 โœจ ๋Œ“๊ธ€ ์‚ญ์ œ API (#88)

* FE-51 ๐Ÿ”€ ๊ณต์šฉ API ์ตœ์‹ ํ™” (#93)

* FE-29 ๐Ÿ”€ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* โž• ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 โœจ react hook form, zod ์ถ”๊ฐ€

* FE-60 ๐Ÿ’„ ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 โ™ป๏ธ ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* โœจ ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* โœจ ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* โœจ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* โœจ useSignin mutation hook ์ƒ์„ฑ

* โšก useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* ๐Ÿ”ฅ AuthLayout ์‚ญ์ œ

* ๐ŸŽจ onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* โ™ป๏ธ ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* โ™ป๏ธ postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* ๐Ÿ”ฅ useSignin hook ์‚ญ์ œ

* ๐Ÿšš useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* โœจ Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* โœจ 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-51 ๐Ÿ”€ ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>
* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* ๐Ÿ’„ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ shadcn ui ์ถ”๊ฐ€ (#7)

* ๐Ÿ’„ Feat: shadcn-ui init

* ๐Ÿ’„ 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 ๐ŸŽจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ํด๋” ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-48 โœจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ui ์ƒ์„ฑ

* FE-48 โœจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์ƒํƒœ์— ๋”ฐ๋ฅธ ํด๋ž˜์Šค ์„ค์ •

* FE-48 ๐Ÿ’„ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ui ์ˆ˜์ •

* FE-48 โœจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ํด๋ฆญ ์ด๋ฒคํŠธ ๊ตฌํ˜„

- EmotionIconCardContainer๋ฅผ ์‚ฌ์šฉํ•ด ์ƒํƒœ๊ด€๋ฆฌ์™€ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ (Clicked<->UnClicked)

* FE-48 ๐Ÿ“ ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„ ๋ณ€๊ฒฝ

๋ช…ํ™•ํ•œ ์˜๋ฏธ ์ „๋‹ฌ์„ ์œ„ํ•ด ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-48 โœจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์ƒํƒœ ๋ณ€ํ™” ๋™๊ธฐํ™” ๊ตฌ

๊ฐ์ • ์นด๋“œ๋ฅผ ํด๋ฆญํ•  ๋•Œ ์ƒํƒœ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ „ํ™˜๋˜๊ณ , ๋‹ค๋ฅธ ์นด๋“œ์˜ ์ƒํƒœ๋„ ๋™๊ธฐํ™”๋˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-48 โœจ EmotionSelector ์ปดํฌ๋„ŒํŠธ ๋™์  ํฌ๊ธฐ ๋ณ€๊ฒฝ ๊ตฌํ˜„

useMediaQuery ํ›… ์ƒ์„ฑ: ํ™”๋ฉด์˜ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋ฆฌ์Šค๋„ˆ ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐ

* FE-48 ๐Ÿ”ฅ ์ถœ๋ ฅ ํ™•์ธ์„ ์œ„ํ•œ ํ…Œ์ŠคํŠธ ์ปดํฌ๋„ŒํŠธ ์‚ญ์ œ

* FE-48 ๐Ÿ”จ EmotionTypes ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜

emotion ๊ด€๋ จ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ importํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ฒŒ ๊ตฌํ˜„

* โž• ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-59 โœจ ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ui ๊ตฌํ˜„

tailwind css๋ฅผ ํ™•์žฅํ•ด ์ค„๋ฌด๋Šฌ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€ ๊ตฌํ˜„

* FE-59 โœจ ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ๋ฐ˜์‘ํ˜„ ๋””์ž์ธ ๊ตฌํ˜„

* FE-59 ๐Ÿ’„ ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ๊ธ€์”จ์ฒด ์ ์šฉ

* FE-59 ๐Ÿ”ฅ ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-59 ๐Ÿ”ฅ ํ…Œ์ŠคํŠธ ํ”์  ์‚ญ์ œ

* FE-58 โœจ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ๋Œ“๊ธ€ ์นด๋“œ ๊ธฐ๋ณธ ui ๊ตฌํ˜„

* FE-58 ๐Ÿ’„ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ ์šฉ

* FE-58 ๐Ÿ”ฅ ๋Œ“๊ธ€ ์นด๋“œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-58 ๐Ÿ‘„ ๋Œ“๊ธ€ ์นด๋“œ ๊ด€๋ จ ์ธํ„ฐํŽ˜์ด์Šค, ์Šคํƒ€์ผ ๋ถ„๋ฆฌ

* FE-60 โœจ 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 ๐Ÿ’„ ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 โ™ป๏ธ ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* FE-61 ๐Ÿ”จ eslint ๊ทœ์น™ ์ˆ˜์ •

* FE-61 ๐Ÿ”ฅ InteractiveEmotionIconCard ์‚ญ์ œ

๋‹จ์ˆœ ๋ž˜ํ•‘ ๊ธฐ๋Šฅ๋ฐ–์— ์—†๋Š” ์ปดํฌ๋„ŒํŠธ ์‚ญ์ œ / emotionselector์—์„œ emotioniconcard๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋„๋ก ์ˆ˜์ •

* FE-61 ๐Ÿ”จ EpigramCard ์‚ฌ์ด์ฆˆ ์žฌ์ •์˜

base -> xs๋กœ ๋ณ€๊ฒฝ

* FE-61 ๐Ÿ“ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ํ…Œ์ŠคํŠธ ํ…์ŠคํŠธ ์ฃผ์„ ์ถ”๊ฐ€

* FE-61 ๐Ÿ”จ CommentCard ํƒ€์ž… ๋‚ด๋ถ€ ์ •์˜

* FE-61 ๐Ÿšš ๊ฐ์ • ์นด๋“œ ํด๋” ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-61 ๐Ÿ“ ๊ฐ์ • ์นด๋“œ, ๊ฐ์ • ์…€๋ ‰ํ„ฐ ์ฃผ์„ ์ถ”๊ฐ€

* FE-61 ๐Ÿ”ฅ ๋Œ“๊ธ€ ์นด๋“œ ๋””ํดํŠธ ํ”„๋กญ ์‚ญ์ œ

* FE-62 โœจfix:  ์ฃผ์„ ์ˆ˜์ • ๋ฐ ํƒ€์ž… ์ˆ˜์ • (#27)

* โœจ ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* โœจ ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* โœจ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* โœจ useSignin mutation hook ์ƒ์„ฑ

* โšก useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* ๐Ÿ’„ ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ถ”๊ฐ€

* ๐Ÿ’„ ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๋กœ๊ณ  ์ถ”๊ฐ€

* ๐Ÿ’„ ํšŒ์›๊ฐ€์ž… ui ์ถ”๊ฐ€

* โœจ ํšŒ์›๊ฐ€์ž… ์Šคํ‚ค๋งˆ ์ •์˜

* โž• ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€์— ์Šคํ‚ค๋งˆ ์ ์šฉ

* ๐Ÿ’„ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ๋œฐ ๋•Œ ๋ผ๋ฒจ, ์ธํ’‹๋„ ๊ฐ™์€ ์—๋Ÿฌ ์ƒ‰๊น” ์ถ”๊ฐ€

* ๐Ÿ“ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ†ตํ•œ ๋ฒ„ํŠผ์˜ ๋น„ํ™œ์„ฑํ™” ์ฒ˜๋ฆฌ

* ๐Ÿ“ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ๋”ฐ๋ฅธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒ ์ฒ˜๋ฆฌ

* ๐Ÿ”ฅ AuthLayout ์‚ญ์ œ

* ๐ŸŽจ ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๋ธŒ๋ผ์šฐ์ € ํ™•๋Œ€์‹œ ui ๊นจ์ง ์ˆ˜์ •

* ๐Ÿšš ์ •๊ทœํ‘œํ˜„์‹ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* ๐Ÿ”ฅ AuthLayout ์‚ญ์ œ

* ๐ŸŽจ onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* โ™ป๏ธ ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* โ™ป๏ธ postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* ๐Ÿ”ฅ useSignin hook ์‚ญ์ œ

* ๐Ÿšš useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* โœจ Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* โœจ toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* โœจ ํšŒ์›๊ฐ€์ž… ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* โœจ ํšŒ์›๊ฐ€์ž… api ์ƒ์„ฑ

* โœจ useRegisterMutation hook ์ƒ์„ฑ

* โšก ํšŒ์›๊ฐ€์ž… ํผ์— mutaion hook ์ ์šฉ

* โœจ Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* โœจ toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* โšก isAxiosError๋กœ ๋ณ€๊ฒฝ

* FE-29 ๐Ÿ”€ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* โž• ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 โœจ react hook form, zod ์ถ”๊ฐ€

* FE-60 ๐Ÿ’„ ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 โ™ป๏ธ ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* โœจ ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* โœจ ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* โœจ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* โœจ useSignin mutation hook ์ƒ์„ฑ

* โšก useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* ๐Ÿ”ฅ AuthLayout ์‚ญ์ œ

* ๐ŸŽจ onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* โ™ป๏ธ ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* โ™ป๏ธ postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* ๐Ÿ”ฅ useSignin hook ์‚ญ์ œ

* ๐Ÿšš useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* โœจ Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* โœจ toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* ๐Ÿ”€ ์ถฉ๋Œ ํ•ด๊ฒฐ

* ๐Ÿ› postSignup ํ•จ์ˆ˜ ์ถ”๊ฐ€

* ๐Ÿ› postSignin ๋‚ด๋ณด๋‚ด๋Š” ๋ฐฉ์‹ ์ˆ˜์ •

* ๐Ÿ”ง lint ์ˆ˜์ •

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

* โœจ 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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* โœจ ์นด์นด์˜คํ†ก ๋ฆฌ๋””๋ ‰ํŠธ uri ์„ค์ •

* โœจ useKakaoLogin mutation hook ์ƒ์„ฑ

* โšก ๋„ค์ด๋ฒ„ ๊ตฌ๊ธ€ ์นด์นด์˜ค ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๋งํฌ ์„ค์ •

* โ™ป๏ธ ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์ˆ˜์ •

* FE-51 ๐Ÿ”€ ๊ณต์šฉ 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 โœจ ๊ฐ์ •์ด๋ชจํ‹ฐ์ฝ˜ ์ €์žฅ ์Šคํ‚ค๋งˆ ์ •์˜

* FE-53 โœจ ์˜ค๋Š˜์˜ ๊ฐ์ • ์ €์žฅ api ์ƒ์„ฑ

* FE-53 โœจ getMe ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๋กœ๊ทธ์ธ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-53 โœจ ๊ฐ์ • ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜

* FE-53 โœจ ๊ฐ์ • ์ €์žฅ ํ›„ ํ† ์ŠคํŠธ ์•Œ๋ฆผ ํ‘œ์‹œ

* FE-53 โœจ ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ api ์ƒ์„ฑ

* FE-53 ๐Ÿ”จ ๊ฐ์ • ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜ ์ถ”๊ฐ€

+) post, get ํ•จ์ˆ˜ ๋‚ด๋ถ€๋กœ ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜ ์ด๋™

* FE-53 โœจ ์˜ค๋Š˜์˜ ๊ฐ์ • ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€ ์ •์˜

* FE-53 โœจ ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ ํ•จ์ˆ˜ ์ ์šฉ

* FE-53 ๐Ÿšš ์˜ค๋Š˜์˜ ๊ฐ์ • type ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-53 โœจ useMutation ํ›… ์‚ฌ์šฉ

* FE-53 ๐Ÿ“ EmotionSelector ์ฃผ์„ ์ถ”๊ฐ€

* FE-53 ๐Ÿ”ฅ api ํ•จ์ˆ˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ถ€๋ถ„ ์ œ๊ฑฐ

* FE-53 ๐Ÿ”จ useQuery๋ฅผ ์‚ฌ์šฉํ•ด ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ

๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ๋Š” useQuery๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฑฐ๋ผ ํ•จ

* FE-56 โœจ ๋Œ“๊ธ€ ์ˆ˜์ • API (#84)

* FE-29 ๐Ÿ”€ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* โž• ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 โœจ react hook form, zod ์ถ”๊ฐ€

* FE-60 ๐Ÿ’„ ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 โ™ป๏ธ ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* โœจ ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* โœจ ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* โœจ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* โœจ useSignin mutation hook ์ƒ์„ฑ

* โšก useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* ๐Ÿ”ฅ AuthLayout ์‚ญ์ œ

* ๐ŸŽจ onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* โ™ป๏ธ ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* โ™ป๏ธ postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* ๐Ÿ”ฅ useSignin hook ์‚ญ์ œ

* ๐Ÿšš useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* โœจ Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* โœจ 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]>

* FE-56 โœจ ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-57 โœจ ๋Œ“๊ธ€ ์‚ญ์ œ API (#88)

* FE-51 ๐Ÿ”€ ๊ณต์šฉ API ์ตœ์‹ ํ™” (#93)

* FE-29 ๐Ÿ”€ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* โž• ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 โœจ react hook form, zod ์ถ”๊ฐ€

* FE-60 ๐Ÿ’„ ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 โ™ป๏ธ ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* โœจ ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* โœจ ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* โœจ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* โœจ useSignin mutation hook ์ƒ์„ฑ

* โšก useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* ๐Ÿ”ฅ AuthLayout ์‚ญ์ œ

* ๐ŸŽจ onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* โ™ป๏ธ ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* โ™ป๏ธ postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* ๐Ÿ”ฅ useSignin hook ์‚ญ์ œ

* ๐Ÿšš useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* โœจ Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* โœจ 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-51 ๐Ÿ”€ ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>
* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* ๐Ÿ’„ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ shadcn ui ์ถ”๊ฐ€ (#7)

* ๐Ÿ’„ Feat: shadcn-ui init

* ๐Ÿ’„ 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 ๐ŸŽจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ํด๋” ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-48 โœจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ui ์ƒ์„ฑ

* FE-48 โœจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์ƒํƒœ์— ๋”ฐ๋ฅธ ํด๋ž˜์Šค ์„ค์ •

* FE-48 ๐Ÿ’„ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ui ์ˆ˜์ •

* FE-48 โœจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ํด๋ฆญ ์ด๋ฒคํŠธ ๊ตฌํ˜„

- EmotionIconCardContainer๋ฅผ ์‚ฌ์šฉํ•ด ์ƒํƒœ๊ด€๋ฆฌ์™€ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ (Clicked<->UnClicked)

* FE-48 ๐Ÿ“ ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„ ๋ณ€๊ฒฝ

๋ช…ํ™•ํ•œ ์˜๋ฏธ ์ „๋‹ฌ์„ ์œ„ํ•ด ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-48 โœจ ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์ƒํƒœ ๋ณ€ํ™” ๋™๊ธฐํ™” ๊ตฌ

๊ฐ์ • ์นด๋“œ๋ฅผ ํด๋ฆญํ•  ๋•Œ ์ƒํƒœ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ „ํ™˜๋˜๊ณ , ๋‹ค๋ฅธ ์นด๋“œ์˜ ์ƒํƒœ๋„ ๋™๊ธฐํ™”๋˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-48 โœจ EmotionSelector ์ปดํฌ๋„ŒํŠธ ๋™์  ํฌ๊ธฐ ๋ณ€๊ฒฝ ๊ตฌํ˜„

useMediaQuery ํ›… ์ƒ์„ฑ: ํ™”๋ฉด์˜ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋ฆฌ์Šค๋„ˆ ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐ

* FE-48 ๐Ÿ”ฅ ์ถœ๋ ฅ ํ™•์ธ์„ ์œ„ํ•œ ํ…Œ์ŠคํŠธ ์ปดํฌ๋„ŒํŠธ ์‚ญ์ œ

* FE-48 ๐Ÿ”จ EmotionTypes ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜

emotion ๊ด€๋ จ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ importํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ฒŒ ๊ตฌํ˜„

* โž• ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-59 โœจ ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ui ๊ตฌํ˜„

tailwind css๋ฅผ ํ™•์žฅํ•ด ์ค„๋ฌด๋Šฌ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€ ๊ตฌํ˜„

* FE-59 โœจ ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ๋ฐ˜์‘ํ˜„ ๋””์ž์ธ ๊ตฌํ˜„

* FE-59 ๐Ÿ’„ ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ๊ธ€์”จ์ฒด ์ ์šฉ

* FE-59 ๐Ÿ”ฅ ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-59 ๐Ÿ”ฅ ํ…Œ์ŠคํŠธ ํ”์  ์‚ญ์ œ

* FE-58 โœจ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ๋Œ“๊ธ€ ์นด๋“œ ๊ธฐ๋ณธ ui ๊ตฌํ˜„

* FE-58 ๐Ÿ’„ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ ์šฉ

* FE-58 ๐Ÿ”ฅ ๋Œ“๊ธ€ ์นด๋“œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-58 ๐Ÿ‘„ ๋Œ“๊ธ€ ์นด๋“œ ๊ด€๋ จ ์ธํ„ฐํŽ˜์ด์Šค, ์Šคํƒ€์ผ ๋ถ„๋ฆฌ

* FE-60 โœจ 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 ๐Ÿ’„ ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 โ™ป๏ธ ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* FE-61 ๐Ÿ”จ eslint ๊ทœ์น™ ์ˆ˜์ •

* FE-61 ๐Ÿ”ฅ InteractiveEmotionIconCard ์‚ญ์ œ

๋‹จ์ˆœ ๋ž˜ํ•‘ ๊ธฐ๋Šฅ๋ฐ–์— ์—†๋Š” ์ปดํฌ๋„ŒํŠธ ์‚ญ์ œ / emotionselector์—์„œ emotioniconcard๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋„๋ก ์ˆ˜์ •

* FE-61 ๐Ÿ”จ EpigramCard ์‚ฌ์ด์ฆˆ ์žฌ์ •์˜

base -> xs๋กœ ๋ณ€๊ฒฝ

* FE-61 ๐Ÿ“ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ํ…Œ์ŠคํŠธ ํ…์ŠคํŠธ ์ฃผ์„ ์ถ”๊ฐ€

* FE-61 ๐Ÿ”จ CommentCard ํƒ€์ž… ๋‚ด๋ถ€ ์ •์˜

* FE-61 ๐Ÿšš ๊ฐ์ • ์นด๋“œ ํด๋” ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-61 ๐Ÿ“ ๊ฐ์ • ์นด๋“œ, ๊ฐ์ • ์…€๋ ‰ํ„ฐ ์ฃผ์„ ์ถ”๊ฐ€

* FE-61 ๐Ÿ”ฅ ๋Œ“๊ธ€ ์นด๋“œ ๋””ํดํŠธ ํ”„๋กญ ์‚ญ์ œ

* FE-62 โœจfix:  ์ฃผ์„ ์ˆ˜์ • ๋ฐ ํƒ€์ž… ์ˆ˜์ • (#27)

* โœจ ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* โœจ ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* โœจ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* โœจ useSignin mutation hook ์ƒ์„ฑ

* โšก useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* ๐Ÿ’„ ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ถ”๊ฐ€

* ๐Ÿ’„ ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๋กœ๊ณ  ์ถ”๊ฐ€

* ๐Ÿ’„ ํšŒ์›๊ฐ€์ž… ui ์ถ”๊ฐ€

* โœจ ํšŒ์›๊ฐ€์ž… ์Šคํ‚ค๋งˆ ์ •์˜

* โž• ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€์— ์Šคํ‚ค๋งˆ ์ ์šฉ

* ๐Ÿ’„ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ๋œฐ ๋•Œ ๋ผ๋ฒจ, ์ธํ’‹๋„ ๊ฐ™์€ ์—๋Ÿฌ ์ƒ‰๊น” ์ถ”๊ฐ€

* ๐Ÿ“ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ†ตํ•œ ๋ฒ„ํŠผ์˜ ๋น„ํ™œ์„ฑํ™” ์ฒ˜๋ฆฌ

* ๐Ÿ“ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ๋”ฐ๋ฅธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒ ์ฒ˜๋ฆฌ

* ๐Ÿ”ฅ AuthLayout ์‚ญ์ œ

* ๐ŸŽจ ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๋ธŒ๋ผ์šฐ์ € ํ™•๋Œ€์‹œ ui ๊นจ์ง ์ˆ˜์ •

* ๐Ÿšš ์ •๊ทœํ‘œํ˜„์‹ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* ๐Ÿ”ฅ AuthLayout ์‚ญ์ œ

* ๐ŸŽจ onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* โ™ป๏ธ ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* โ™ป๏ธ postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* ๐Ÿ”ฅ useSignin hook ์‚ญ์ œ

* ๐Ÿšš useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* โœจ Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* โœจ toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* โœจ ํšŒ์›๊ฐ€์ž… ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* โœจ ํšŒ์›๊ฐ€์ž… api ์ƒ์„ฑ

* โœจ useRegisterMutation hook ์ƒ์„ฑ

* โšก ํšŒ์›๊ฐ€์ž… ํผ์— mutaion hook ์ ์šฉ

* โœจ Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* โœจ toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* โšก isAxiosError๋กœ ๋ณ€๊ฒฝ

* FE-29 ๐Ÿ”€ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* โž• ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 โœจ react hook form, zod ์ถ”๊ฐ€

* FE-60 ๐Ÿ’„ ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 โ™ป๏ธ ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* โœจ ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* โœจ ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* โœจ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* โœจ useSignin mutation hook ์ƒ์„ฑ

* โšก useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* ๐Ÿ”ฅ AuthLayout ์‚ญ์ œ

* ๐ŸŽจ onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* โ™ป๏ธ ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* โ™ป๏ธ postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* ๐Ÿ”ฅ useSignin hook ์‚ญ์ œ

* ๐Ÿšš useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* โœจ Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* โœจ toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* ๐Ÿ”€ ์ถฉ๋Œ ํ•ด๊ฒฐ

* ๐Ÿ› postSignup ํ•จ์ˆ˜ ์ถ”๊ฐ€

* ๐Ÿ› postSignin ๋‚ด๋ณด๋‚ด๋Š” ๋ฐฉ์‹ ์ˆ˜์ •

* ๐Ÿ”ง lint ์ˆ˜์ •

* โœจ 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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* โœจ ์นด์นด์˜คํ†ก ๋ฆฌ๋””๋ ‰ํŠธ uri ์„ค์ •

* โœจ useKakaoLogin mutation hook ์ƒ์„ฑ

* โšก ๋„ค์ด๋ฒ„ ๊ตฌ๊ธ€ ์นด์นด์˜ค ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๋งํฌ ์„ค์ •

* โ™ป๏ธ ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์ˆ˜์ •

* FE-51 ๐Ÿ”€ ๊ณต์šฉ 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 โœจ ๊ฐ์ •์ด๋ชจํ‹ฐ์ฝ˜ ์ €์žฅ ์Šคํ‚ค๋งˆ ์ •์˜

* FE-53 โœจ ์˜ค๋Š˜์˜ ๊ฐ์ • ์ €์žฅ api ์ƒ์„ฑ

* FE-53 โœจ getMe ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๋กœ๊ทธ์ธ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-53 โœจ ๊ฐ์ • ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜

* FE-53 โœจ ๊ฐ์ • ์ €์žฅ ํ›„ ํ† ์ŠคํŠธ ์•Œ๋ฆผ ํ‘œ์‹œ

* FE-53 โœจ ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ api ์ƒ์„ฑ

* FE-53 ๐Ÿ”จ ๊ฐ์ • ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜ ์ถ”๊ฐ€

+) post, get ํ•จ์ˆ˜ ๋‚ด๋ถ€๋กœ ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜ ์ด๋™

* FE-53 โœจ ์˜ค๋Š˜์˜ ๊ฐ์ • ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€ ์ •์˜

* FE-53 โœจ ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ ํ•จ์ˆ˜ ์ ์šฉ

* FE-53 ๐Ÿšš ์˜ค๋Š˜์˜ ๊ฐ์ • type ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-53 โœจ useMutation ํ›… ์‚ฌ์šฉ

* FE-53 ๐Ÿ“ EmotionSelector ์ฃผ์„ ์ถ”๊ฐ€

* FE-53 ๐Ÿ”ฅ api ํ•จ์ˆ˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ถ€๋ถ„ ์ œ๊ฑฐ

* FE-53 ๐Ÿ”จ useQuery๋ฅผ ์‚ฌ์šฉํ•ด ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ

๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ๋Š” useQuery๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฑฐ๋ผ ํ•จ

* FE-56 โœจ ๋Œ“๊ธ€ ์ˆ˜์ • API (#84)

* FE-29 ๐Ÿ”€ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* โž• ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 โœจ react hook form, zod ์ถ”๊ฐ€

* FE-60 ๐Ÿ’„ ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 โ™ป๏ธ ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* โœจ ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* โœจ ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* โœจ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* โœจ useSignin mutation hook ์ƒ์„ฑ

* โšก useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* ๐Ÿ”ฅ AuthLayout ์‚ญ์ œ

* ๐ŸŽจ onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* โ™ป๏ธ ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* โ™ป๏ธ postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* ๐Ÿ”ฅ useSignin hook ์‚ญ์ œ

* ๐Ÿšš useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* โœจ Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* โœจ 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]>

* FE-56 โœจ ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-57 โœจ ๋Œ“๊ธ€ ์‚ญ์ œ API (#88)

* FE-51 ๐Ÿ”€ ๊ณต์šฉ API ์ตœ์‹ ํ™” (#93)

* FE-29 ๐Ÿ”€ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* โž• ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* ๐Ÿ’„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 โœจ react hook form, zod ์ถ”๊ฐ€

* FE-60 ๐Ÿ’„ ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 โ™ป๏ธ ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* โœจ ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* โœจ ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* โœจ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* โœจ useSignin mutation hook ์ƒ์„ฑ

* โšก useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* ๐Ÿ”ฅ AuthLayout ์‚ญ์ œ

* ๐ŸŽจ onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* โ™ป๏ธ ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* โ™ป๏ธ postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* ๐Ÿ”ฅ useSignin hook ์‚ญ์ œ

* ๐Ÿšš useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* โœจ Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* โœจ 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-51 ๐Ÿ”€ ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>
* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

* FE-32 ๐Ÿ”€๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ ๋ฉ”์ธ ๋จธ์ง€ (#107)

* ๐Ÿ’„FE-33 ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ UI (#10)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๐Ÿ”€๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#110)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๊ฒ€์ƒ‰ํŽ˜์ด์ง€ ๋ฉ”์ธ ์ถฉ๋Œ ์ˆ˜์ • (#112)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[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: ๋งˆ์ดํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-27 :hammer: ์ถฉ๋Œ์˜ค๋ฅ˜ ์ˆ˜์ •

* FE-27 :hammer: ์ถฉ๋Œ๋‚ด์—ญ ์ˆ˜์ •

* FE-27 :twisted_rightwards_arrows: ์ถฉ๋Œ์˜ค๋ฅ˜ ์ˆ˜์ •

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>
Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>

* ๏ฟฝFE-27 :twisted_rightwards_arrows: ๋งˆ์ดํŽ˜์ด์ง€ ์ตœ์‹ ํ™” (#102)

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธโ€ฆ
* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

* FE-32 ๐Ÿ”€๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ ๋ฉ”์ธ ๋จธ์ง€ (#107)

* ๐Ÿ’„FE-33 ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ UI (#10)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๐Ÿ”€๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#110)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๊ฒ€์ƒ‰ํŽ˜์ด์ง€ ๋ฉ”์ธ ์ถฉ๋Œ ์ˆ˜์ • (#112)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[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: ๋งˆ์ดํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-27 :hammer: ์ถฉ๋Œ์˜ค๋ฅ˜ ์ˆ˜์ •

* FE-27 :hammer: ์ถฉ๋Œ๋‚ด์—ญ ์ˆ˜์ •

* FE-27 :twisted_rightwards_arrows: ์ถฉ๋Œ์˜ค๋ฅ˜ ์ˆ˜์ •

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>
Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>

* ๏ฟฝFE-27 :twisted_rightwards_arrows: ๋งˆ์ดํŽ˜์ด์ง€ ์ตœ์‹ ํ™” (#102)

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ โ€ฆ
@imsoohyeok imsoohyeok added Priority: High ๐Ÿ”ฅ ์šฐ์„ ์ˆœ์œ„ ๋†’์Œ Type: Merge ๐Ÿšš ๋จธ์ง€ labels Aug 3, 2024
@imsoohyeok imsoohyeok requested a review from a team August 3, 2024 23:26
@imsoohyeok imsoohyeok self-assigned this Aug 3, 2024
@imsoohyeok imsoohyeok closed this Aug 3, 2024
@imsoohyeok imsoohyeok reopened this Aug 3, 2024
* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

* merge epic/FE-32--search-page

* ๋นŒ๋“œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘
Copy link
Contributor

@JeonYumin94 JeonYumin94 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๐Ÿ‘ Good

์ˆ˜๊ณ ํ•˜์…จ์Šต๋‹ˆ๋‹ค!

@imsoohyeok imsoohyeok merged commit b3968fa into main Aug 4, 2024
1 check passed
jisurk added a commit that referenced this pull request Aug 5, 2024
* FE-32 ๐Ÿ”€ ๊ฒ€์ƒ‰ํŽ˜์ด์ง€ ์˜ค๋ฅ˜ ์ˆ˜์ • (#178)

* ๐Ÿ’„FE-33 ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ UI (#10)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๐Ÿ”€๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#110)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๊ฒ€์ƒ‰ํŽ˜์ด์ง€ ๋ฉ”์ธ ์ถฉ๋Œ ์ˆ˜์ • (#112)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#176)

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

* FE-32 ๐Ÿ”€๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ ๋ฉ”์ธ ๋จธ์ง€ (#107)

* ๐Ÿ’„FE-33 ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ UI (#10)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๐Ÿ”€๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#110)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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: AuthLayoโ€ฆ
jisurk added a commit that referenced this pull request Aug 5, 2024
* FE-54๐Ÿ› ๋Œ“๊ธ€ ๋ถˆ๋Ÿฌ์˜ค์ง€๋ชปํ•˜๋Š”  ๋ฌธ์ œ ํ•ด๊ฒฐ

* FE-54๐Ÿ›build error ํ•ด๊ฒฐ

* FE-54๐Ÿ’„ url๋งํฌ๋ฒ„ํŠผ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-32 ๐Ÿ”€ ๊ฒ€์ƒ‰ํŽ˜์ด์ง€ ์˜ค๋ฅ˜ ์ˆ˜์ • (#178)

* ๐Ÿ’„FE-33 ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ UI (#10)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๐Ÿ”€๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#110)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๊ฒ€์ƒ‰ํŽ˜์ด์ง€ ๋ฉ”์ธ ์ถฉ๋Œ ์ˆ˜์ • (#112)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#176)

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

* FE-32 ๐Ÿ”€๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ ๋ฉ”์ธ ๋จธ์ง€ (#107)

* ๐Ÿ’„FE-33 ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ UI (#10)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๐Ÿ”€๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#110)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์‚ญโ€ฆ
jisurk added a commit that referenced this pull request Aug 6, 2024
* FE-31 ์ƒ์„ธํŽ˜์ด์ง€ UI ์ œ์ž‘ (#12)

* FE-31๐Ÿ’„์ƒ์„ธํŽ˜์ด์ง€ ๊ธฐ๋ณธ UI ์ œ์ž‘

* FE-31โ™ป๏ธ textareaํƒœ๊ทธ Textarea์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-31๐Ÿ’„ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ถ”๊ฐ€

---------

Co-authored-by: Woojiseok <[email protected]>

* FE-43 โœจ ์ƒ์„ธํŽ˜์ด์ง€ ์—ํ”ผ๊ทธ๋žจ ์กฐํšŒ  (#18)

* FE-43โœจ ์ƒ์„ธํŽ˜์ด์ง€ Epigram API์—ฐ๋™

* FE-43โšก ๏ธaxios ์—๋Ÿฌ ํ•ธ๋“ค๋ง ์ถ”๊ฐ€

* FE-43๐Ÿ—๏ธ ์ƒ์„ธํŽ˜์ด์ง€ Layout ๊ตฌ์กฐ๊ฐœ์„ 

* FE-43๐Ÿ“ ์ฃผ์„ ์ถ”๊ฐ€

* FE-43๐Ÿ”ฅ ์‚ฌ์šฉ์•ˆํ•˜๋Š” ํŒŒ์ผ ์‚ญ์ œ

* FE-43โœ๏ธ ์˜คํƒ€ ์ˆ˜์ •

* FE-43 ๐Ÿ› id์—†์„๋•Œ useQuery์‹คํ–‰๋˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

* FE-43โ™ป๏ธ  interface->zod ๋ณ€๊ฒฝ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-43โœจ ์‚ฌ์šฉ์ž ID์— ๋”ฐ๋ฅธ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ํ‘œ์‹œ (#22)

* FE-43โœจ ์‚ฌ์šฉ์ž ID์— ๋”ฐ๋ฅธ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ํ‘œ์‹œ

* FE-43โœจ ์—ํ”ผ๊ทธ๋žจ ์ƒ์„ธํŽ˜์ด์ง€ ๋”๋ณด๊ธฐ ๋“œ๋กญ๋‹ค์šด ์ถ”๊ฐ€

* FE-43๐Ÿ’„ MoreOptionMenu ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-31 ์ƒ์„ธํŽ˜์ด์ง€ UI ์ œ์ž‘ (#12)

* FE-31๐Ÿ’„์ƒ์„ธํŽ˜์ด์ง€ ๊ธฐ๋ณธ UI ์ œ์ž‘

* FE-31โ™ป๏ธ textareaํƒœ๊ทธ Textarea์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-31๐Ÿ’„ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ถ”๊ฐ€

---------

Co-authored-by: Woojiseok <[email protected]>

* FE-43 โœจ ์ƒ์„ธํŽ˜์ด์ง€ ์—ํ”ผ๊ทธ๋žจ ์กฐํšŒ  (#18)

* FE-43โœจ ์ƒ์„ธํŽ˜์ด์ง€ Epigram API์—ฐ๋™

* FE-43โšก ๏ธaxios ์—๋Ÿฌ ํ•ธ๋“ค๋ง ์ถ”๊ฐ€

* FE-43๐Ÿ—๏ธ ์ƒ์„ธํŽ˜์ด์ง€ Layout ๊ตฌ์กฐ๊ฐœ์„ 

* FE-43๐Ÿ“ ์ฃผ์„ ์ถ”๊ฐ€

* FE-43๐Ÿ”ฅ ์‚ฌ์šฉ์•ˆํ•˜๋Š” ํŒŒ์ผ ์‚ญ์ œ

* FE-43โœ๏ธ ์˜คํƒ€ ์ˆ˜์ •

* FE-43 ๐Ÿ› id์—†์„๋•Œ useQuery์‹คํ–‰๋˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

* FE-43โ™ป๏ธ  interface->zod ๋ณ€๊ฒฝ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-43โœจ ์‚ฌ์šฉ์ž ID์— ๋”ฐ๋ฅธ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ํ‘œ์‹œ (#22)

* FE-43โœจ ์‚ฌ์šฉ์ž ID์— ๋”ฐ๋ฅธ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ํ‘œ์‹œ

* FE-43โœจ ์—ํ”ผ๊ทธ๋žจ ์ƒ์„ธํŽ˜์ด์ง€ ๋”๋ณด๊ธฐ ๋“œ๋กญ๋‹ค์šด ์ถ”๊ฐ€

* FE-43๐Ÿ’„ MoreOptionMenu ์Šคํƒ€์ผ ์ˆ˜์ •

* โœจ ์ƒ์„ธํŽ˜์ด์ง€ ๋Œ“๊ธ€ ์กฐํšŒ api์—ฐ๋™ (#38)

* FE-42๐Ÿ’„ EpigramComment์•ˆ์— CommentCard ์ถ”๊ฐ€

* FE-42โœจ ์ƒ์„ธํŽ˜์ด์ง€ ๋Œ“๊ธ€ ์กฐํšŒ api์—ฐ๋™

* FE-42โœจ dateUtilํ•จ์ˆ˜ ์ถ”๊ฐ€, ์ ์šฉ

* FE-42โœจ ๋Œ“๊ธ€์ž‘์„ฑ์ž๊ฐ€ ๋ณธ์ธ์ธ์ง€ ํŒ๋ณ„ํ•ด ์ˆ˜์ •,์‚ญ์ œ ํ‘œ์‹œ

* FE-42๐Ÿ”ฅ ์•ˆ์“ฐ๋Š” ํ•จ์ˆ˜ ์‚ญ์ œ

* FE-42๐Ÿ’„ EpigramComment ๋ฐฐ๊ฒฝ์ƒ‰ ์ˆ˜์ •

* FE-42โ™ป๏ธ CommetCard ๊ตฌ์กฐ ๊ฐœ์„ 

* FE-42๐Ÿ’„์ž‘์„ฑ๋œ ๋Œ“๊ธ€ ์—†์„๋•Œ UI ์ถ”๊ฐ€

* FE-42๐Ÿ› ๋Œ“๊ธ€์ˆ˜๋ฅผ  length->totalCount๋กœ ๋ณ€๊ฒฝ

* FE-42โ™ป๏ธ  useEpigramCommentHook ๋ถ„๋ฆฌ

* FE-42โœจ ๋Œ“๊ธ€ ๋ชฉ๋ก์— ๋ฌดํ•œ์Šคํฌ๋กค ์ ์šฉ

* FE-42๐Ÿ’ก ์ฃผ์„ ์ถ”๊ฐ€

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-76โœจ ๋Œ“๊ธ€ ์ž‘์„ฑ api ์—ฐ๋™ (#78)

* FE-76โ™ป๏ธ  ๋Œ“๊ธ€ textarea ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ

* FE-76๐Ÿ’„ switch ์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-76โœจ textarea focus out ๋ฒ„ํŠผ ์ถ”๊ฐ€

* FE-76โœจ postComment schema,interface ์ถ”๊ฐ€, ์ˆ˜์ •

* FE-76โœจ  ๋Œ“๊ธ€ ์ž‘์„ฑ api ์—ฐ๋™

* FE-76๐Ÿ› import error ํ•ด๊ฒฐ

* FE-76โœจ  switch๋กœ ๋Œ“๊ธ€ ๊ณต๊ฐœ,๋น„๊ณต๊ฐœ ์„ค์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-76โœจ ๋Œ“๊ธ€ ์ž‘์„ฑ ์‹œ image๋ฅผ ์œ ์ €๊ฐ€ ๋“ฑ๋กํ•œ image๋กœ ๋ณ€๊ฒฝ

* FE-76๐Ÿ› build error ํ•ด๊ฒฐ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-45โœจ ์—ํ”ผ๊ทธ๋žจ ์‚ญ์ œ api ์—ฐ๋™ (#80)

* FE-45โœจ ์—ํ”ผ๊ทธ๋žจ ์‚ญ์ œ api ์—ฐ๋™

* FE-45๐Ÿ’„ ์—ํ”ผ๊ทธ๋žจ ์‚ญ์ œ ๋ชจ๋‹ฌ ์ถ”๊ฐ€

* FE-45๐Ÿ’„ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ˆ˜์ •

* FE-45โ™ป๏ธ DeleteAlertModal ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ

* FE-45๐Ÿ› build error ํ•ด๊ฒฐ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-78โœจ๋Œ“๊ธ€ ์ˆ˜์ •,์‚ญ์ œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (#91)

* FE-78๐Ÿ’„ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ui์ˆ˜์ •

* FE-78โœจ ๋Œ“๊ธ€ ์‚ญ์ œ ํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-78โœจ๋Œ“๊ธ€ ์‚ญ์ œ ๋ฒ„ํŠผ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-78โœจ  ๋Œ“๊ธ€ ์ˆ˜์ • apiํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-78โœจ ๋Œ“๊ธ€ ์ˆ˜์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-78๐Ÿ“ ์ฃผ์„ ์ถ”๊ฐ€

* FE-78๐Ÿ’„ EpigramComment height์ˆ˜์ •

* FE-78๐Ÿ› build error ํ•ด๊ฒฐ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-44โœจ ์—ํ”ผ๊ทธ๋žจ ์ˆ˜์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (#97)

* FE-44๐Ÿšš ์ƒ์„ธํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-44โœจ  ์—ํ”ผ๊ทธ๋žจ ์ˆ˜์ • api ํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-44โœจ ์—ํ”ผ๊ทธ๋žจ ์ˆ˜์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-44โ™ป๏ธ ์ €์ž์„ ํƒ๊ด€๋ จ ํ•จ์ˆ˜ useAuthorSelectionํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-44๐Ÿ’„ EditEpigram,AddEpigram UI์ˆ˜์ •

* FE-44๐Ÿ› ์ถœ์ฒ˜ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-44โœจ ์ž‘์„ฑ์ž ๋ณธ์ธ์ด ์•„๋‹๋•Œ ์ˆ˜์ •ํŽ˜์ด์ง€ ์ ‘๊ทผ ์‹œ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-44๐Ÿ› ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฒ„๊ทธ ์ˆ˜์ •

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-41โœจ์ข‹์•„์š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (#103)

* FE-41โ™ป๏ธ  httpClien์—t interceoptor ์ถ”๊ฐ€

* FE-41โœจ  ์ข‹์•„์š” api ํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-41โœจ  ์ข‹์•„์š” ๊ธฐ๋Šฅ Layout์— ์ ์šฉ

* FE-41โœจ Url Link๋ฒ„ํŠผ ์ƒ์„ฑ

* FE-41๐Ÿ’„์ข‹์•„์š”,link๋ฒ„ํŠผ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-41๐Ÿ› import ์—๋Ÿฌ ํ•ด๊ฒฐ

* FE-41โ™ป๏ธ ๊ธฐ์กดheader-> Header์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-54๐Ÿ› ์˜คํƒ€ ์ˆ˜์ •

* build error ํ•ด๊ฒฐ

* FE-54๐Ÿ› build errorํ•ด๊ฒฐ

* Fe-54โ™ป๏ธ์ƒ์„ธํŽ˜์ด์ง€ ๋ฆฌํŒฉํ† ๋ง (#131)

* FE-54๐Ÿšš ์ƒ์„ธํŽ˜์ด์ง€,์ˆ˜์ •ํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ๋ณ€๊ฒฝ

* FE-54โ™ป๏ธ  ์ƒ์„ธํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” url ์ˆ˜์ •

* FE-54๐Ÿšš ์ž‘์„ฑํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ์ƒ์„ฑ

* FE-54โ™ป๏ธ์ƒ์„ธํŽ˜์ด์ง€ ๊ฐœ์„ ์‚ฌํ•ญ ์ ์šฉ  (#146)

* FE-54๐Ÿšš ์ƒ์„ธํŽ˜์ด์ง€,์ˆ˜์ •ํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ๋ณ€๊ฒฝ

* FE-54โ™ป๏ธ  ์ƒ์„ธํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” url ์ˆ˜์ •

* FE-54๐Ÿšš ์ž‘์„ฑํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ์ƒ์„ฑ

* FE-54๐Ÿ’„ Switch์ปดํฌ๋„ŒํŠธ ๋ฐฐ๊ฒฝ์ƒ‰ ๋ณ€๊ฒฝ

* FE-54๐Ÿ’„ ๋Œ“๊ธ€ ์—†์„๋•Œ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-54๐Ÿšš useAddEpigram ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-54๐Ÿ’„ ๋Œ“๊ธ€ ๊ณต๊ฐœ,๋น„๊ณต๊ฐœ ์•„์ด์ฝ˜ ์ถ”๊ฐ€

* FE-54๐Ÿ› build error ํ•ด๊ฒฐ

* FE-54โœจ ๋Œ“๊ธ€ ์ˆ˜์ • ๋กœ์ง ๋ณ€๊ฒฝ (#163)

* FE-54โœจ ๋Œ“๊ธ€ ์ˆ˜์ • ๋กœ์ง ๋ณ€๊ฒฝ

* FE-54โœจ CommentTextarea Enter key๋กœ ํผ ์ œ์ถœ ํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-54๐Ÿ’„ CommentItem height์ˆ˜์ •

* FE-54๐Ÿ’„๋Œ“๊ธ€ height ์กฐ์ •

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-54โ™ป๏ธ ์ข‹์•„์š” ๊ธฐ๋Šฅ ๋ฆฌํŒฉํ† ๋ง, Query Key ๋ถ„๋ฆฌ (#169)

* FE-54๐Ÿšš ์ƒ์„ธํŽ˜์ด์ง€,์ˆ˜์ •ํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ๋ณ€๊ฒฝ

* FE-54โ™ป๏ธ  ์ƒ์„ธํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” url ์ˆ˜์ •

* FE-54๐Ÿšš ์ž‘์„ฑํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ์ƒ์„ฑ

* FE-54๐Ÿ’„ Switch์ปดํฌ๋„ŒํŠธ ๋ฐฐ๊ฒฝ์ƒ‰ ๋ณ€๊ฒฝ

* FE-54๐Ÿ’„ ๋Œ“๊ธ€ ์—†์„๋•Œ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-54๐Ÿšš useAddEpigram ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-54๐Ÿ’„ ๋Œ“๊ธ€ ๊ณต๊ฐœ,๋น„๊ณต๊ฐœ ์•„์ด์ฝ˜ ์ถ”๊ฐ€

* FE-54๐Ÿ› build error ํ•ด๊ฒฐ

* FE-54โ™ป๏ธ  ์ข‹์•„์š”๊ธฐ๋Šฅ Optimistic Update์ ์šฉ

* FE-54๐Ÿ’„ ์ข‹์•„์š” ์ƒํƒœ์— ๋”ฐ๋ฅธ ์ด๋ฏธ์ง€ ๋ณ€๊ฒฝ

* FE-54๐Ÿ’„๋Œ“๊ธ€ ์ˆ˜์ •์‹œ  ์Šคํƒ€์ผ ๋ณ€๊ฒฝ

* FE-54โ™ป๏ธ  ๋Œ“๊ธ€์กฐํšŒ query Key ๋ถ„๋ฆฌ

* FE-54๐Ÿ› ๋Œ“๊ธ€ ๋ถˆ๋Ÿฌ์˜ค์ง€๋ชปํ•˜๋Š”  ๋ฌธ์ œ ํ•ด๊ฒฐ (#186)

* FE-54๐Ÿ› ๋Œ“๊ธ€ ๋ถˆ๋Ÿฌ์˜ค์ง€๋ชปํ•˜๋Š”  ๋ฌธ์ œ ํ•ด๊ฒฐ

* FE-54๐Ÿ›build error ํ•ด๊ฒฐ

* FE-54๐Ÿ’„ url๋งํฌ๋ฒ„ํŠผ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-54๐Ÿ›build error ํ•ด๊ฒฐ (#193)

* FE-54๐Ÿ› ๋Œ“๊ธ€ ๋ถˆ๋Ÿฌ์˜ค์ง€๋ชปํ•˜๋Š”  ๋ฌธ์ œ ํ•ด๊ฒฐ

* FE-54๐Ÿ›build error ํ•ด๊ฒฐ

* FE-54๐Ÿ’„ url๋งํฌ๋ฒ„ํŠผ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-54๐Ÿ”€ ๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#202)

* FE-32 ๐Ÿ”€ ๊ฒ€์ƒ‰ํŽ˜์ด์ง€ ์˜ค๋ฅ˜ ์ˆ˜์ • (#178)

* ๐Ÿ’„FE-33 ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ UI (#10)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๐Ÿ”€๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#110)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๊ฒ€์ƒ‰ํŽ˜์ด์ง€ ๋ฉ”์ธ ์ถฉ๋Œ ์ˆ˜์ • (#112)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#176)

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

* FE-32 ๐Ÿ”€๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ ๋ฉ”์ธ ๋จธ์ง€ (#107)

* ๐Ÿ’„FE-33 ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ UI (#10)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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๐Ÿ”ฅ ํ…Œ์ŠคํŠธ์šฉ ์ƒ์„ธํŽ˜์ด์ง€โ€ฆ
jisurk added a commit that referenced this pull request Aug 6, 2024
* FE-32 ๐Ÿ”€ ๊ฒ€์ƒ‰ํŽ˜์ด์ง€ ์˜ค๋ฅ˜ ์ˆ˜์ • (#178)

* ๐Ÿ’„FE-33 ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ UI (#10)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๐Ÿ”€๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#110)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๊ฒ€์ƒ‰ํŽ˜์ด์ง€ ๋ฉ”์ธ ์ถฉ๋Œ ์ˆ˜์ • (#112)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#176)

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

* FE-32 ๐Ÿ”€๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ ๋ฉ”์ธ ๋จธ์ง€ (#107)

* ๐Ÿ’„FE-33 ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ UI (#10)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๐Ÿ”€๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#110)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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: AuthLayoโ€ฆ
jisurk added a commit that referenced this pull request Aug 7, 2024
* FE-32 ๐Ÿ”€ ๊ฒ€์ƒ‰ํŽ˜์ด์ง€ ์˜ค๋ฅ˜ ์ˆ˜์ • (#178)

* ๐Ÿ’„FE-33 ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ UI (#10)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๐Ÿ”€๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#110)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๊ฒ€์ƒ‰ํŽ˜์ด์ง€ ๋ฉ”์ธ ์ถฉ๋Œ ์ˆ˜์ • (#112)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#176)

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

* FE-32 ๐Ÿ”€๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ ๋ฉ”์ธ ๋จธ์ง€ (#107)

* ๐Ÿ’„FE-33 ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ UI (#10)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๐Ÿ”€๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#110)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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: AuthLayoโ€ฆ
jisurk added a commit that referenced this pull request Aug 7, 2024
* FE-31 ์ƒ์„ธํŽ˜์ด์ง€ UI ์ œ์ž‘ (#12)

* FE-31๐Ÿ’„์ƒ์„ธํŽ˜์ด์ง€ ๊ธฐ๋ณธ UI ์ œ์ž‘

* FE-31โ™ป๏ธ textareaํƒœ๊ทธ Textarea์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-31๐Ÿ’„ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ถ”๊ฐ€

---------

Co-authored-by: Woojiseok <[email protected]>

* FE-43 โœจ ์ƒ์„ธํŽ˜์ด์ง€ ์—ํ”ผ๊ทธ๋žจ ์กฐํšŒ  (#18)

* FE-43โœจ ์ƒ์„ธํŽ˜์ด์ง€ Epigram API์—ฐ๋™

* FE-43โšก ๏ธaxios ์—๋Ÿฌ ํ•ธ๋“ค๋ง ์ถ”๊ฐ€

* FE-43๐Ÿ—๏ธ ์ƒ์„ธํŽ˜์ด์ง€ Layout ๊ตฌ์กฐ๊ฐœ์„ 

* FE-43๐Ÿ“ ์ฃผ์„ ์ถ”๊ฐ€

* FE-43๐Ÿ”ฅ ์‚ฌ์šฉ์•ˆํ•˜๋Š” ํŒŒ์ผ ์‚ญ์ œ

* FE-43โœ๏ธ ์˜คํƒ€ ์ˆ˜์ •

* FE-43 ๐Ÿ› id์—†์„๋•Œ useQuery์‹คํ–‰๋˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

* FE-43โ™ป๏ธ  interface->zod ๋ณ€๊ฒฝ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-43โœจ ์‚ฌ์šฉ์ž ID์— ๋”ฐ๋ฅธ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ํ‘œ์‹œ (#22)

* FE-43โœจ ์‚ฌ์šฉ์ž ID์— ๋”ฐ๋ฅธ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ํ‘œ์‹œ

* FE-43โœจ ์—ํ”ผ๊ทธ๋žจ ์ƒ์„ธํŽ˜์ด์ง€ ๋”๋ณด๊ธฐ ๋“œ๋กญ๋‹ค์šด ์ถ”๊ฐ€

* FE-43๐Ÿ’„ MoreOptionMenu ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-31 ์ƒ์„ธํŽ˜์ด์ง€ UI ์ œ์ž‘ (#12)

* FE-31๐Ÿ’„์ƒ์„ธํŽ˜์ด์ง€ ๊ธฐ๋ณธ UI ์ œ์ž‘

* FE-31โ™ป๏ธ textareaํƒœ๊ทธ Textarea์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-31๐Ÿ’„ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ถ”๊ฐ€

---------

Co-authored-by: Woojiseok <[email protected]>

* FE-43 โœจ ์ƒ์„ธํŽ˜์ด์ง€ ์—ํ”ผ๊ทธ๋žจ ์กฐํšŒ  (#18)

* FE-43โœจ ์ƒ์„ธํŽ˜์ด์ง€ Epigram API์—ฐ๋™

* FE-43โšก ๏ธaxios ์—๋Ÿฌ ํ•ธ๋“ค๋ง ์ถ”๊ฐ€

* FE-43๐Ÿ—๏ธ ์ƒ์„ธํŽ˜์ด์ง€ Layout ๊ตฌ์กฐ๊ฐœ์„ 

* FE-43๐Ÿ“ ์ฃผ์„ ์ถ”๊ฐ€

* FE-43๐Ÿ”ฅ ์‚ฌ์šฉ์•ˆํ•˜๋Š” ํŒŒ์ผ ์‚ญ์ œ

* FE-43โœ๏ธ ์˜คํƒ€ ์ˆ˜์ •

* FE-43 ๐Ÿ› id์—†์„๋•Œ useQuery์‹คํ–‰๋˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

* FE-43โ™ป๏ธ  interface->zod ๋ณ€๊ฒฝ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-43โœจ ์‚ฌ์šฉ์ž ID์— ๋”ฐ๋ฅธ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ํ‘œ์‹œ (#22)

* FE-43โœจ ์‚ฌ์šฉ์ž ID์— ๋”ฐ๋ฅธ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ํ‘œ์‹œ

* FE-43โœจ ์—ํ”ผ๊ทธ๋žจ ์ƒ์„ธํŽ˜์ด์ง€ ๋”๋ณด๊ธฐ ๋“œ๋กญ๋‹ค์šด ์ถ”๊ฐ€

* FE-43๐Ÿ’„ MoreOptionMenu ์Šคํƒ€์ผ ์ˆ˜์ •

* โœจ ์ƒ์„ธํŽ˜์ด์ง€ ๋Œ“๊ธ€ ์กฐํšŒ api์—ฐ๋™ (#38)

* FE-42๐Ÿ’„ EpigramComment์•ˆ์— CommentCard ์ถ”๊ฐ€

* FE-42โœจ ์ƒ์„ธํŽ˜์ด์ง€ ๋Œ“๊ธ€ ์กฐํšŒ api์—ฐ๋™

* FE-42โœจ dateUtilํ•จ์ˆ˜ ์ถ”๊ฐ€, ์ ์šฉ

* FE-42โœจ ๋Œ“๊ธ€์ž‘์„ฑ์ž๊ฐ€ ๋ณธ์ธ์ธ์ง€ ํŒ๋ณ„ํ•ด ์ˆ˜์ •,์‚ญ์ œ ํ‘œ์‹œ

* FE-42๐Ÿ”ฅ ์•ˆ์“ฐ๋Š” ํ•จ์ˆ˜ ์‚ญ์ œ

* FE-42๐Ÿ’„ EpigramComment ๋ฐฐ๊ฒฝ์ƒ‰ ์ˆ˜์ •

* FE-42โ™ป๏ธ CommetCard ๊ตฌ์กฐ ๊ฐœ์„ 

* FE-42๐Ÿ’„์ž‘์„ฑ๋œ ๋Œ“๊ธ€ ์—†์„๋•Œ UI ์ถ”๊ฐ€

* FE-42๐Ÿ› ๋Œ“๊ธ€์ˆ˜๋ฅผ  length->totalCount๋กœ ๋ณ€๊ฒฝ

* FE-42โ™ป๏ธ  useEpigramCommentHook ๋ถ„๋ฆฌ

* FE-42โœจ ๋Œ“๊ธ€ ๋ชฉ๋ก์— ๋ฌดํ•œ์Šคํฌ๋กค ์ ์šฉ

* FE-42๐Ÿ’ก ์ฃผ์„ ์ถ”๊ฐ€

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-76โœจ ๋Œ“๊ธ€ ์ž‘์„ฑ api ์—ฐ๋™ (#78)

* FE-76โ™ป๏ธ  ๋Œ“๊ธ€ textarea ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ

* FE-76๐Ÿ’„ switch ์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-76โœจ textarea focus out ๋ฒ„ํŠผ ์ถ”๊ฐ€

* FE-76โœจ postComment schema,interface ์ถ”๊ฐ€, ์ˆ˜์ •

* FE-76โœจ  ๋Œ“๊ธ€ ์ž‘์„ฑ api ์—ฐ๋™

* FE-76๐Ÿ› import error ํ•ด๊ฒฐ

* FE-76โœจ  switch๋กœ ๋Œ“๊ธ€ ๊ณต๊ฐœ,๋น„๊ณต๊ฐœ ์„ค์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-76โœจ ๋Œ“๊ธ€ ์ž‘์„ฑ ์‹œ image๋ฅผ ์œ ์ €๊ฐ€ ๋“ฑ๋กํ•œ image๋กœ ๋ณ€๊ฒฝ

* FE-76๐Ÿ› build error ํ•ด๊ฒฐ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-45โœจ ์—ํ”ผ๊ทธ๋žจ ์‚ญ์ œ api ์—ฐ๋™ (#80)

* FE-45โœจ ์—ํ”ผ๊ทธ๋žจ ์‚ญ์ œ api ์—ฐ๋™

* FE-45๐Ÿ’„ ์—ํ”ผ๊ทธ๋žจ ์‚ญ์ œ ๋ชจ๋‹ฌ ์ถ”๊ฐ€

* FE-45๐Ÿ’„ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ˆ˜์ •

* FE-45โ™ป๏ธ DeleteAlertModal ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ

* FE-45๐Ÿ› build error ํ•ด๊ฒฐ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-78โœจ๋Œ“๊ธ€ ์ˆ˜์ •,์‚ญ์ œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (#91)

* FE-78๐Ÿ’„ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ui์ˆ˜์ •

* FE-78โœจ ๋Œ“๊ธ€ ์‚ญ์ œ ํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-78โœจ๋Œ“๊ธ€ ์‚ญ์ œ ๋ฒ„ํŠผ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-78โœจ  ๋Œ“๊ธ€ ์ˆ˜์ • apiํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-78โœจ ๋Œ“๊ธ€ ์ˆ˜์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-78๐Ÿ“ ์ฃผ์„ ์ถ”๊ฐ€

* FE-78๐Ÿ’„ EpigramComment height์ˆ˜์ •

* FE-78๐Ÿ› build error ํ•ด๊ฒฐ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-44โœจ ์—ํ”ผ๊ทธ๋žจ ์ˆ˜์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (#97)

* FE-44๐Ÿšš ์ƒ์„ธํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-44โœจ  ์—ํ”ผ๊ทธ๋žจ ์ˆ˜์ • api ํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-44โœจ ์—ํ”ผ๊ทธ๋žจ ์ˆ˜์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-44โ™ป๏ธ ์ €์ž์„ ํƒ๊ด€๋ จ ํ•จ์ˆ˜ useAuthorSelectionํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-44๐Ÿ’„ EditEpigram,AddEpigram UI์ˆ˜์ •

* FE-44๐Ÿ› ์ถœ์ฒ˜ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-44โœจ ์ž‘์„ฑ์ž ๋ณธ์ธ์ด ์•„๋‹๋•Œ ์ˆ˜์ •ํŽ˜์ด์ง€ ์ ‘๊ทผ ์‹œ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-44๐Ÿ› ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฒ„๊ทธ ์ˆ˜์ •

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-41โœจ์ข‹์•„์š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (#103)

* FE-41โ™ป๏ธ  httpClien์—t interceoptor ์ถ”๊ฐ€

* FE-41โœจ  ์ข‹์•„์š” api ํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-41โœจ  ์ข‹์•„์š” ๊ธฐ๋Šฅ Layout์— ์ ์šฉ

* FE-41โœจ Url Link๋ฒ„ํŠผ ์ƒ์„ฑ

* FE-41๐Ÿ’„์ข‹์•„์š”,link๋ฒ„ํŠผ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-41๐Ÿ› import ์—๋Ÿฌ ํ•ด๊ฒฐ

* FE-41โ™ป๏ธ ๊ธฐ์กดheader-> Header์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-54๐Ÿ› ์˜คํƒ€ ์ˆ˜์ •

* build error ํ•ด๊ฒฐ

* FE-54๐Ÿ› build errorํ•ด๊ฒฐ

* Fe-54โ™ป๏ธ์ƒ์„ธํŽ˜์ด์ง€ ๋ฆฌํŒฉํ† ๋ง (#131)

* FE-54๐Ÿšš ์ƒ์„ธํŽ˜์ด์ง€,์ˆ˜์ •ํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ๋ณ€๊ฒฝ

* FE-54โ™ป๏ธ  ์ƒ์„ธํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” url ์ˆ˜์ •

* FE-54๐Ÿšš ์ž‘์„ฑํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ์ƒ์„ฑ

* FE-54โ™ป๏ธ์ƒ์„ธํŽ˜์ด์ง€ ๊ฐœ์„ ์‚ฌํ•ญ ์ ์šฉ  (#146)

* FE-54๐Ÿšš ์ƒ์„ธํŽ˜์ด์ง€,์ˆ˜์ •ํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ๋ณ€๊ฒฝ

* FE-54โ™ป๏ธ  ์ƒ์„ธํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” url ์ˆ˜์ •

* FE-54๐Ÿšš ์ž‘์„ฑํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ์ƒ์„ฑ

* FE-54๐Ÿ’„ Switch์ปดํฌ๋„ŒํŠธ ๋ฐฐ๊ฒฝ์ƒ‰ ๋ณ€๊ฒฝ

* FE-54๐Ÿ’„ ๋Œ“๊ธ€ ์—†์„๋•Œ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-54๐Ÿšš useAddEpigram ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-54๐Ÿ’„ ๋Œ“๊ธ€ ๊ณต๊ฐœ,๋น„๊ณต๊ฐœ ์•„์ด์ฝ˜ ์ถ”๊ฐ€

* FE-54๐Ÿ› build error ํ•ด๊ฒฐ

* FE-54โœจ ๋Œ“๊ธ€ ์ˆ˜์ • ๋กœ์ง ๋ณ€๊ฒฝ (#163)

* FE-54โœจ ๋Œ“๊ธ€ ์ˆ˜์ • ๋กœ์ง ๋ณ€๊ฒฝ

* FE-54โœจ CommentTextarea Enter key๋กœ ํผ ์ œ์ถœ ํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-54๐Ÿ’„ CommentItem height์ˆ˜์ •

* FE-54๐Ÿ’„๋Œ“๊ธ€ height ์กฐ์ •

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-54โ™ป๏ธ ์ข‹์•„์š” ๊ธฐ๋Šฅ ๋ฆฌํŒฉํ† ๋ง, Query Key ๋ถ„๋ฆฌ (#169)

* FE-54๐Ÿšš ์ƒ์„ธํŽ˜์ด์ง€,์ˆ˜์ •ํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ๋ณ€๊ฒฝ

* FE-54โ™ป๏ธ  ์ƒ์„ธํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” url ์ˆ˜์ •

* FE-54๐Ÿšš ์ž‘์„ฑํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ์ƒ์„ฑ

* FE-54๐Ÿ’„ Switch์ปดํฌ๋„ŒํŠธ ๋ฐฐ๊ฒฝ์ƒ‰ ๋ณ€๊ฒฝ

* FE-54๐Ÿ’„ ๋Œ“๊ธ€ ์—†์„๋•Œ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-54๐Ÿšš useAddEpigram ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-54๐Ÿ’„ ๋Œ“๊ธ€ ๊ณต๊ฐœ,๋น„๊ณต๊ฐœ ์•„์ด์ฝ˜ ์ถ”๊ฐ€

* FE-54๐Ÿ› build error ํ•ด๊ฒฐ

* FE-54โ™ป๏ธ  ์ข‹์•„์š”๊ธฐ๋Šฅ Optimistic Update์ ์šฉ

* FE-54๐Ÿ’„ ์ข‹์•„์š” ์ƒํƒœ์— ๋”ฐ๋ฅธ ์ด๋ฏธ์ง€ ๋ณ€๊ฒฝ

* FE-54๐Ÿ’„๋Œ“๊ธ€ ์ˆ˜์ •์‹œ  ์Šคํƒ€์ผ ๋ณ€๊ฒฝ

* FE-54โ™ป๏ธ  ๋Œ“๊ธ€์กฐํšŒ query Key ๋ถ„๋ฆฌ

* FE-54๐Ÿ› ๋Œ“๊ธ€ ๋ถˆ๋Ÿฌ์˜ค์ง€๋ชปํ•˜๋Š”  ๋ฌธ์ œ ํ•ด๊ฒฐ (#186)

* FE-54๐Ÿ› ๋Œ“๊ธ€ ๋ถˆ๋Ÿฌ์˜ค์ง€๋ชปํ•˜๋Š”  ๋ฌธ์ œ ํ•ด๊ฒฐ

* FE-54๐Ÿ›build error ํ•ด๊ฒฐ

* FE-54๐Ÿ’„ url๋งํฌ๋ฒ„ํŠผ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-54๐Ÿ›build error ํ•ด๊ฒฐ (#193)

* FE-54๐Ÿ› ๋Œ“๊ธ€ ๋ถˆ๋Ÿฌ์˜ค์ง€๋ชปํ•˜๋Š”  ๋ฌธ์ œ ํ•ด๊ฒฐ

* FE-54๐Ÿ›build error ํ•ด๊ฒฐ

* FE-54๐Ÿ’„ url๋งํฌ๋ฒ„ํŠผ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-54๐Ÿ”€ ๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#202)

* FE-32 ๐Ÿ”€ ๊ฒ€์ƒ‰ํŽ˜์ด์ง€ ์˜ค๋ฅ˜ ์ˆ˜์ • (#178)

* ๐Ÿ’„FE-33 ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ UI (#10)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๐Ÿ”€๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#110)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๊ฒ€์ƒ‰ํŽ˜์ด์ง€ ๋ฉ”์ธ ์ถฉ๋Œ ์ˆ˜์ • (#112)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#176)

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

* FE-32 ๐Ÿ”€๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ ๋ฉ”์ธ ๋จธ์ง€ (#107)

* ๐Ÿ’„FE-33 ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ UI (#10)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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๐Ÿ”ฅ ํ…Œ์ŠคํŠธ์šฉ ์ƒ์„ธํŽ˜์ด์ง€ ์‚ญ์ œโ€ฆ
imsoohyeok added a commit that referenced this pull request Aug 9, 2024
* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

* FE-32 refactor: ์ €์ž ๊ฒ€์ƒ‰ ์˜ค๋ฅ˜ ์ˆ˜์ •

* FE-32 refactor: ํŠน์ • ๊ฒ€์ƒ‰์–ด๋งŒ ๊ฒ€์ƒ‰๋˜๋Š” ์˜ค๋ฅ˜ ์ˆ˜์ •

* ๋ฌดํ•œ ์Šคํฌ๋กค ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* ์ฃผ์„ ์ œ๊ฑฐ

* ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ํŒŒ์ผ ์‚ญ์ œ

* FE-54๐Ÿ”€ ์ƒ์„ธํŽ˜์ด์ง€ ๋ฆฌํŒฉํ† ๋ง main๋จธ์ง€ (#172)

* FE-31 ์ƒ์„ธํŽ˜์ด์ง€ UI ์ œ์ž‘ (#12)

* FE-31๐Ÿ’„์ƒ์„ธํŽ˜์ด์ง€ ๊ธฐ๋ณธ UI ์ œ์ž‘

* FE-31โ™ป๏ธ textareaํƒœ๊ทธ Textarea์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-31๐Ÿ’„ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ถ”๊ฐ€

---------

Co-authored-by: Woojiseok <[email protected]>

* FE-43 โœจ ์ƒ์„ธํŽ˜์ด์ง€ ์—ํ”ผ๊ทธ๋žจ ์กฐํšŒ  (#18)

* FE-43โœจ ์ƒ์„ธํŽ˜์ด์ง€ Epigram API์—ฐ๋™

* FE-43โšก ๏ธaxios ์—๋Ÿฌ ํ•ธ๋“ค๋ง ์ถ”๊ฐ€

* FE-43๐Ÿ—๏ธ ์ƒ์„ธํŽ˜์ด์ง€ Layout ๊ตฌ์กฐ๊ฐœ์„ 

* FE-43๐Ÿ“ ์ฃผ์„ ์ถ”๊ฐ€

* FE-43๐Ÿ”ฅ ์‚ฌ์šฉ์•ˆํ•˜๋Š” ํŒŒ์ผ ์‚ญ์ œ

* FE-43โœ๏ธ ์˜คํƒ€ ์ˆ˜์ •

* FE-43 ๐Ÿ› id์—†์„๋•Œ useQuery์‹คํ–‰๋˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

* FE-43โ™ป๏ธ  interface->zod ๋ณ€๊ฒฝ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-43โœจ ์‚ฌ์šฉ์ž ID์— ๋”ฐ๋ฅธ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ํ‘œ์‹œ (#22)

* FE-43โœจ ์‚ฌ์šฉ์ž ID์— ๋”ฐ๋ฅธ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ํ‘œ์‹œ

* FE-43โœจ ์—ํ”ผ๊ทธ๋žจ ์ƒ์„ธํŽ˜์ด์ง€ ๋”๋ณด๊ธฐ ๋“œ๋กญ๋‹ค์šด ์ถ”๊ฐ€

* FE-43๐Ÿ’„ MoreOptionMenu ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-31 ์ƒ์„ธํŽ˜์ด์ง€ UI ์ œ์ž‘ (#12)

* FE-31๐Ÿ’„์ƒ์„ธํŽ˜์ด์ง€ ๊ธฐ๋ณธ UI ์ œ์ž‘

* FE-31โ™ป๏ธ textareaํƒœ๊ทธ Textarea์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-31๐Ÿ’„ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ถ”๊ฐ€

---------

Co-authored-by: Woojiseok <[email protected]>

* FE-43 โœจ ์ƒ์„ธํŽ˜์ด์ง€ ์—ํ”ผ๊ทธ๋žจ ์กฐํšŒ  (#18)

* FE-43โœจ ์ƒ์„ธํŽ˜์ด์ง€ Epigram API์—ฐ๋™

* FE-43โšก ๏ธaxios ์—๋Ÿฌ ํ•ธ๋“ค๋ง ์ถ”๊ฐ€

* FE-43๐Ÿ—๏ธ ์ƒ์„ธํŽ˜์ด์ง€ Layout ๊ตฌ์กฐ๊ฐœ์„ 

* FE-43๐Ÿ“ ์ฃผ์„ ์ถ”๊ฐ€

* FE-43๐Ÿ”ฅ ์‚ฌ์šฉ์•ˆํ•˜๋Š” ํŒŒ์ผ ์‚ญ์ œ

* FE-43โœ๏ธ ์˜คํƒ€ ์ˆ˜์ •

* FE-43 ๐Ÿ› id์—†์„๋•Œ useQuery์‹คํ–‰๋˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

* FE-43โ™ป๏ธ  interface->zod ๋ณ€๊ฒฝ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-43โœจ ์‚ฌ์šฉ์ž ID์— ๋”ฐ๋ฅธ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ํ‘œ์‹œ (#22)

* FE-43โœจ ์‚ฌ์šฉ์ž ID์— ๋”ฐ๋ฅธ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ํ‘œ์‹œ

* FE-43โœจ ์—ํ”ผ๊ทธ๋žจ ์ƒ์„ธํŽ˜์ด์ง€ ๋”๋ณด๊ธฐ ๋“œ๋กญ๋‹ค์šด ์ถ”๊ฐ€

* FE-43๐Ÿ’„ MoreOptionMenu ์Šคํƒ€์ผ ์ˆ˜์ •

* โœจ ์ƒ์„ธํŽ˜์ด์ง€ ๋Œ“๊ธ€ ์กฐํšŒ api์—ฐ๋™ (#38)

* FE-42๐Ÿ’„ EpigramComment์•ˆ์— CommentCard ์ถ”๊ฐ€

* FE-42โœจ ์ƒ์„ธํŽ˜์ด์ง€ ๋Œ“๊ธ€ ์กฐํšŒ api์—ฐ๋™

* FE-42โœจ dateUtilํ•จ์ˆ˜ ์ถ”๊ฐ€, ์ ์šฉ

* FE-42โœจ ๋Œ“๊ธ€์ž‘์„ฑ์ž๊ฐ€ ๋ณธ์ธ์ธ์ง€ ํŒ๋ณ„ํ•ด ์ˆ˜์ •,์‚ญ์ œ ํ‘œ์‹œ

* FE-42๐Ÿ”ฅ ์•ˆ์“ฐ๋Š” ํ•จ์ˆ˜ ์‚ญ์ œ

* FE-42๐Ÿ’„ EpigramComment ๋ฐฐ๊ฒฝ์ƒ‰ ์ˆ˜์ •

* FE-42โ™ป๏ธ CommetCard ๊ตฌ์กฐ ๊ฐœ์„ 

* FE-42๐Ÿ’„์ž‘์„ฑ๋œ ๋Œ“๊ธ€ ์—†์„๋•Œ UI ์ถ”๊ฐ€

* FE-42๐Ÿ› ๋Œ“๊ธ€์ˆ˜๋ฅผ  length->totalCount๋กœ ๋ณ€๊ฒฝ

* FE-42โ™ป๏ธ  useEpigramCommentHook ๋ถ„๋ฆฌ

* FE-42โœจ ๋Œ“๊ธ€ ๋ชฉ๋ก์— ๋ฌดํ•œ์Šคํฌ๋กค ์ ์šฉ

* FE-42๐Ÿ’ก ์ฃผ์„ ์ถ”๊ฐ€

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-76โœจ ๋Œ“๊ธ€ ์ž‘์„ฑ api ์—ฐ๋™ (#78)

* FE-76โ™ป๏ธ  ๋Œ“๊ธ€ textarea ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ

* FE-76๐Ÿ’„ switch ์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-76โœจ textarea focus out ๋ฒ„ํŠผ ์ถ”๊ฐ€

* FE-76โœจ postComment schema,interface ์ถ”๊ฐ€, ์ˆ˜์ •

* FE-76โœจ  ๋Œ“๊ธ€ ์ž‘์„ฑ api ์—ฐ๋™

* FE-76๐Ÿ› import error ํ•ด๊ฒฐ

* FE-76โœจ  switch๋กœ ๋Œ“๊ธ€ ๊ณต๊ฐœ,๋น„๊ณต๊ฐœ ์„ค์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-76โœจ ๋Œ“๊ธ€ ์ž‘์„ฑ ์‹œ image๋ฅผ ์œ ์ €๊ฐ€ ๋“ฑ๋กํ•œ image๋กœ ๋ณ€๊ฒฝ

* FE-76๐Ÿ› build error ํ•ด๊ฒฐ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-45โœจ ์—ํ”ผ๊ทธ๋žจ ์‚ญ์ œ api ์—ฐ๋™ (#80)

* FE-45โœจ ์—ํ”ผ๊ทธ๋žจ ์‚ญ์ œ api ์—ฐ๋™

* FE-45๐Ÿ’„ ์—ํ”ผ๊ทธ๋žจ ์‚ญ์ œ ๋ชจ๋‹ฌ ์ถ”๊ฐ€

* FE-45๐Ÿ’„ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ˆ˜์ •

* FE-45โ™ป๏ธ DeleteAlertModal ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ

* FE-45๐Ÿ› build error ํ•ด๊ฒฐ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-78โœจ๋Œ“๊ธ€ ์ˆ˜์ •,์‚ญ์ œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (#91)

* FE-78๐Ÿ’„ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ui์ˆ˜์ •

* FE-78โœจ ๋Œ“๊ธ€ ์‚ญ์ œ ํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-78โœจ๋Œ“๊ธ€ ์‚ญ์ œ ๋ฒ„ํŠผ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-78โœจ  ๋Œ“๊ธ€ ์ˆ˜์ • apiํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-78โœจ ๋Œ“๊ธ€ ์ˆ˜์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-78๐Ÿ“ ์ฃผ์„ ์ถ”๊ฐ€

* FE-78๐Ÿ’„ EpigramComment height์ˆ˜์ •

* FE-78๐Ÿ› build error ํ•ด๊ฒฐ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-44โœจ ์—ํ”ผ๊ทธ๋žจ ์ˆ˜์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (#97)

* FE-44๐Ÿšš ์ƒ์„ธํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-44โœจ  ์—ํ”ผ๊ทธ๋žจ ์ˆ˜์ • api ํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-44โœจ ์—ํ”ผ๊ทธ๋žจ ์ˆ˜์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-44โ™ป๏ธ ์ €์ž์„ ํƒ๊ด€๋ จ ํ•จ์ˆ˜ useAuthorSelectionํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-44๐Ÿ’„ EditEpigram,AddEpigram UI์ˆ˜์ •

* FE-44๐Ÿ› ์ถœ์ฒ˜ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-44โœจ ์ž‘์„ฑ์ž ๋ณธ์ธ์ด ์•„๋‹๋•Œ ์ˆ˜์ •ํŽ˜์ด์ง€ ์ ‘๊ทผ ์‹œ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-44๐Ÿ› ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฒ„๊ทธ ์ˆ˜์ •

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-41โœจ์ข‹์•„์š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (#103)

* FE-41โ™ป๏ธ  httpClien์—t interceoptor ์ถ”๊ฐ€

* FE-41โœจ  ์ข‹์•„์š” api ํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-41โœจ  ์ข‹์•„์š” ๊ธฐ๋Šฅ Layout์— ์ ์šฉ

* FE-41โœจ Url Link๋ฒ„ํŠผ ์ƒ์„ฑ

* FE-41๐Ÿ’„์ข‹์•„์š”,link๋ฒ„ํŠผ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-41๐Ÿ› import ์—๋Ÿฌ ํ•ด๊ฒฐ

* FE-41โ™ป๏ธ ๊ธฐ์กดheader-> Header์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-54๐Ÿ› ์˜คํƒ€ ์ˆ˜์ •

* build error ํ•ด๊ฒฐ

* FE-54๐Ÿ› build errorํ•ด๊ฒฐ

* Fe-54โ™ป๏ธ์ƒ์„ธํŽ˜์ด์ง€ ๋ฆฌํŒฉํ† ๋ง (#131)

* FE-54๐Ÿšš ์ƒ์„ธํŽ˜์ด์ง€,์ˆ˜์ •ํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ๋ณ€๊ฒฝ

* FE-54โ™ป๏ธ  ์ƒ์„ธํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” url ์ˆ˜์ •

* FE-54๐Ÿšš ์ž‘์„ฑํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ์ƒ์„ฑ

* FE-54โ™ป๏ธ์ƒ์„ธํŽ˜์ด์ง€ ๊ฐœ์„ ์‚ฌํ•ญ ์ ์šฉ  (#146)

* FE-54๐Ÿšš ์ƒ์„ธํŽ˜์ด์ง€,์ˆ˜์ •ํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ๋ณ€๊ฒฝ

* FE-54โ™ป๏ธ  ์ƒ์„ธํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” url ์ˆ˜์ •

* FE-54๐Ÿšš ์ž‘์„ฑํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ์ƒ์„ฑ

* FE-54๐Ÿ’„ Switch์ปดํฌ๋„ŒํŠธ ๋ฐฐ๊ฒฝ์ƒ‰ ๋ณ€๊ฒฝ

* FE-54๐Ÿ’„ ๋Œ“๊ธ€ ์—†์„๋•Œ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-54๐Ÿšš useAddEpigram ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-54๐Ÿ’„ ๋Œ“๊ธ€ ๊ณต๊ฐœ,๋น„๊ณต๊ฐœ ์•„์ด์ฝ˜ ์ถ”๊ฐ€

* FE-54๐Ÿ› build error ํ•ด๊ฒฐ

* FE-54โœจ ๋Œ“๊ธ€ ์ˆ˜์ • ๋กœ์ง ๋ณ€๊ฒฝ (#163)

* FE-54โœจ ๋Œ“๊ธ€ ์ˆ˜์ • ๋กœ์ง ๋ณ€๊ฒฝ

* FE-54โœจ CommentTextarea Enter key๋กœ ํผ ์ œ์ถœ ํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-54๐Ÿ’„ CommentItem height์ˆ˜์ •

* FE-54๐Ÿ’„๋Œ“๊ธ€ height ์กฐ์ •

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-54โ™ป๏ธ ์ข‹์•„์š” ๊ธฐ๋Šฅ ๋ฆฌํŒฉํ† ๋ง, Query Key ๋ถ„๋ฆฌ (#169)

* FE-54๐Ÿšš ์ƒ์„ธํŽ˜์ด์ง€,์ˆ˜์ •ํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ๋ณ€๊ฒฝ

* FE-54โ™ป๏ธ  ์ƒ์„ธํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” url ์ˆ˜์ •

* FE-54๐Ÿšš ์ž‘์„ฑํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ์ƒ์„ฑ

* FE-54๐Ÿ’„ Switch์ปดํฌ๋„ŒํŠธ ๋ฐฐ๊ฒฝ์ƒ‰ ๋ณ€๊ฒฝ

* FE-54๐Ÿ’„ ๋Œ“๊ธ€ ์—†์„๋•Œ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-54๐Ÿšš useAddEpigram ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-54๐Ÿ’„ ๋Œ“๊ธ€ ๊ณต๊ฐœ,๋น„๊ณต๊ฐœ ์•„์ด์ฝ˜ ์ถ”๊ฐ€

* FE-54๐Ÿ› build error ํ•ด๊ฒฐ

* FE-54โ™ป๏ธ  ์ข‹์•„์š”๊ธฐ๋Šฅ Optimistic Update์ ์šฉ

* FE-54๐Ÿ’„ ์ข‹์•„์š” ์ƒํƒœ์— ๋”ฐ๋ฅธ ์ด๋ฏธ์ง€ ๋ณ€๊ฒฝ

* FE-54๐Ÿ’„๋Œ“๊ธ€ ์ˆ˜์ •์‹œ  ์Šคํƒ€์ผ ๋ณ€๊ฒฝ

* FE-54โ™ป๏ธ  ๋Œ“๊ธ€์กฐํšŒ query Key ๋ถ„๋ฆฌ

---------

Co-authored-by: Woojiseok <[email protected]>

* FE-32 ๐Ÿ”€ ๊ฒ€์ƒ‰ํŽ˜์ด์ง€ ์˜ค๋ฅ˜ ์ˆ˜์ • (#178)

* ๐Ÿ’„FE-33 ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ UI (#10)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๐Ÿ”€๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#110)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๊ฒ€์ƒ‰ํŽ˜์ด์ง€ ๋ฉ”์ธ ์ถฉ๋Œ ์ˆ˜์ • (#112)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------

Co-authored-by: imsoohyeok <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[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]>

* FE-32 ๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#176)

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

* FE-32 ๐Ÿ”€๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ ๋ฉ”์ธ ๋จธ์ง€ (#107)

* ๐Ÿ’„FE-33 ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ UI (#10)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: JeonYumin94 <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: NEWJIN <[email protected]>

* 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 ์ˆ˜์ •

---------

Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* :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์ฃผ์„ ์ถ”๊ฐ€

---------

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]>

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------

Co-authored-by: MOON <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* 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์ฃผ์„ ์ถ”๊ฐ€

---------

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โ™ป๏ธ  AddEpigraโ€ฆ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority: High ๐Ÿ”ฅ ์šฐ์„ ์ˆœ์œ„ ๋†’์Œ Type: Merge ๐Ÿšš ๋จธ์ง€
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants