Skip to content

Commit

Permalink
feat :: userMiddleSchool api 연동
Browse files Browse the repository at this point in the history
  • Loading branch information
wlalsplus100 committed Jun 26, 2024
1 parent 37ae90a commit ddf35ab
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 44 deletions.
2 changes: 1 addition & 1 deletion src/apis/application/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ export const GetUserProfile = () => {
/** 졸업/졸업예정 추가정보 입력 */
export const EditAdditionalInfo = () => {
const response = async (params: IPatchUserMiddleSchool) => {
return instance.patch(`${router}/users/graduation`, params);
return instance.patch(`${router}/graduation`, params);
};
return useMutation(response, {
onError: () => Toast('중학교 정보 제출에 실패하였습니다.', { type: 'error' }),
Expand Down
14 changes: 9 additions & 5 deletions src/apis/application/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,18 +54,22 @@ export interface IPatchUserPhoto {
export interface IUserMiddleSchool {
name: string;
sex: string;
birthday: string;
birthDate: string;
schoolCode: string;
schoolTel: string;
schoolName: string;
studentNumber: string;
parentName: string;
telephoneNumber: string;
parentTel: string;
address: string;
applicantTel: string;
streetAddress: string;
detailAddress: string;
postCode: string;
postalCode: string;
photoPath: string;
studentNumber: {
gradeNumber: string;
classNumber: string;
studentNumber: string;
};
}

export interface IPatchUserIntroduce {
Expand Down
54 changes: 22 additions & 32 deletions src/components/Application/UserMiddleShool.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ const UserMiddleSchool = ({ current, setCurrent }: ICurrnettype) => {
form: userMiddleSchool,
setForm: setUserMiddleSchool,
onChange: changeUserMiddleSchool,
} = useInput<IUserMiddleSchool>({ student_number: ['', '', ''], school_code: '', school_tel: '' });
} = useInput<IUserMiddleSchool>({ studentNumber: ['', '', ''], schoolCode: '' });
const { form: schoolName, setForm: setSchoolName } = useInput('');

/** 중학교 겁색을 위한 form */
Expand All @@ -34,17 +34,20 @@ const UserMiddleSchool = ({ current, setCurrent }: ICurrnettype) => {
useEffect(() => {
if (!!data) {
setUserMiddleSchool({
student_number: sliceString(data.student_number ?? '', [1, 2, 2]),
school_code: data.school_code,
school_tel: data.school_tel,
studentNumber: [
data.studentNumber.gradeNumber,
data.studentNumber.classNumber,
data.studentNumber.studentNumber,
],
schoolCode: data.schoolCode,
});
setSchoolName(data.school_name);
setSchoolName(data.schoolName);
}
}, [data]);

const searchSchool = async (e: React.KeyboardEvent<HTMLInputElement>) => {
if (e.key === 'Enter') {
const response: AxiosResponse = await instance.get<ISearchSchools>(`application/schools?name=${form}`);
const response: AxiosResponse = await instance.get<ISearchSchools>(`schools?school_name=${form}`);
const data = response.data;
setSchoolList(data?.content);
clearTimeout(timer);
Expand All @@ -57,28 +60,28 @@ const UserMiddleSchool = ({ current, setCurrent }: ICurrnettype) => {
}
const newTimer = Number(
setTimeout(async () => {
const response: AxiosResponse = await instance.get<ISearchSchools>(`application/schools?name=${form}`);
const response: AxiosResponse = await instance.get<ISearchSchools>(`schools?school_name=${form}`);
const data = response.data;
setSchoolList(data?.content);
}, 500),
);
setTimer(newTimer);
}, [form]);

const confirmSchool = (school_code: string, school_name: string) => {
setUserMiddleSchool({ ...userMiddleSchool, school_code });
setSchoolName(school_name);
const confirmSchool = (schoolCode: string, schoolName: string) => {
setUserMiddleSchool({ ...userMiddleSchool, schoolCode });
setSchoolName(schoolName);
close();
};

const onChangeStudentNumber = (e: InputType, index: number, maxLength: number) => {
const oldArray = userMiddleSchool.student_number;
const oldArray = userMiddleSchool.studentNumber;
if (e.currentTarget.value.length >= maxLength) {
oldArray[index] = e.currentTarget.value.slice(0, maxLength);
} else {
oldArray[index] = e.currentTarget.value;
}
setUserMiddleSchool((prev) => ({ ...prev, student_number: oldArray }));
setUserMiddleSchool((prev) => ({ ...prev, studentNumber: oldArray }));
};

const isDisabled = Object.values(userMiddleSchool).some((item) => !!item === false);
Expand All @@ -89,11 +92,9 @@ const UserMiddleSchool = ({ current, setCurrent }: ICurrnettype) => {
() =>
mutateAsync({
...userMiddleSchool,
student_number: userMiddleSchool.student_number
.map((item) => String(item.padStart(2, '0')))
.join('')
.slice(1),
school_tel: userMiddleSchool.school_tel.replace(/-/g, ''),
gradeNumber: parseInt(userMiddleSchool.studentNumber[0]),
classNumber: parseInt(userMiddleSchool.studentNumber[1]),
studentNumber: userMiddleSchool.studentNumber[2],
}),
],
() => setCurrent(current + 1),
Expand All @@ -114,7 +115,7 @@ const UserMiddleSchool = ({ current, setCurrent }: ICurrnettype) => {
<ApplicationContent grid={3} title="중학교 학번" placeholder="반, 번호는 최대 2자리수 까지 입력 가능합니다.">
<Input
type="number"
value={userMiddleSchool.student_number[0]}
value={userMiddleSchool.studentNumber[0]}
onChange={(e) => onChangeStudentNumber(e, 0, 1)}
placeholder="학년"
width={120}
Expand All @@ -123,7 +124,7 @@ const UserMiddleSchool = ({ current, setCurrent }: ICurrnettype) => {
/>
<Input
type="number"
value={userMiddleSchool.student_number[1]}
value={userMiddleSchool.studentNumber[1]}
onChange={(e) => onChangeStudentNumber(e, 1, 2)}
placeholder="반"
width={120}
Expand All @@ -132,25 +133,14 @@ const UserMiddleSchool = ({ current, setCurrent }: ICurrnettype) => {
/>
<Input
type="number"
value={userMiddleSchool.student_number[2]}
value={userMiddleSchool.studentNumber[2]}
onChange={(e) => onChangeStudentNumber(e, 2, 2)}
placeholder="번호"
width={120}
unit="번호"
maxLength={2}
/>
</ApplicationContent>
<ApplicationContent grid={1} title="중학교 전화번호" placeholder="‘-’ 문자를 제외한 숫자만 입력해주세요">
<Input
type="tel"
name="school_tel"
value={userMiddleSchool.school_tel}
onChange={changeUserMiddleSchool}
placeholder="중학교 전화번호"
width={230}
maxLength={13}
/>
</ApplicationContent>
{modalState === 'SEARCH_SCHOOL' && (
<Modal onClose={close}>
<Input
Expand Down Expand Up @@ -208,7 +198,7 @@ const _SearchPreviews = styled.div`
height: 200px;
align-items: center;
margin-top: 25px;
overflow: scroll;
overflow-x: hidden;
`;

const _SearchPreview = styled.div`
Expand Down
12 changes: 6 additions & 6 deletions src/interface/type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,15 @@ export interface IUserInfo {
}

export interface IPatchUserMiddleSchool {
student_number: string;
school_code: string;
school_tel: string;
gradeNumber: number;
classNumber: number;
studentNumber: string;
schoolCode: string;
}

export interface IUserMiddleSchool {
student_number: string[];
school_code: string;
school_tel: string;
studentNumber: string[];
schoolCode: string;
}

export interface IUserMiddleSchoolName {
Expand Down

0 comments on commit ddf35ab

Please sign in to comment.