import "./App.css"; import names from "./players.json"; import * as React from "react"; import { Theme, useTheme } from "@mui/material/styles"; import Box from "@mui/material/Box"; import OutlinedInput from "@mui/material/OutlinedInput"; import InputLabel from "@mui/material/InputLabel"; import MenuItem from "@mui/material/MenuItem"; import FormControl from "@mui/material/FormControl"; import Select, { SelectChangeEvent } from "@mui/material/Select"; import Chip from "@mui/material/Chip"; import { Alert, Button, Dialog, DialogTitle, FormHelperText, Stack, } from "@mui/material"; function getStyles(name: string, players: readonly string[], theme: Theme) { return { fontWeight: players.includes(name) ? theme.typography.fontWeightMedium : theme.typography.fontWeightRegular, }; } async function submit( person: string, players: string[], setResponseStatus: (value: number) => void ) { // console.log(JSON.stringify({ person: person, players: players })); const response = await fetch("https://0124816.xyz/team/submit/", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ person: person, players: players }), }); setResponseStatus(response.status); } type SubmitButtonProps = { person: string; players: string[]; }; function SubmitButton(props: SubmitButtonProps) { const [responseStatus, setResponseStatus] = React.useState(0); return (
thank you. please leave now.
); } type MultiSelectProps = { person: string; setPerson: (value: string) => void; players: string[]; setPlayers: (value: string[]) => void; }; function MultipleSelectChip(props: MultiSelectProps) { const ITEM_HEIGHT = 48; const ITEM_PADDING_TOP = 8; const MenuProps = { PaperProps: { style: { maxHeight: ITEM_HEIGHT * 6.5 + ITEM_PADDING_TOP, width: 250, }, }, }; const [alert, setAlert] = React.useState("none"); const maxLimit = 9; const theme = useTheme(); const handlePersonChange = ( event: SelectChangeEvent ) => { const { target: { value }, } = event; props.setPerson(value); const index = props.players.indexOf(value); if (index > -1) { props.players.splice(index, 1); } props.setPlayers(props.players); }; const handleChange = (event: SelectChangeEvent) => { const { target: { value }, } = event; if (value.length <= maxLimit) { setAlert("none"); props.setPlayers( // On autofill we get a stringified value. typeof value === "string" ? value.split(",") : value ); } else { setAlert(""); } }; return ( who are you? do not select more than {maxLimit} players players max. {maxLimit} ); } function App() { const [person, setPerson] = React.useState(""); const [players, setPlayers] = React.useState([]); return ( <>

choose your best buddies for the Igloo

{MultipleSelectChip({ person, setPerson, players, setPlayers })} {SubmitButton({ person, players })}

now: click submit.

something not working? message me.

); } export default App;