import { Meteor } from 'meteor/meteor'; import React, { useState } from 'react'; import { useTracker } from 'meteor/react-meteor-data'; import _ from 'lodash'; import SimpleTable from "/imports/ui/util/SimpleTable"; import TextField from "@mui/material/TextField"; import Button from "@mui/material/Button"; import Select from '@mui/material/Select'; import MenuItem from '@mui/material/MenuItem'; import {Staff} from "/imports/api/staff"; import {Sites} from "/imports/api/sites"; const cssSitesSelect = { margin: '0.6rem 0', minWidth: '20rem', } const cssFieldColumnContainer = { display: 'flex', flexDirection: 'column', backgroundColor: '#DDD', padding: '0.5rem', border: '1px solid #999', borderRadius: '0.2rem' } const cssGridFieldContainer = { display: 'grid', gridTemplateColumns: "1fr 1fr 1fr", columnGap: '1rem', rowGap: '0.4rem', marginBottom: '1.5rem' } const cssButtonContainer = { display: 'flex', gap: '1rem', justifyContent: 'flex-end' } const StaffEditor = ({value, close, defaultSiteId}) => { const [email, setEmail] = useState(value.email || "") const [id, setId] = useState(value.id || "") const [firstName, setFirstName] = useState(value.firstName || "") const [lastName, setLastName] = useState(value.lastName || "") const [siteId, setSiteId] = useState(value.siteId ? value.siteId : defaultSiteId) const {sites} = useTracker(() => { let sites = Sites.find({}).fetch(); return {sites} }); if(!siteId && sites && sites.length > 0) { setSiteId(sites[0]._id) } const applyChanges = () => { close() //TODO Should invert this and only close if there was success on the server. if(value._id) Meteor.call("staff.update", value._id, id, firstName, lastName, email, siteId); else Meteor.call("staff.add", id, firstName, lastName, email, siteId); } const rejectChanges = () => { close() } return (