import Button from "@mui/material/Button"; import Dialog from "@mui/material/Dialog"; import DialogActions from "@mui/material/DialogActions"; import DialogContent from "@mui/material/DialogContent"; import DialogTitle from "@mui/material/DialogTitle"; import MenuItem from "@mui/material/MenuItem"; import Stack from "@mui/material/Stack"; import TextField from "@mui/material/TextField"; import { useEffect, useState } from "react"; import { ExternalImageUploadField } from "../shared/ExternalImageUploadField.jsx"; import { useExternalI18n } from "../i18n/ExternalI18nProvider.jsx"; export function UserEditDialog({ loading, onClose, onSubmit, open, user }) { const { t } = useExternalI18n(); const [form, setForm] = useState(emptyEditForm); useEffect(() => { setForm({ avatar: user?.avatar || "", country: user?.country || "", gender: user?.gender || "", username: user?.username || "" }); }, [user]); return ( onSubmit(form)}> setForm({ ...form, avatar })} /> setForm({ ...form, username: event.target.value })} /> setForm({ ...form, gender: event.target.value })}> {t("users.notSet")}{t("users.genderMale")}{t("users.genderFemale")}{t("users.genderUnknown")} setForm({ ...form, country: event.target.value.trim().toUpperCase() })} /> ); } export function UserBanDialog({ loading, onClose, onSubmit, open, user }) { const { t } = useExternalI18n(); const [form, setForm] = useState({ days: "7", reason: "" }); useEffect(() => setForm({ days: "7", reason: "" }), [user]); return ( onSubmit(form)}> setForm({ ...form, days: event.target.value })} /> setForm({ ...form, reason: event.target.value })} /> ); } export function UserLevelDialog({ loading, onClose, onSubmit, open, user }) { const { t } = useExternalI18n(); const [form, setForm] = useState({ days: "30", level: "", reason: "", track: "wealth" }); useEffect(() => setForm({ days: "30", level: "", reason: "", track: "wealth" }), [user]); return ( onSubmit(form)}> setForm({ ...form, track: event.target.value })}>{t("users.wealthLevel")}{t("users.charmLevel")}{t("users.vipLevel")} setForm({ ...form, level: event.target.value })} /> setForm({ ...form, days: event.target.value })} /> setForm({ ...form, reason: event.target.value })} /> ); } function BaseDialog({ children, loading, onClose, onSubmit, open, title }) { const { t } = useExternalI18n(); const handleSubmit = (event) => { event.preventDefault(); onSubmit(); }; return ( {title} {children} ); } const emptyEditForm = { avatar: "", country: "", gender: "", username: "" };