added team select in user menu

This commit is contained in:
Carter 2025-02-12 13:25:12 -06:00
parent 45ff49bcea
commit 6c5ac2b17c
4 changed files with 52 additions and 0 deletions

7
package-lock.json generated
View file

@ -21,6 +21,7 @@
"@types/classnames": "^2.3.0", "@types/classnames": "^2.3.0",
"axios": "^1.7.7", "axios": "^1.7.7",
"dayjs": "^1.11.13", "dayjs": "^1.11.13",
"deep-object-diff": "^1.1.9",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"moment": "^2.30.1", "moment": "^2.30.1",
"moment-timezone": "^0.5.46", "moment-timezone": "^0.5.46",
@ -3169,6 +3170,12 @@
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true "dev": true
}, },
"node_modules/deep-object-diff": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz",
"integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==",
"license": "MIT"
},
"node_modules/delaunator": { "node_modules/delaunator": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz",

View file

@ -30,6 +30,7 @@
"@types/classnames": "^2.3.0", "@types/classnames": "^2.3.0",
"axios": "^1.7.7", "axios": "^1.7.7",
"dayjs": "^1.11.13", "dayjs": "^1.11.13",
"deep-object-diff": "^1.1.9",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"moment": "^2.30.1", "moment": "^2.30.1",
"moment-timezone": "^0.5.46", "moment-timezone": "^0.5.46",

View file

@ -88,6 +88,34 @@ export default function AddComponentManualDialog (props: Props) {
/> />
</Grid2> </Grid2>
</Grid2> </Grid2>
<Grid2 container direction="row">
<Grid2 size={{ xs: 6 }}>
<TextField
value={component.measurementPeriodMs}
type="number"
label="Measurement Perios (ms)"
fullWidth
onChange={event => {
let newSettings = pond.ComponentSettings.create(component)
newSettings.measurementPeriodMs = or(parseInt(event.currentTarget.value), 0)
setComponent(newSettings)
}}
/>
</Grid2>
<Grid2 size={{ xs: 6 }}>
<TextField
value={component.reportPeriodMs}
type="number"
label="Report Period (ms)"
fullWidth
onChange={event => {
let newSettings = pond.ComponentSettings.create(component)
newSettings.reportPeriodMs = or(parseInt(event.currentTarget.value), 0)
setComponent(newSettings)
}}
/>
</Grid2>
</Grid2>
</Grid2> </Grid2>
</DialogContent> </DialogContent>
<DialogActions> <DialogActions>

View file

@ -12,6 +12,7 @@ import UserSettings from "./UserSettings";
import UserAvatar from "./UserAvatar"; import UserAvatar from "./UserAvatar";
import { purple } from "@mui/material/colors"; import { purple } from "@mui/material/colors";
import { useNavigate } from "react-router-dom"; import { useNavigate } from "react-router-dom";
import TeamDialog from "teams/TeamDialog";
const useStyles = makeStyles((theme: Theme) => ({ const useStyles = makeStyles((theme: Theme) => ({
userAvatar: { userAvatar: {
@ -89,9 +90,15 @@ export default function UserMenu(props: Props) {
// const hasAdmin = user.hasFeature ? user.hasFeature("admin") : false; // const hasAdmin = user.hasFeature ? user.hasFeature("admin") : false;
// const allowedToCopyToken = user.allowedTo("copy-token"); // const allowedToCopyToken = user.allowedTo("copy-token");
const hasTeams = user.hasFeature ? user.hasFeature("teams") : false; const hasTeams = user.hasFeature ? user.hasFeature("teams") : false;
const [teamDialogIsOpen, setTeamDialogIsOpen] = useState<boolean>(false);
const navigate = useNavigate() const navigate = useNavigate()
const openTeamDialog = () => {
setTeamDialogIsOpen(true);
closeUserMenu();
};
const lockHover = () => { const lockHover = () => {
setLockIsHovered(true); setLockIsHovered(true);
}; };
@ -215,6 +222,14 @@ export default function UserMenu(props: Props) {
</ListItemIcon> </ListItemIcon>
<ListItemText primary="Toggle Theme" /> <ListItemText primary="Toggle Theme" />
</MenuItem> </MenuItem>
{hasTeams && (
<MenuItem onClick={openTeamDialog} aria-label="Open Team Menu" dense>
<ListItemIcon>
<TeamIcon />
</ListItemIcon>
<ListItemText primary="Select Team" />
</MenuItem>
)}
<MenuItem onClick={handleLogout} aria-label="Sign Out" dense> <MenuItem onClick={handleLogout} aria-label="Sign Out" dense>
<ListItemIcon> <ListItemIcon>
<ExitToApp className={classes.red} /> <ExitToApp className={classes.red} />
@ -222,6 +237,7 @@ export default function UserMenu(props: Props) {
<ListItemText primary="Sign Out" /> <ListItemText primary="Sign Out" />
</MenuItem> </MenuItem>
</Menu> </Menu>
<TeamDialog open={teamDialogIsOpen} setOpen={setTeamDialogIsOpen} />
<UserSettings isOpen={userSettingsIsOpen} closeDialogCallback={closeUserSettingsDialog} /> <UserSettings isOpen={userSettingsIsOpen} closeDialogCallback={closeUserSettingsDialog} />
</> </>
) )