설정 기능 구현 - 카테고리 변경
- 자신이 좋아하는 항목의 카테고리를 설정하면 이에 해당하는 게시물을 열람 가능.
- 카테고리를 변경하는 기능 추가
구현 모습

구현 코드
- ** 간소화로 인해 코드 중 일부 생략된 부분이 있을 수 있습니다.
const EditCategory = () => {
const [interests, setInterests] = useState([]);
...
useEffect(() => {
if (editCategoryDone) alert('카테고리가 변경되었습니다.');
}, [editCategoryDone]);
const onEditCategory = useCallback(() => {
dispatch({
type: EDIT_CATEGORY_REQUEST,
data: { interests },
});
setInterests(null);
}, [interests]);
return (
<div>
<Select
isMulti
placeholder="선호하는 카테고리를 선택해주세요."
name="user-interests"
onChange={onSelectInterests}
options={selectOptions(categoryData)}
/>
<Button onClick={onEditCategory}>확인</Button>
</div>
);
};
export default EditCategory;
설정 기능 구현 - 전공 변경
- 학교 특성 상 2학년 2학기부터 전공이 시작되어 학부생에서 전공생으로 변경됨.
- 그렇기 때문에 전공 변경 기능을 추가
- 단, 다른 전공 게시물을 보기 위해 임시로 계속 변경할 우려를 생각해 서버 쪽에서 어느정도 기간을 두고 변경할 수 있도록 설정
구현 모습

구현 코드
- ** 간소화로 인해 코드 중 일부 생략된 부분이 있을 수 있습니다.
const EditCategory = () => {
const [major, setMajor] = useState([]);
...
const onEditMajor = useCallback(() => {
dispatch({
type: EDIT_MAJOR_REQUEST,
data: { majors: major },
});
}, [major]);
...
return (
<div>
<Select
isMulti
placeholder="학부 또는 전공을 선택해주세요."
name="user-interests"
onChange={onSelectMajors}
options={selectOptions(majorsData)}
/>
<Button onClick={onEditMajor}>확인</Button>
</div>
);
};
export default EditCategory