Add option for filing hiatuses
This commit is contained in:
parent
daace88cf9
commit
4ddf797cc2
@ -2,6 +2,7 @@ import {
|
||||
Button,
|
||||
Checkbox,
|
||||
CheckboxGroup,
|
||||
HStack,
|
||||
Modal,
|
||||
ModalBody,
|
||||
ModalCloseButton,
|
||||
@ -9,6 +10,8 @@ import {
|
||||
ModalFooter,
|
||||
ModalHeader,
|
||||
ModalOverlay,
|
||||
Radio,
|
||||
RadioGroup,
|
||||
Text,
|
||||
Textarea,
|
||||
useToast,
|
||||
@ -23,6 +26,7 @@ export default function (props: {
|
||||
}) {
|
||||
const [departments, setDepartments] = useState([] as string[]);
|
||||
const [loading, setLoading] = useState(false);
|
||||
const [isHiatus, setIsHiatus] = useState(false);
|
||||
const toast = useToast();
|
||||
|
||||
function reset() {
|
||||
@ -55,6 +59,7 @@ export default function (props: {
|
||||
body: JSON.stringify({
|
||||
departments,
|
||||
end,
|
||||
hiatus: departments.includes("DM") ? isHiatus : undefined,
|
||||
reason,
|
||||
start,
|
||||
}),
|
||||
@ -122,6 +127,20 @@ export default function (props: {
|
||||
))}
|
||||
</VStack>
|
||||
</CheckboxGroup>
|
||||
<RadioGroup
|
||||
onChange={(v) => setIsHiatus(JSON.parse(v))}
|
||||
style={{
|
||||
display: departments.includes("DM") ? undefined : "none",
|
||||
}}
|
||||
value={JSON.stringify(isHiatus)}
|
||||
>
|
||||
<br />
|
||||
<br />
|
||||
<HStack>
|
||||
<Radio value="false">Inactivity</Radio>
|
||||
<Radio value="true">Hiatus</Radio>
|
||||
</HStack>
|
||||
</RadioGroup>
|
||||
</ModalBody>
|
||||
<ModalFooter>
|
||||
<Button onClick={reset}>Cancel</Button>
|
||||
|
@ -1,11 +1,13 @@
|
||||
import validateInactivity from "./validate.js";
|
||||
|
||||
export async function onRequestPost(context: RequestContext) {
|
||||
const { departments, end, reason, senderTokenId, start } = context.data.body;
|
||||
const { departments, end, hiatus, reason, senderTokenId, start } =
|
||||
context.data.body;
|
||||
|
||||
const validationFailureResponse = validateInactivity(
|
||||
departments,
|
||||
end,
|
||||
hiatus,
|
||||
reason,
|
||||
start,
|
||||
context.data.departments,
|
||||
@ -25,6 +27,7 @@ export async function onRequestPost(context: RequestContext) {
|
||||
departments,
|
||||
end,
|
||||
fcm_token: typeof senderTokenId === "string" ? senderTokenId : undefined,
|
||||
hiatus,
|
||||
open: true,
|
||||
reason,
|
||||
start,
|
||||
|
@ -3,6 +3,7 @@ import { jsonError } from "../../common.js";
|
||||
export default function (
|
||||
selectedDepartments: string[],
|
||||
end: any,
|
||||
hiatus: any,
|
||||
reason: any,
|
||||
start: any,
|
||||
userDepartments?: string[],
|
||||
@ -28,6 +29,12 @@ export default function (
|
||||
const now = new Date();
|
||||
const startDate = new Date(start);
|
||||
|
||||
if (typeof hiatus !== "undefined" && typeof hiatus !== "boolean")
|
||||
return jsonError("Invalid notice", 400);
|
||||
|
||||
if (!selectedDepartments.includes("DM") && hiatus)
|
||||
return jsonError("Only discord mods can file hiatuses", 400);
|
||||
|
||||
if (
|
||||
isNaN(endDate.getFullYear()) ||
|
||||
isNaN(startDate.getFullYear()) ||
|
||||
|
Loading…
x
Reference in New Issue
Block a user