import * as React from 'react'; import { useState, useEffect } from 'react'; import { useRouter } from 'next/router'; import { withPageAuthRequired } from '@auth0/nextjs-auth0/client' import { Alert, Card, CardContent, Grid, IconButton, TextField, Typography } from '@mui/material'; import Button from '@mui/material/Button'; import { OpenInNew } from 'mdi-material-ui'; import Tooltip from '@mui/material/Tooltip'; import { ArrowBack } from '@mui/icons-material'; const AdminRequest = () => { const router = useRouter(); const [request, setRequest] = useState(null); const getData = async () => { if(router.query.requestId!=null){ const response = await fetch("/api/admin/requests/"+router.query.requestId); const data = await response.json(); setRequest(data); } } const handleAccept = async () => { var response = await fetch("/api/admin/requests/"+router.query.requestId, {method:"PUT"}) if(response.ok){ var data = await response.json(); router.reload(); } else{ alert("Failed to accept request.") } } const handleDeny = async () => { var response = await fetch("/api/admin/requests/"+router.query.requestId, {method:"DELETE"}) if(response.ok){ var data = await response.json(); router.reload(); } else{ alert("Failed to deny request.") } } useEffect(() => { getData() }, [router.query.requestId]); let formattedTime = "" const date = new Date(request?.requestDate); formattedTime = date.toLocaleTimeString('en-US', { month: 'long', day: '2-digit', year: 'numeric', hour: '2-digit', minute: '2-digit' }); // Example format return ( <> {router.query.requestId} - Artist Access Request router.push("/dashboard/admin/requests")} color="primary"> Submitted on {formattedTime} {request?.accepted ? ( This artist access request has been accepted. ):( Pending review from platform administrator. )} {request?.message} {request?.accepted ? ( ):( <> )} ); }; // Protected route, checking user authentication client-side.(CSR) export default withPageAuthRequired(AdminRequest);