Skip to content

Commit d2abada

Browse files
committed
Replace Role/Style selects with chip toggles in Prompts sidebar
1 parent e9a1ba3 commit d2abada

File tree

1 file changed

+24
-18
lines changed

1 file changed

+24
-18
lines changed

ui/src/pages/prompts/index.tsx

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ import Typography from '@mui/material/Typography';
99
import Checkbox from '@mui/material/Checkbox';
1010
import FormControlLabel from '@mui/material/FormControlLabel';
1111
import FormGroup from '@mui/material/FormGroup';
12-
import Select from '@mui/material/Select';
13-
import MenuItem from '@mui/material/MenuItem';
1412
import TextField from '@mui/material/TextField';
1513
import Button from '@mui/material/Button';
1614
import IconButton from '@mui/material/IconButton';
@@ -249,29 +247,37 @@ export default function PromptsPage() {
249247
<Box sx={{ px: 2, pb: 1, display: 'flex', flexDirection: 'column', gap: 1.5 }}>
250248
<Box>
251249
<Typography variant="overline" sx={{ color: 'text.secondary' }}>Role</Typography>
252-
<Select
253-
value={state.role}
254-
onChange={e => setState(prev => ({ ...prev, role: e.target.value as RoleName }))}
255-
size="small"
256-
fullWidth
257-
>
250+
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 0.75, mt: 0.5 }}>
258251
{Object.entries(ROLE_LABELS).map(([value, label]) => (
259-
<MenuItem key={value} value={value}>{label}</MenuItem>
252+
<Chip
253+
key={value}
254+
label={label}
255+
size="small"
256+
onClick={() => setState(prev => ({ ...prev, role: value as RoleName }))}
257+
sx={state.role === value
258+
? { bgcolor: 'primary.main', color: '#fff', '&:hover': { bgcolor: 'primary.dark' }, textTransform: 'uppercase', fontWeight: 700, letterSpacing: '0.05em' }
259+
: { opacity: 0.5, textTransform: 'uppercase', fontWeight: 700, letterSpacing: '0.05em' }
260+
}
261+
/>
260262
))}
261-
</Select>
263+
</Box>
262264
</Box>
263265
<Box>
264266
<Typography variant="overline" sx={{ color: 'text.secondary' }}>Style</Typography>
265-
<Select
266-
value={state.style}
267-
onChange={e => setState(prev => ({ ...prev, style: e.target.value as StyleName }))}
268-
size="small"
269-
fullWidth
270-
>
267+
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 0.75, mt: 0.5 }}>
271268
{Object.entries(STYLE_LABELS).map(([value, label]) => (
272-
<MenuItem key={value} value={value}>{label}</MenuItem>
269+
<Chip
270+
key={value}
271+
label={label}
272+
size="small"
273+
onClick={() => setState(prev => ({ ...prev, style: value as StyleName }))}
274+
sx={state.style === value
275+
? { bgcolor: 'primary.main', color: '#fff', '&:hover': { bgcolor: 'primary.dark' }, textTransform: 'uppercase', fontWeight: 700, letterSpacing: '0.05em' }
276+
: { opacity: 0.5, textTransform: 'uppercase', fontWeight: 700, letterSpacing: '0.05em' }
277+
}
278+
/>
273279
))}
274-
</Select>
280+
</Box>
275281
</Box>
276282
</Box>
277283

0 commit comments

Comments
 (0)