Make punishment buttons work
This commit is contained in:
parent
0a3bbf28ee
commit
8d041df174
@ -12,34 +12,62 @@ import {
|
|||||||
Spacer,
|
Spacer,
|
||||||
Stack,
|
Stack,
|
||||||
Text,
|
Text,
|
||||||
|
useToast
|
||||||
} from "@chakra-ui/react";
|
} from "@chakra-ui/react";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
|
|
||||||
export default function (props: ReportCardProps) {
|
export default function(props: ReportCardProps) {
|
||||||
const [attachmentIdx, setAttachmentIdx] = useState(0);
|
const [attachmentIdx, setAttachmentIdx] = useState(0);
|
||||||
|
const toast = useToast();
|
||||||
const targetMap: { [k: number]: string } = {};
|
const targetMap: { [k: number]: string } = {};
|
||||||
const [attachmentsReady, setAttachmentReady] = useState(
|
const [attachmentsReady, setAttachmentReady] = useState(
|
||||||
!props.attachments_loading,
|
!props.attachments_loading
|
||||||
);
|
);
|
||||||
const actionMap: { [k: number]: number } = {};
|
const actionMap: { [k: number]: number } = {};
|
||||||
|
|
||||||
for (let i = 0; i < props.target_ids.length; i++)
|
for (let i = 0; i < props.target_ids.length; i++)
|
||||||
Object.defineProperty(targetMap, props.target_ids[i], {
|
Object.defineProperty(targetMap, props.target_ids[i], {
|
||||||
value: props.target_usernames[i],
|
value: props.target_usernames[i]
|
||||||
});
|
});
|
||||||
|
|
||||||
async function recheckAttachment() {
|
async function recheckAttachment() {
|
||||||
const attachmentCheck = await fetch("/api/uploads/status", {
|
const attachmentCheck = await fetch("/api/uploads/status", {
|
||||||
body: JSON.stringify(props.attachments),
|
body: JSON.stringify(props.attachments),
|
||||||
headers: {
|
headers: {
|
||||||
"content-type": "application/json",
|
"content-type": "application/json"
|
||||||
},
|
},
|
||||||
method: "POST",
|
method: "POST"
|
||||||
});
|
});
|
||||||
|
|
||||||
setAttachmentReady(attachmentCheck.ok);
|
setAttachmentReady(attachmentCheck.ok);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function submitActions() {
|
||||||
|
const submitReq = await fetch(`/api/reports/${props.id}/action`, {
|
||||||
|
body: JSON.stringify(actionMap),
|
||||||
|
headers: {
|
||||||
|
"content-type": "application/json"
|
||||||
|
},
|
||||||
|
method: "POST"
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!submitReq.ok) {
|
||||||
|
toast({
|
||||||
|
description: (await submitReq.json() as { error: string }).error,
|
||||||
|
status: "error",
|
||||||
|
title: "S̸̯̜̈́o̴̳̅̾̏̽m̴͔͕̈́̋ē̴̙͓̯̍̃ț̸͖̘̀h̶̛̳̝̐i̵̋͘͜ņ̷̙̤͌g̴̭̻̓̈́ ̴̘͍̦̪̆w̸̡̏̑̊é̸̠̖̹̂͜n̴̖̳̤̕t̴͚̊̊̕ ̸̛͙̺̬̎́w̴͈͑̋͊r̷̢̛o̵̱̩̍͋ͅṇ̸̝̰̮́g̵̡̢̦͕͂"
|
||||||
|
});
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
toast({
|
||||||
|
description: "Actions were successfully applied",
|
||||||
|
status: "success",
|
||||||
|
title: "Success"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Card key={props.id} w="100%">
|
<Card key={props.id} w="100%">
|
||||||
<CardHeader>
|
<CardHeader>
|
||||||
@ -127,7 +155,7 @@ export default function (props: ReportCardProps) {
|
|||||||
</Button>
|
</Button>
|
||||||
) : (
|
) : (
|
||||||
<Stack direction="column">
|
<Stack direction="column">
|
||||||
{(function () {
|
{(function() {
|
||||||
const radioGroups = [];
|
const radioGroups = [];
|
||||||
for (let i = 0; i < props.target_ids.length; i++) {
|
for (let i = 0; i < props.target_ids.length; i++) {
|
||||||
radioGroups.push(
|
radioGroups.push(
|
||||||
@ -135,7 +163,7 @@ export default function (props: ReportCardProps) {
|
|||||||
name={props.target_ids[i].toString()}
|
name={props.target_ids[i].toString()}
|
||||||
onChange={(val) => {
|
onChange={(val) => {
|
||||||
Object.defineProperty(actionMap, props.target_ids[i], {
|
Object.defineProperty(actionMap, props.target_ids[i], {
|
||||||
value: parseInt(val),
|
value: parseInt(val)
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@ -151,7 +179,7 @@ export default function (props: ReportCardProps) {
|
|||||||
Ban
|
Ban
|
||||||
</Radio>
|
</Radio>
|
||||||
</Stack>
|
</Stack>
|
||||||
</RadioGroup>,
|
</RadioGroup>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user