import { Meteor } from 'meteor/meteor'; import React, { useState, useEffect } from 'react'; import { useTracker } from 'meteor/react-meteor-data'; import { useTheme } from '@mui/material/styles'; 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 Chip from '@mui/material/Chip'; import MenuItem from '@mui/material/MenuItem'; import Paper from '@mui/material/Paper'; import InputBase from '@mui/material/InputBase'; import IconButton from '@mui/material/IconButton'; import SearchIcon from '@mui/icons-material/Search'; import Box from "@mui/material/Box"; import OutlinedInput from '@mui/material/OutlinedInput'; import FormControl from '@mui/material/FormControl'; import ToggleButton from '@mui/material/ToggleButton'; import ToggleButtonGroup from '@mui/material/ToggleButtonGroup'; import { useNavigate } from "react-router-dom"; import {Students} from "/imports/api/students"; import {Staff} from "/imports/api/staff"; import {conditions} from "/imports/api/assets"; import DialogTitle from "@mui/material/DialogTitle"; import DialogContent from "@mui/material/DialogContent"; import DialogActions from "@mui/material/DialogActions"; import Dialog from "@mui/material/Dialog"; import {InputLabel, List, ListItem, ListItemButton, ListItemText} from "@mui/material"; export default () => { const navigate = useNavigate() const [value, setValue] = useState("") const search = async () => { if(value && value.length > 1) { let students = await Students.find({email: {$regex: value, $options: 'i'}}).fetchAsync() let staff = await Staff.find({email: {$regex: value, $options: 'i'}}).fetchAsync() let all = [...staff, ...students] if(all.length > 1) { setPeopleToPickFrom(all) setOpenPickPersonDialog(true) } else if(all.length === 1) { navigate("/history/search?" + (students.length ? "studentId" : 'staffId') + "=" + encodeURIComponent(all[0]._id)); } } } Meteor.subscribe('students'); Meteor.subscribe('staff'); const [openPickPersonDialog, setOpenPickPersonDialog] = useState(false) const [peopleToPickFrom, setPeopleToPickFrom] = useState([]) const pickPersonClosed = (cause, person) => { if(openPickPersonDialog) setOpenPickPersonDialog(false) if(person && person._id) { navigate("/history/search?" + (person.grade ? "studentId" : 'staffId') + "=" + encodeURIComponent(person._id)); } } return ( <>