Skip to content

Commit 4162d60

Browse files
authored
โ™ป๏ธ Unify error logics & co. (#109)
### ๐Ÿ“ ์ž‘์—… ๋‚ด์šฉ - apiClient๋ฅผ ์ œ์™ธํ•œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋กœ์ง์„ ๋ชจ๋‘ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. - hooks์—์„œ ์„ฑ๊ณต ์ฒ˜๋ฆฌ์šฉ ํ† ์ŠคํŠธ ๋กœ์ง์„ ๋ชจ๋‘ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. - ๊ฐ ํŽ˜์ด์ง€์—์„œ ์„ฑ๊ณต ์ฒ˜๋ฆฌ์šฉ ํ† ์ŠคํŠธ๋ฅผ ๋„์šฐ๋Š” ๊ฒƒ์œผ๋กœ ๋กœ์ง์„ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ### ๐Ÿ“ธ ์Šคํฌ๋ฆฐ์ƒท (์„ ํƒ) ### ๐Ÿš€ ๋ฆฌ๋ทฐ ์š”๊ตฌ์‚ฌํ•ญ (์„ ํƒ) - hooks ํด๋”์—์„œ api ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด ํ†ต์ผ๋˜์–ด์žˆ์ง€ ์•Š์•„ ๋ฆฌํŒฉํ† ๋ง์„ ํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™๊ธด ํ•œ๋ฐ..... ์šฐ์„  ๋‹ค๋ฅธ ์ด์Šˆ๋ถ€ํ„ฐ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋‚˜์ค‘์— ์†๋ด์•ผ๊ฒ ๋„ค์š”... - [#PR107](#107) ๋ถ€ํ„ฐ ๋จธ์ง€ํ•˜๊ณ , ์ด PR ๋จธ์ง€ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
1 parent c6438f1 commit 4162d60

File tree

12 files changed

+838
-1215
lines changed

12 files changed

+838
-1215
lines changed

โ€Žpackage.jsonโ€Ž

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
"@radix-ui/react-label": "^2.1.8",
2222
"@radix-ui/react-popover": "^1.1.15",
2323
"@radix-ui/react-scroll-area": "^1.2.10",
24-
"@radix-ui/react-separator": "^1.1.8",
2524
"@radix-ui/react-slot": "^1.2.4",
2625
"@radix-ui/react-switch": "^1.2.6",
2726
"@tailwindcss/vite": "^4.1.18",
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import { DateTimeInput } from '@/components/DateTimeInput';
2+
import { DateTimePicker } from '@/components/DateTimePicker';
3+
import type { Control, FieldValues, Path } from 'react-hook-form';
4+
import { Controller } from 'react-hook-form';
5+
6+
interface ControlledDateTimePickerProps<T extends FieldValues> {
7+
control: Control<T>;
8+
name: Path<T>;
9+
id?: string;
10+
placeholder?: string;
11+
disabled?: boolean;
12+
onChange?: (date: Date | undefined) => void;
13+
}
14+
15+
export function ControlledDateTimePicker<T extends FieldValues>({
16+
control,
17+
name,
18+
id,
19+
placeholder,
20+
disabled,
21+
onChange: onSideChange,
22+
}: ControlledDateTimePickerProps<T>) {
23+
return (
24+
<Controller
25+
control={control}
26+
name={name}
27+
render={({ field }) => (
28+
<DateTimePicker
29+
id={id || name}
30+
value={field.value}
31+
onChange={(date: Date | undefined) => {
32+
field.onChange(date);
33+
if (onSideChange) onSideChange(date);
34+
}}
35+
placeholder={placeholder}
36+
disabled={disabled}
37+
renderTrigger={({ value, open, setOpen }) => (
38+
<DateTimeInput
39+
value={value}
40+
onChange={(date: Date | undefined) => {
41+
if (date) {
42+
field.onChange(date);
43+
if (onSideChange) onSideChange(date);
44+
}
45+
}}
46+
onCalendarClick={() => {
47+
setOpen(!open);
48+
}}
49+
placeholder={placeholder}
50+
disabled={disabled}
51+
/>
52+
)}
53+
/>
54+
)}
55+
/>
56+
);
57+
}

0 commit comments

Comments
ย (0)