diff --git a/api/SurveyApi.ts b/api/SurveyApi.ts index d071536..e54c227 100644 --- a/api/SurveyApi.ts +++ b/api/SurveyApi.ts @@ -43,4 +43,8 @@ export interface SurveyInfo { page: number; start_date: string; end_date: string; + allow_submit: boolean; + allow_view: boolean; + allow_judge: boolean; + allow_re_submit: boolean; } diff --git a/app/(root)/backstage/components/SurveyBasicContentsEditor.tsx b/app/(root)/backstage/components/SurveyBasicContentsEditor.tsx index 8fbced4..7256be6 100644 --- a/app/(root)/backstage/components/SurveyBasicContentsEditor.tsx +++ b/app/(root)/backstage/components/SurveyBasicContentsEditor.tsx @@ -1,4 +1,18 @@ -import { Badge, Button, Card, Center, Group, Image, ScrollArea, Stack, Textarea, TextInput } from '@mantine/core'; +'use client'; + +import { + Badge, + Button, + Card, + Center, + Group, + Image, + ScrollArea, + Stack, + Switch, + Textarea, + TextInput, +} from '@mantine/core'; import { useState } from 'react'; import { DateTimePicker } from '@mantine/dates'; import { SurveyInfo } from '@/api/SurveyApi'; @@ -27,6 +41,12 @@ export default function SurveyBasicContentsEditor({ new Date(handleTimeStamp.utc2cst(new Date(survey.end_date).getTime())) ); + // Switch states + const [allowSubmit, setAllowSubmit] = useState(survey.allow_submit); + const [allowView, setAllowView] = useState(survey.allow_view); + const [allowJudge, setAllowJudge] = useState(survey.allow_judge); + const [allowReSubmit, setAllowReSubmit] = useState(survey.allow_re_submit); + const handleSave = () => { onSave({ ...survey, @@ -36,6 +56,10 @@ export default function SurveyBasicContentsEditor({ image, start_date: handleTimeStamp.cst2utc(startTime.getTime()).toISOString(), // Convert to string end_date: handleTimeStamp.cst2utc(endTime.getTime()).toISOString(), // Convert to string + allow_submit: allowSubmit, + allow_view: allowView, + allow_judge: allowJudge, + allow_re_submit: allowReSubmit, }); }; @@ -44,6 +68,7 @@ export default function SurveyBasicContentsEditor({ + {/* Title and Description */} + {/* Budge and Image */}