import Box from "@mui/material/Box"; import Typography from "@mui/material/Typography"; import { Modal, Field, DateField, Select, TextField, CheckboxField, } from "../ui"; import type { PlanUser, PlanCategory } from "../lib/queries/plan"; import type { Project } from "../lib/queries/projects"; export interface BulkPlanForm { date_from: string; date_to: string; is_range: boolean; user_ids: string[]; include_weekends: boolean; project_id: string; category: string; note: string; } interface Props { isOpen: boolean; onClose: () => void; form: BulkPlanForm; setForm: (form: BulkPlanForm) => void; users: PlanUser[]; projects: Project[]; categories: PlanCategory[]; onSubmit: () => void; submitting: boolean; toggleUser: (userId: number) => void; toggleAllUsers: () => void; } export default function BulkPlanModal({ isOpen, onClose, form, setForm, users, projects, categories, onSubmit, submitting, toggleUser, toggleAllUsers, }: Props) { const activeCategories = categories.filter((c) => c.is_active); return ( Vytvoří záznamy pro vybrané dny u zvolených zaměstnanců. Dny, které už mají 3 záznamy, se přeskočí. setForm({ ...form, date_from: val })} /> setForm({ ...form, is_range: checked })} /> {form.is_range && ( setForm({ ...form, date_to: val })} /> )} setForm({ ...form, include_weekends: checked }) } /> Zaměstnanci {users.length > 0 && form.user_ids.length === users.length ? "Odznačit vše" : "Vybrat vše"} {users.map((u) => ( toggleUser(u.id)} /> ))} Vybráno: {form.user_ids.length} z {users.length} setForm({ ...form, category: val })} options={activeCategories.map((c) => ({ value: c.key, label: c.label, }))} /> setForm({ ...form, note: e.target.value })} inputProps={{ maxLength: 500 }} /> ); }