import { Stack, TextField, Typography } from "@mui/material";
import { NumberConstraint, ServerApi } from "../../api/ServerApi";
import { DateValue, fmtDate } from "../../api/MemberApi";
import { PropEdit } from "./PropEdit";
export function DateInput(p: {
id: string;
label: string;
editable: boolean;
value?: DateValue;
onValueChange: (newVal: DateValue) => void;
}): React.ReactElement {
if (!p.editable) {
if (!p.value) return <>>;
return (
);
}
return (
{p.label}
{
const val = Number(e.target.value);
p.onValueChange({
day: val > 0 ? val : undefined,
month: p.value?.month,
year: p.value?.year,
});
}}
inputProps={{
min: ServerApi.Config.constraints.date_day.min,
max: ServerApi.Config.constraints.date_day.max,
}}
/>
{
const val = Number(e.target.value);
p.onValueChange({
day: p.value?.day,
month: val > 0 ? val : undefined,
year: p.value?.year,
});
}}
inputProps={{
min: ServerApi.Config.constraints.date_month.min,
max: ServerApi.Config.constraints.date_month.max,
}}
/>
{
const val = Number(e.target.value);
p.onValueChange({
day: p.value?.day,
month: p.value?.month,
year: val > 0 ? val : undefined,
});
}}
error={isValErr(p.value?.year, ServerApi.Config.constraints.date_year)}
variant="filled"
style={{ flex: 30 }}
type="number"
inputProps={{
min: ServerApi.Config.constraints.date_year.min,
max: ServerApi.Config.constraints.date_year.max,
}}
/>
);
}
function Separator(): React.ReactElement {
return (
/
);
}
function isValErr(val: number | undefined, c: NumberConstraint): boolean {
return (val && (val < c.min || val > c.max)) || false;
}