Skip to content

Commit 1d47b6b

Browse files
committed
fix: 경고 에러 수정 및 새로고침시 데이터 날라가는 문제 해결
1 parent 4c080dc commit 1d47b6b

File tree

3 files changed

+40
-44
lines changed

3 files changed

+40
-44
lines changed
Lines changed: 23 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { cn } from '@ui/lib/utils';
2+
import React from 'react';
23

34
const labelStyle = "font-['Roboto'] font-normal block text-left text-[14px] leading-[22px]";
45

@@ -11,32 +12,27 @@ interface Props extends React.InputHTMLAttributes<HTMLInputElement> {
1112
inputClassName?: string;
1213
}
1314

14-
export function Input({
15-
id,
16-
type,
17-
disabled,
18-
required,
19-
defaultValue,
20-
label,
21-
placeholder,
22-
inputClassName = '',
23-
...props
24-
}: Props) {
25-
return (
26-
<p className="mb-[15px]">
27-
{label && <label className={labelStyle}>{label}</label>}
28-
<input
29-
id={id}
30-
className={cn(inputStyle, inputClassName)}
31-
type={type}
32-
disabled={disabled}
33-
required={required}
34-
placeholder={placeholder}
35-
defaultValue={defaultValue}
36-
{...props}
37-
/>
38-
</p>
39-
);
40-
}
15+
export const Input = React.forwardRef<HTMLInputElement, Props>(
16+
({ id, type, disabled, required, defaultValue, label, placeholder, inputClassName = '', ...props }: Props, ref) => {
17+
console.log('defaultValue', defaultValue);
18+
19+
return (
20+
<p className="mb-[15px]">
21+
{label && <label className={labelStyle}>{label}</label>}
22+
<input
23+
ref={ref}
24+
id={id}
25+
className={cn(inputStyle, inputClassName)}
26+
type={type}
27+
disabled={disabled}
28+
required={required}
29+
placeholder={placeholder}
30+
defaultValue={defaultValue}
31+
{...props}
32+
/>
33+
</p>
34+
);
35+
},
36+
);
4137

4238
Input.displayName = 'Input';

frontend/zicdding-class.com/app/(user)/my/_components/MyInfo.tsx

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,22 @@ function useLoginPageGuard(nextPage: string) {
2121
export function MyInfo({ mode }: { mode: 'view' | 'modify' }) {
2222
const router = useRouter();
2323
const { user } = useUser();
24-
const { register, getValues } = useForm<{
24+
const { register, setValue } = useForm<{
2525
nickname: string;
2626
email: string;
2727
password: string;
2828
phoneNumber: string;
29-
}>({
30-
defaultValues: {
31-
nickname: user?.nickname,
32-
email: user?.email,
33-
password: '**********',
34-
phoneNumber: user?.phone_num,
35-
},
36-
});
29+
}>();
30+
31+
useEffect(() => {
32+
if (user == null) {
33+
return;
34+
}
35+
36+
setValue('nickname', user.nickname);
37+
setValue('email', user.email);
38+
setValue('phoneNumber', user.phone_num);
39+
}, [user, setValue]);
3740

3841
useLoginPageGuard('/login');
3942

@@ -50,15 +53,13 @@ export function MyInfo({ mode }: { mode: 'view' | 'modify' }) {
5053
<Input
5154
id="nickname"
5255
label="닉네임"
53-
defaultValue={getValues('nickname')}
5456
disabled={mode === 'view'}
5557
required={true}
5658
inputClassName={mode === 'view' ? 'text-[#959595] bg-[#F4F4F4]' : 'bg-[#F4F4F4] text-[#959595]'}
5759
{...register('nickname')}
5860
/>
5961

6062
<Input
61-
defaultValue={getValues('email')}
6263
label="Email"
6364
id="email"
6465
type="email"
@@ -78,7 +79,6 @@ export function MyInfo({ mode }: { mode: 'view' | 'modify' }) {
7879
/>
7980

8081
<Input
81-
defaultValue={getValues('phoneNumber')}
8282
label="전화번호"
8383
id="phoneNumber"
8484
type="tel"

frontend/zicdding-class.com/app/_hooks/useUser.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
"use client";
1+
'use client';
22

3-
import { useCallback } from "react";
4-
import { apiV1 } from "@/app/_remotes";
5-
import { useQuery } from "@tanstack/react-query";
3+
import { useCallback } from 'react';
4+
import { apiV1 } from '@/app/_remotes';
5+
import { useQuery } from '@tanstack/react-query';
66

77
export function useUser() {
88
const { data, refetch, isError, isFetching } = useQuery({
99
initialData: undefined,
10-
queryKey: ["useUser"],
10+
queryKey: ['useUser'],
1111
queryFn: () => apiV1.users.getMe(),
1212
retry: false,
1313
});

0 commit comments

Comments
 (0)