Files
react-test/docs/data/joy/components/chip/CheckboxChip.js
how2ice 005cf56baf
Some checks failed
No response / noResponse (push) Has been cancelled
CI / Continuous releases (push) Has been cancelled
CI / test-dev (macos-latest) (push) Has been cancelled
CI / test-dev (ubuntu-latest) (push) Has been cancelled
CI / test-dev (windows-latest) (push) Has been cancelled
Maintenance / main (push) Has been cancelled
Scorecards supply-chain security / Scorecards analysis (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
init project
2025-12-12 14:26:25 +09:00

66 lines
1.9 KiB
JavaScript

import CheckIcon from '@mui/icons-material/Check';
import Box from '@mui/joy/Box';
import Checkbox from '@mui/joy/Checkbox';
import Chip from '@mui/joy/Chip';
import Typography from '@mui/joy/Typography';
import * as React from 'react';
export default function CheckboxChip() {
const [selected, setSelected] = React.useState([]);
return (
<Box sx={{ display: 'flex', gap: 1, alignItems: 'center' }}>
<div>
<Typography level="title-lg" id="fav-movie" sx={{ mb: 2 }}>
Favorite Movies
</Typography>
<Box
role="group"
aria-labelledby="fav-movie"
sx={{ display: 'flex', flexWrap: 'wrap', gap: 1 }}
>
{[
'Star trek',
'Batman',
'Spider man',
'Eternals',
'Shang chi',
'Jungle cruise',
'No time to die',
'Thor',
'The hulk',
].map((name) => {
const checked = selected.includes(name);
return (
<Chip
key={name}
variant="plain"
color={checked ? 'primary' : 'neutral'}
startDecorator={
checked && <CheckIcon sx={{ zIndex: 1, pointerEvents: 'none' }} />
}
>
<Checkbox
variant="outlined"
color={checked ? 'primary' : 'neutral'}
disableIcon
overlay
label={name}
checked={checked}
onChange={(event) => {
setSelected((names) =>
!event.target.checked
? names.filter((n) => n !== name)
: [...names, name],
);
}}
/>
</Chip>
);
})}
</Box>
</div>
</Box>
);
}