Description ๐ ๋ฆฌํฉํ ๋ง ์ค๋ช
ํ์ฌ API ์๋ฌ ์ฒ๋ฆฌ(ํนํ ํ ์คํธ)๊ฐ ํ๋ฉด/์ปดํฌ๋ํธ๋ง๋ค ์ ๊ฐ๊ฐ์
๋๋ค.
ExpenseEditBottomSheet๋ useMutation({ onError }) ๋ด๋ถ์์ ํ ์คํธ๋ฅผ ๋์๋๋ค.
ExpenseRecordFunnel์ mutate(..., { onError }) ํธ์ถ๋ถ์์ ํ ์คํธ๋ฅผ ๋์๋๋ค.
์ด๋ก ์ธํด ๋ค์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋์ผํ ์คํจ ์ํฉ์ธ๋ฐ๋ ํ ์คํธ ๋ฌธ๊ตฌ/ํค์ด ์๋ก ๋ค๋ฅด๊ฒ ๋
ธ์ถ๋จ
์ด๋ค ๊ณณ์ console.error๋ฅผ ์ฐ๊ณ , ์ด๋ค ๊ณณ์ ์๋ต๋๋ ๋ฑ ๋๋ฒ๊น
๊ฒฝํ์ด ๋ถ๊ท ์ผ
์ถํ โ๊ณตํต ์๋ฌ ์ ์ฑ
(์: ์ธ์ฆ ๋ง๋ฃ ์ ๋ก๊ทธ์์/๋ฆฌ๋ค์ด๋ ํธ, ์๋ฒ ๋ฉ์์ง ์ฐ์ ๋
ธ์ถ, ํน์ ์ฝ๋๋ณ ๋ฉ์์ง ๋งคํ)โ์ ์ ์ฉํ๋ ค๋ฉด ์์ ํฌ์ธํธ๊ฐ ๋ถ์ฐ๋จ
๋ฐ๋ผ์ API ์๋ฌ โ ๊ณตํต ํธ๋ค๋ฌ(ํ ์คํธ ์ ์ฑ
) ๋ก ์๋ ด์์ผ, ์ฑ๊ณต/์คํจ ๋ฉ์์ง์ ์ฒ๋ฆฌ ํ๋ฆ์ ์ผ๊ด๋๊ฒ ์ ์งํ๋ ค ํฉ๋๋ค.
๐ฟ To-do (์์ฑ ์์)
๐ ETC
๋์ ์์
ExpenseEditBottomSheet: updateMutation, deleteMutation์ onError์์ ํ ์คํธ ์ฒ๋ฆฌ
ExpenseRecordFunnel: submitExpense(..., { onError })์์ ํ ์คํธ ์ฒ๋ฆฌ
๊ธฐ๋ํจ๊ณผ
์ฌ์ฉ์ ๊ฒฝํ(ํ ์คํธ ๋ฉ์์ง/ํค) ์ผ๊ด์ฑ ํ๋ณด
์๋ฌ ์ ์ฑ
๋ณ๊ฒฝ ์ ์์ ๋ฒ์ ์ถ์
์ค๋ณต ์ฝ๋ ์ ๊ฑฐ ๋ฐ ๋๋ฒ๊น
ํธ์ ํฅ์
Reactions are currently unavailable
You canโt perform that action at this time.
๐ ๋ฆฌํฉํ ๋ง ์ค๋ช
ํ์ฌ API ์๋ฌ ์ฒ๋ฆฌ(ํนํ ํ ์คํธ)๊ฐ ํ๋ฉด/์ปดํฌ๋ํธ๋ง๋ค ์ ๊ฐ๊ฐ์ ๋๋ค.
ExpenseEditBottomSheet๋useMutation({ onError })๋ด๋ถ์์ ํ ์คํธ๋ฅผ ๋์๋๋ค.ExpenseRecordFunnel์mutate(..., { onError })ํธ์ถ๋ถ์์ ํ ์คํธ๋ฅผ ๋์๋๋ค.์ด๋ก ์ธํด ๋ค์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
console.error๋ฅผ ์ฐ๊ณ , ์ด๋ค ๊ณณ์ ์๋ต๋๋ ๋ฑ ๋๋ฒ๊น ๊ฒฝํ์ด ๋ถ๊ท ์ผ๋ฐ๋ผ์ API ์๋ฌ โ ๊ณตํต ํธ๋ค๋ฌ(ํ ์คํธ ์ ์ฑ ) ๋ก ์๋ ด์์ผ, ์ฑ๊ณต/์คํจ ๋ฉ์์ง์ ์ฒ๋ฆฌ ํ๋ฆ์ ์ผ๊ด๋๊ฒ ์ ์งํ๋ ค ํฉ๋๋ค.
๐ฟ To-do (์์ฑ ์์)
๊ณตํต ์๋ฌ ํ ์คํธ ์ ์ฑ ์ ์
๊ณตํต ์ ํธ/ํ ์ถ๊ฐ
handleApiError(error, { fallbackMessage })๋๋useApiToast()ํํReact Query ์ ์ฉ ๋ฐฉ์ ํต์ผ
์ต์ ์์น๋ฅผ ํต์ผ:
mutationFn์ ์์ํ๊ฒ ๋๊ณ ,onSuccess/onError๋ mutation ์ ์ธ๋ถ์ ๊ณ ์ ๊ธฐ์กด ์ฝ๋ ๊ต์ฒด
ExpenseEditBottomSheet์ update/delete onError โ ๊ณตํต ํธ๋ค๋ฌ๋ก ์นํExpenseRecordFunnel์ submit onError โ ๊ณตํต ํธ๋ค๋ฌ๋ก ์นํ๋ฉ์์ง/๋ก๊น ์ผ์ํ
console.errorํฌ๋งท ํต์ผ(๊ธฐ๋ฅ๋ช prefix ๋ฑ) ๋๋ ๊ณตํต logger ์ฌ์ฉ๐ ETC
ExpenseEditBottomSheet:updateMutation,deleteMutation์onError์์ ํ ์คํธ ์ฒ๋ฆฌExpenseRecordFunnel:submitExpense(..., { onError })์์ ํ ์คํธ ์ฒ๋ฆฌ