import Alert from "@mui/material/Alert"; 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 { useExternalI18n } from "../i18n/ExternalI18nProvider.jsx"; export function ResourceGrantDialog({ loading, onClose, onSubmit, open, resources }) { const { t } = useExternalI18n(); const [form, setForm] = useState(resourceGrantInitial); useEffect(() => setForm(resourceGrantInitial), [open]); return ( onSubmit(form)}> setForm({ ...form, target: event.target.value.trim() })} /> setForm({ ...form, resourceId: event.target.value })}> {resources.map((item) => {item.name} ({item.id}))} setForm({ ...form, quantity: event.target.value })} /> setForm({ ...form, durationDays: event.target.value })} /> setForm({ ...form, reason: event.target.value })} /> ); } export function PrettyIdGrantDialog({ loading, onClose, onSubmit, open }) { const { t } = useExternalI18n(); const [form, setForm] = useState(prettyGrantInitial); useEffect(() => setForm(prettyGrantInitial), [open]); return ( onSubmit(form)}> setForm({ ...form, target: event.target.value.trim() })} /> setForm({ ...form, prettyId: event.target.value.trim() })} /> setForm({ ...form, durationDays: event.target.value })} /> setForm({ ...form, reason: event.target.value })} /> ); } function TargetNotice() { const { t } = useExternalI18n(); return {t("grants.notice")}; } function GrantDialog({ children, loading, onClose, onSubmit, open, title }) { const { t } = useExternalI18n(); return ( { event.preventDefault(); onSubmit(); }}> {title} {children} ); } const resourceGrantInitial = { durationDays: "30", quantity: "1", reason: "", resourceId: "", target: "" }; const prettyGrantInitial = { durationDays: "0", prettyId: "", reason: "", target: "" };