Skip to content

Commit

Permalink
fix: select 선택 불가 문제 해결, N role 추가 (#83)
Browse files Browse the repository at this point in the history
  • Loading branch information
selfishAltruism committed Mar 2, 2024
1 parent a533b6f commit 7222049
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 5 deletions.
3 changes: 1 addition & 2 deletions src/components/Form/StyledInput.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ interface InputProps<TFieldValues extends FieldValues> {
control: Control<TFieldValues>;
rules?: UseControllerProps['rules'];
options?: string[];
defaultOption?: string;
}

export const Input = <TFieldValues extends FieldValues = FieldValues>({
Expand Down Expand Up @@ -101,7 +100,7 @@ export const SelectInput = <TFieldValues extends FieldValues = FieldValues>({
<InputLabel>
{label} {required ? <RequiredMark /> : null}
</InputLabel>
<Select required={required} {...field} value={options![0]}>
<Select required={required} {...field}>
{options
? options.map(option => (
<MenuItem value={option} key={option}>
Expand Down
43 changes: 40 additions & 3 deletions src/pages/board/boardCreate/BoardCreatePage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ const BoardCreatePage: React.FC = observer(() => {
handleSubmit,
control,
formState: { errors },
setValue,
} = useForm({
defaultValues: {
name: undefined,
Expand All @@ -39,6 +40,10 @@ const BoardCreatePage: React.FC = observer(() => {
},
});

const handleSelectChange = (name: string, selectedValue: string) => {
setValue(name as 'category' | 'circleName', selectedValue);
};

if (
(errors.name && errors.name.type === 'required') ||
(errors.description && errors.description.type === 'required')
Expand All @@ -62,7 +67,19 @@ const BoardCreatePage: React.FC = observer(() => {
if (me?.isCircleLeader && data.circleName !== '전체') {
//동아리장이 동아리 게시판을 생성하는 경우
if (data.category === '공지 게시판') {
body.createRoleList = ['ADMIN', 'VICE_PRESIDENT', 'PRESIDENT', 'LEADER_CIRCLE'];
body.createRoleList = [
'ADMIN',
'VICE_PRESIDENT',
'PRESIDENT',
'LEADER_CIRCLE',
'PRESIDENT_N_LEADER_CIRCLE',
'VICE_PRESIDENT_N_LEADER_CIRCLE',
'COUNCIL_N_LEADER_CIRCLE',
'LEADER_1_N_LEADER_CIRCLE',
'LEADER_2_N_LEADER_CIRCLE',
'LEADER_3_N_LEADER_CIRCLE',
'LEADER_4_N_LEADER_CIRCLE',
];
body.circleId =
me.circleIds![me.circleNames!.findIndex(circleName => circleName === data.circleName)];
} else if (data.category === '자유 게시판') {
Expand All @@ -76,14 +93,27 @@ const BoardCreatePage: React.FC = observer(() => {
'LEADER_3',
'LEADER_4',
'COMMON',
'PRESIDENT_N_LEADER_CIRCLE',
'VICE_PRESIDENT_N_LEADER_CIRCLE',
'COUNCIL_N_LEADER_CIRCLE',
'LEADER_1_N_LEADER_CIRCLE',
'LEADER_2_N_LEADER_CIRCLE',
'LEADER_3_N_LEADER_CIRCLE',
'LEADER_4_N_LEADER_CIRCLE',
];
body.circleId =
me.circleIds![me.circleNames!.findIndex(circleName => circleName === data.circleName)];
}
} else {
//학생회장 혹은 관리자가 동아리 게시판을 생성하는 경우
if (data.category === '공지 게시판') {
body.createRoleList = ['ADMIN', 'VICE_PRESIDENT', 'PRESIDENT'];
body.createRoleList = [
'ADMIN',
'VICE_PRESIDENT',
'PRESIDENT',
'PRESIDENT_N_LEADER_CIRCLE',
'VICE_PRESIDENT_N_LEADER_CIRCLE',
];
} else if (data.category === '자유 게시판') {
body.createRoleList = [
'ADMIN',
Expand All @@ -95,6 +125,13 @@ const BoardCreatePage: React.FC = observer(() => {
'LEADER_3',
'LEADER_4',
'COMMON',
'PRESIDENT_N_LEADER_CIRCLE',
'VICE_PRESIDENT_N_LEADER_CIRCLE',
'COUNCIL_N_LEADER_CIRCLE',
'LEADER_1_N_LEADER_CIRCLE',
'LEADER_2_N_LEADER_CIRCLE',
'LEADER_3_N_LEADER_CIRCLE',
'LEADER_4_N_LEADER_CIRCLE',
];
}
}
Expand All @@ -107,12 +144,12 @@ const BoardCreatePage: React.FC = observer(() => {

useEffect(() => {
fetch();
if (me?.isCircleLeader) setValue('circleName', me.circleNames![0]);
}, []);

return (
<>
<Header title="게시판 생성" withBack={PAGE_URL.Board} />

<PageBody>
<BodyScreen>
<Input name="name" label="게시판 이름" required control={control} />
Expand Down

0 comments on commit 7222049

Please sign in to comment.