Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
daaa63b
migrate mui from v5 to v6
Lanithane Apr 20, 2026
c4980ce
npm run fmt
Lanithane Apr 20, 2026
57a867b
fix lint failure
Lanithane Apr 20, 2026
54d3d71
revert bun.lock
Lanithane Apr 20, 2026
242aafb
bun install
Lanithane Apr 20, 2026
c71ae5a
make node_modules
Lanithane Apr 20, 2026
7db31af
format
Lanithane Apr 20, 2026
69efaa4
fix test from new dom typings
Lanithane Apr 20, 2026
a84118c
update flatlistitem to v6 mui
Lanithane Apr 21, 2026
121ba5c
Disable scrollIntoView on the confirmation step
Lanithane Apr 21, 2026
3aded1f
prep for mui v7: drop Hidden component and deep imports
Lanithane Apr 24, 2026
fe0478f
migrate makeStyles to sx: icons, lists, util, styles
Lanithane Apr 24, 2026
3b319eb
migrate makeStyles to sx: admin components
Lanithane Apr 24, 2026
cd96194
migrate makeStyles to sx: alerts, AlertCountGraph
Lanithane Apr 24, 2026
8092a4a
migrate makeStyles to sx: alerts step content, details, docs, EP
Lanithane Apr 24, 2026
3208c1f
migrate makeStyles to sx: lists
Lanithane Apr 24, 2026
acf4936
migrate makeStyles to sx: main
Lanithane Apr 24, 2026
c85607b
migrate makeStyles to sx: rotations, schedules
Lanithane Apr 24, 2026
b45b2bc
migrate makeStyles to sx: selection, services
Lanithane Apr 24, 2026
df63a15
migrate makeStyles to sx: users, util
Lanithane Apr 24, 2026
ac4ff26
migrate makeStyles to sx: calendar, explore
Lanithane Apr 24, 2026
cb9a755
migrate makeStyles to sx: remaining jsx files
Lanithane Apr 24, 2026
76ce820
upgrade MUI packages from v6 to v7
Lanithane Apr 24, 2026
c78b700
format: prettier and eslint fixes for v7 upgrade
Lanithane Apr 24, 2026
e4cb862
make check output and fixes
Lanithane Apr 24, 2026
2c98273
make check fixes
Lanithane Apr 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 38 additions & 57 deletions bun.lock

Large diffs are not rendered by default.

13 changes: 7 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,10 @@
"@lezer/highlight": "1.2.1",
"@lezer/lr": "1.4.2",
"@material/material-color-utilities": "0.3.0",
"@mui/icons-material": "5.16.7",
"@mui/lab": "5.0.0-alpha.170",
"@mui/material": "5.16.7",
"@mui/styles": "5.16.7",
"@mui/system": "5.16.7",
"@mui/x-data-grid": "6.20.4",
"@mui/icons-material": "7.3.10",
"@mui/material": "7.3.10",
"@mui/system": "7.3.10",
"@mui/x-data-grid": "7.29.12",
"@playwright/test": "1.55.1",
"@storybook/addon-links": "9.1.8",
"@storybook/react-vite": "9.1.8",
Expand Down Expand Up @@ -153,6 +151,9 @@
"wonka": "6.3.5",
"wouter": "3.7.1"
},
"overrides": {
"react-is": "^18.3.1"
},
"msw": {
"workerDirectory": ".storybook/static"
}
Expand Down
2 changes: 1 addition & 1 deletion search/render.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ func Helpers() template.FuncMap {
if i > 0 {
buf.WriteString(" OR ")
}
buf.WriteString(fmt.Sprintf("to_tsvector('english', replace(lower(%s), '.', ' ')) @@ plainto_tsquery('english', replace(lower(:%s),'.',' '))", columnName, argName))
fmt.Fprintf(&buf, "to_tsvector('english', replace(lower(%s), '.', ' ')) @@ plainto_tsquery('english', replace(lower(:%s),'.',' '))", columnName, argName)
}

buf.WriteRune(')')
Expand Down
57 changes: 20 additions & 37 deletions web/src/app/admin/AdminAPIKeys.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import React, { Suspense, useMemo, useState } from 'react'
import { Button, Card, Grid, Typography } from '@mui/material'
import { Box, Button, Card, Grid, Typography } from '@mui/material'
import { Add } from '@mui/icons-material'
import makeStyles from '@mui/styles/makeStyles'
import { Theme } from '@mui/material/styles'
import { gql, useQuery } from 'urql'
import { DateTime } from 'luxon'
import AdminAPIKeysDrawer from './admin-api-keys/AdminAPIKeyDrawer'
Expand Down Expand Up @@ -33,26 +31,7 @@ const query = gql`
}
`

const useStyles = makeStyles((theme: Theme) => ({
buttons: {
'margin-bottom': '15px',
},
containerDefault: {
[theme.breakpoints.up('md')]: {
maxWidth: '100%',
transition: `max-width ${theme.transitions.duration.leavingScreen}ms ease`,
},
},
containerSelected: {
[theme.breakpoints.up('md')]: {
maxWidth: '70%',
transition: `max-width ${theme.transitions.duration.enteringScreen}ms ease`,
},
},
}))

export default function AdminAPIKeys(): React.JSX.Element {
const classes = useStyles()
const [selectedAPIKey, setSelectedAPIKey] = useState<GQLAPIKey | null>(null)
const [createDialog, setCreateDialog] = useState<boolean>(false)
const [createFromID, setCreateFromID] = useState('')
Expand Down Expand Up @@ -135,11 +114,7 @@ export default function AdminAPIKeys(): React.JSX.Element {
),
secondaryAction: (
<Grid container>
<Grid
item
xs={12}
sx={{ display: 'flex', justifyContent: 'flex-end' }}
>
<Grid size={12} sx={{ display: 'flex', justifyContent: 'flex-end' }}>
<Typography
gutterBottom
variant='subtitle2'
Expand All @@ -154,11 +129,7 @@ export default function AdminAPIKeys(): React.JSX.Element {
)}
</Typography>
</Grid>
<Grid
item
xs={12}
sx={{ display: 'flex', justifyContent: 'flex-end' }}
>
<Grid size={12} sx={{ display: 'flex', justifyContent: 'flex-end' }}>
<OtherActions
actions={[
{
Expand Down Expand Up @@ -225,16 +196,28 @@ export default function AdminAPIKeys(): React.JSX.Element {
/>
)}
</Suspense>
<div
className={
selectedAPIKey ? classes.containerSelected : classes.containerDefault
<Box
sx={(theme) =>
selectedAPIKey
? {
[theme.breakpoints.up('md')]: {
maxWidth: '70%',
transition: `max-width ${theme.transitions.duration.enteringScreen}ms ease`,
},
}
: {
[theme.breakpoints.up('md')]: {
maxWidth: '100%',
transition: `max-width ${theme.transitions.duration.leavingScreen}ms ease`,
},
}
}
>
<div style={{ display: 'flex', justifyContent: 'flex-end' }}>
<Button
data-cy='new'
variant='contained'
className={classes.buttons}
sx={{ mb: '15px' }}
onClick={() => setCreateDialog(true)}
startIcon={<Add />}
>
Expand All @@ -244,7 +227,7 @@ export default function AdminAPIKeys(): React.JSX.Element {
<Card sx={{ width: '100%', padding: '0px' }}>
<FlatList emptyMessage='No Results' items={items} />
</Card>
</div>
</Box>
</React.Fragment>
)
}
32 changes: 12 additions & 20 deletions web/src/app/admin/AdminConfig.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@ import ButtonGroup from '@mui/material/ButtonGroup'
import Divider from '@mui/material/Divider'
import Grid from '@mui/material/Grid'
import Typography from '@mui/material/Typography'
import makeStyles from '@mui/styles/makeStyles'
import { Theme } from '@mui/material/styles'
import { SxProps, Theme } from '@mui/material/styles'
import _, { startCase, isEmpty, uniq, chain } from 'lodash'
import AdminSection from './AdminSection'
import AdminDialog from './AdminDialog'
Expand Down Expand Up @@ -43,31 +42,25 @@ const query = gql`
}
`

const useStyles = makeStyles((theme: Theme) => ({
const classes = {
accordionDetails: {
padding: 0,
display: 'block',
},
form: {
width: '100%',
},
saveDisabled: {
color: 'rgba(255, 255, 255, 0.5)',
},
heading: {
fontSize: '1.1rem',
flexBasis: '33.33%',
flexShrink: 0,
},
secondaryHeading: {
secondaryHeading: (theme: Theme) => ({
fontSize: theme.typography.pxToRem(15),
color: theme.palette.text.secondary,
flexGrow: 1,
},
}),
changeChip: {
justifyContent: 'flex-end',
},
}))
} satisfies Record<string, SxProps<Theme>>

interface ConfigValues {
[id: string]: string
Expand All @@ -82,7 +75,6 @@ function formatHeading(s = ''): string {
}

export default function AdminConfig(): React.JSX.Element {
const classes = useStyles()
const [confirm, setConfirm] = useState(false)
const [values, setValues] = useState({})
const [section, setSection] = useState(false as false | string)
Expand Down Expand Up @@ -135,7 +127,7 @@ export default function AdminConfig(): React.JSX.Element {

return (
<Grid container spacing={2}>
<Grid item xs={12} container justifyContent='flex-end'>
<Grid size={12} container justifyContent='flex-end'>
<ButtonGroup variant='outlined'>
<Button
data-cy='reset'
Expand Down Expand Up @@ -165,7 +157,7 @@ export default function AdminConfig(): React.JSX.Element {
/>
)}

<Grid item xs={12}>
<Grid size={12}>
{groups.map((groupID: string, index: number) => (
<Accordion
key={groupID}
Expand All @@ -181,17 +173,17 @@ export default function AdminConfig(): React.JSX.Element {
<Typography
component='h2'
variant='subtitle1'
className={classes.heading}
sx={classes.heading}
>
{formatHeading(groupID)}
</Typography>
<Typography className={classes.secondaryHeading}>
<Typography sx={classes.secondaryHeading}>
{hasEnable(groupID) &&
(isEnabled(groupID) ? 'Enabled' : 'Disabled')}
</Typography>
{(changeCount(groupID) && (
<Chip
className={classes.changeChip}
sx={classes.changeChip}
size='small'
label={`${changeCount(groupID)} unsaved change${
changeCount(groupID) === 1 ? '' : 's'
Expand All @@ -204,10 +196,10 @@ export default function AdminConfig(): React.JSX.Element {
<AccordionDetails
id={`accordion-sect-${groupID}`}
aria-labelledby={`accordion-${groupID}`}
className={classes.accordionDetails}
sx={classes.accordionDetails}
role='region'
>
<Form className={classes.form}>
<Form style={{ width: '100%' }}>
<AdminSection
value={values}
onChange={(id: string, value: null | string) =>
Expand Down
2 changes: 1 addition & 1 deletion web/src/app/admin/AdminFieldComponents.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ export const StringListInput = (props: InputProps): React.JSX.Element => {
return (
<Grid container spacing={1}>
{value.map((val, idx) => (
<Grid key={idx} item xs={12}>
<Grid size={12} key={idx}>
<StringInput
type={props.type}
value={val}
Expand Down
39 changes: 12 additions & 27 deletions web/src/app/admin/AdminLimits.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ import Button from '@mui/material/Button'
import ButtonGroup from '@mui/material/ButtonGroup'
import Card from '@mui/material/Card'
import Grid from '@mui/material/Grid'
import makeStyles from '@mui/styles/makeStyles'
import { Theme } from '@mui/material/styles'
import Box from '@mui/material/Box'
import { startCase, isEmpty } from 'lodash'
import AdminDialog from './AdminDialog'
import { Form } from '../forms'
Expand All @@ -29,31 +28,11 @@ const mutation = gql`
}
`

const useStyles = makeStyles((theme: Theme) => ({
actionsContainer: {
display: 'flex',
justifyContent: 'flex-end',
},
gridContainer: {
[theme.breakpoints.up('md')]: {
maxWidth: '65%',
},
},
groupTitle: {
fontSize: '1.1rem',
},
pageContainer: {
display: 'flex',
justifyContent: 'center',
},
}))

interface LimitsValues {
[id: string]: string
}

export default function AdminLimits(): React.JSX.Element {
const classes = useStyles()
const [confirm, setConfirm] = useState(false)
const [values, setValues] = useState({})

Expand All @@ -80,9 +59,15 @@ export default function AdminLimits(): React.JSX.Element {
}

return (
<div className={classes.pageContainer}>
<Grid container spacing={2} className={classes.gridContainer}>
<Grid item xs={12} className={classes.actionsContainer}>
<Box sx={{ display: 'flex', justifyContent: 'center' }}>
<Grid
container
spacing={2}
sx={(theme) => ({
[theme.breakpoints.up('md')]: { maxWidth: '65%' },
})}
>
<Grid size={12} sx={{ display: 'flex', justifyContent: 'flex-end' }}>
<ButtonGroup variant='outlined'>
<Button
data-cy='reset'
Expand Down Expand Up @@ -114,7 +99,7 @@ export default function AdminLimits(): React.JSX.Element {
/>
)}

<Grid item xs={12}>
<Grid size={12}>
<Form>
<Card>
<AdminSection
Expand All @@ -138,6 +123,6 @@ export default function AdminLimits(): React.JSX.Element {
</Form>
</Grid>
</Grid>
</div>
</Box>
)
}
2 changes: 1 addition & 1 deletion web/src/app/admin/AdminMaint.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ type AdminMaintToolProps = {

function AdminMaintTool(props: AdminMaintToolProps): React.ReactNode {
return (
<Grid item xs={12} xl={6}>
<Grid size={{ xs: 12, xl: 6 }}>
<Card>
<CardHeader title={props.name} />
<CardContent>
Expand Down
2 changes: 1 addition & 1 deletion web/src/app/admin/AdminNumberLookup.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ export default function AdminNumberLookup(): React.JSX.Element {
<Card>
<CardContent>
<Grid container spacing={2}>
<Grid item xs={12}>
<Grid size={12}>
<TelTextField
onChange={(e) => {
setNumber(e.target.value)
Expand Down
Loading
Loading