Spaces:
Runtime error
Runtime error
File size: 1,361 Bytes
d378496 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
import { KeyboardArrowDown, KeyboardArrowUp } from "@mui/icons-material";
import {
Card,
CardContent,
CardHeader,
Collapse,
IconButton,
Stack,
} from "@mui/material";
import { ReactElement, useState } from "react";
type OptionsProps = {
children: ReactElement | ReactElement[];
opened?: boolean;
};
/**
* Define options that are hidden by default
*
* @param props OptionsProps
* @param props.opened boolean - Are the options visible or not (default)
*
* @returns Options
*/
export default function Options(props: OptionsProps) {
const { children, opened = false } = props;
const [showOptions, setShowOptions] = useState(opened);
const handleShowOptions = () => setShowOptions(!showOptions);
return (
<>
<Card>
<CardHeader
title="Options"
onClick={handleShowOptions}
action={
<IconButton aria-label="expand" size="small">
{showOptions ? <KeyboardArrowUp /> : <KeyboardArrowDown />}
</IconButton>
}
sx={{
cursor: "pointer",
}}
titleTypographyProps={{ variant: "h6", sx: { fontSize: "1em" } }}
/>
<Collapse in={showOptions}>
<CardContent>
<Stack spacing={2}>{children}</Stack>
</CardContent>
</Collapse>
</Card>
</>
);
}
|