import { withPageAuthRequired } from "@auth0/nextjs-auth0/client"; import Grid from '@mui/material/Grid'; import Card from '@mui/material/Card'; import CardActions from '@mui/material/CardActions'; import CardContent from '@mui/material/CardContent'; import CardMedia from '@mui/material/CardMedia'; import Button from '@mui/material/Button'; import Typography from '@mui/material/Typography'; import { useEffect, useState } from "react"; import { DataGrid, GridColDef, GridValueGetterParams } from '@mui/x-data-grid'; import Rating from '@mui/material/Rating'; import Dialog from '@mui/material/Dialog'; import DialogTitle from '@mui/material/DialogTitle'; import DialogContent from '@mui/material/DialogContent'; import DialogContentText from '@mui/material/DialogContentText'; import DialogActions from '@mui/material/DialogActions'; import CurrencyTextField from '@lupus-ai/mui-currency-textfield'; import TextField from '@mui/material/TextField'; import ArtistPortfolio from "../../components/dashboard/artist/portfolio"; import { RouterNetwork } from "mdi-material-ui"; import { useRouter } from "next/router"; import { profile } from "console"; import FileOpen from "@mui/icons-material/FileOpen"; import Reviews from "../../components/dashboard/artist/reviews"; const Profile = () => { const [profileData, setArtistData] = useState(null); const [description, setDescription] = useState(""); const [guidelines, setGuidelines] = useState(""); const [requestMessage, setRequestMessage] = useState(""); const [requestPrice, setRequestPrice] = useState(100.00); const [file, setFile] = useState(null); const handleFileChange = (event) => { const files = event.target.files; setFile(files); // Set files to state } const handleRequestMessageChange = (event) => { setRequestMessage(event.target.value); } const handleRequestPriceChange = (event) => { setRequestPrice(event.target.value); } const router = useRouter(); const [open, setOpen] = useState(false); const handleClickOpen = () => { setOpen(true); }; const handleClose = () => { setOpen(false); }; const submitRequest = async (payload) => { try { const requestResponse = await fetch('/api/box/newRequest', { method: 'POST', body: JSON.stringify({ artistId: profileData["id"], message: payload.get('Message'), amount: payload.get('Amount'), }) }); if (requestResponse.ok) { const requestResponseData = await requestResponse.json(); router.push("/dashboard/requests/"+requestResponseData["id"]); } else { const errorData = await requestResponse.json(); alert("Error submitting request: " + errorData.detail); } } catch (error) { console.error('Error submitting request:', error); alert("Error submitting request. Please try again later."); } }; const getData = async () => { if(router.query.artistName!=null){ const profileResponse = await fetch('/api/discovery/artist/'+router.query.artistName); const sellerProfile = await profileResponse.json(); setArtistData(sellerProfile); setDescription(sellerProfile["description"]); setGuidelines(sellerProfile["requestGuidelines"]); } } useEffect(() => { getData() }, [router.query.artistName]); return ( <> ) => { event.preventDefault(); const formData = new FormData(event.currentTarget); submitRequest(formData); handleClose(); }, }} > New Request Please read the guidelines of submitting a request before you proceed. You can do that by closing this popup and looking at the page behind. STORE HEADER BIOGRAPHY HEADER {description} GUIDELINES HEADER {guidelines} By clicking "Start New Request" you are agreeing to the terms above and to the terms of service. [TERMS OF SERVICE] REVIEWS HEADER {profileData!=null ? ( ):null} PORTFOLIO HEADER {profileData!=null ? ( ):null} ); }; // Protected route, checking user authentication client-side.(CSR) export default withPageAuthRequired(Profile);