95 lines
2.7 KiB
JavaScript
95 lines
2.7 KiB
JavaScript
import * as React from 'react';
|
|
import Button from '@mui/material/Button';
|
|
import Dialog from '@mui/material/Dialog';
|
|
import Card from "@mui/material/Card";
|
|
import { Typography } from "@mui/material";
|
|
import DialogActions from '@mui/material/DialogActions';
|
|
import DialogContent from '@mui/material/DialogContent';
|
|
import DialogContentText from '@mui/material/DialogContentText';
|
|
import DialogTitle from '@mui/material/DialogTitle';
|
|
|
|
export default function ScrollingLongContent() {
|
|
const [open, setOpen] = React.useState(false);
|
|
const [scroll, setScroll] = React.useState('paper');
|
|
|
|
const handleClickOpen = (scrollType) => () => {
|
|
setOpen(true);
|
|
setScroll(scrollType);
|
|
};
|
|
|
|
const handleClose = () => {
|
|
setOpen(false);
|
|
};
|
|
|
|
const descriptionElementRef = React.useRef(null);
|
|
React.useEffect(() => {
|
|
if (open) {
|
|
const { current: descriptionElement } = descriptionElementRef;
|
|
if (descriptionElement !== null) {
|
|
descriptionElement.focus();
|
|
}
|
|
}
|
|
}, [open]);
|
|
|
|
return (
|
|
<>
|
|
<Card
|
|
sx={{
|
|
boxShadow: "none",
|
|
borderRadius: "10px",
|
|
p: "25px",
|
|
mb: "15px",
|
|
}}
|
|
>
|
|
<Typography
|
|
as="h3"
|
|
sx={{
|
|
fontSize: 18,
|
|
fontWeight: 500,
|
|
mb: '10px'
|
|
}}
|
|
>
|
|
Scrolling Long Content
|
|
</Typography>
|
|
|
|
<Button onClick={handleClickOpen('paper')}>scroll=paper</Button>
|
|
|
|
<Button onClick={handleClickOpen('body')}>scroll=body</Button>
|
|
|
|
<Dialog
|
|
open={open}
|
|
onClose={handleClose}
|
|
scroll={scroll}
|
|
aria-labelledby="scroll-dialog-title"
|
|
aria-describedby="scroll-dialog-description"
|
|
>
|
|
<div className='bg-black'>
|
|
<DialogTitle id="scroll-dialog-title">Subscribe</DialogTitle>
|
|
|
|
<DialogContent dividers={scroll === 'paper'}>
|
|
<DialogContentText
|
|
id="scroll-dialog-description"
|
|
ref={descriptionElementRef}
|
|
tabIndex={-1}
|
|
>
|
|
{[...new Array(50)]
|
|
.map(
|
|
() => `Cras mattis consectetur purus sit amet fermentum.
|
|
Cras justo odio, dapibus ac facilisis in, egestas eget quam.
|
|
Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
|
|
Praesent commodo cursus magna, vel scelerisque nisl consectetur et.`,
|
|
)
|
|
.join('\n')}
|
|
</DialogContentText>
|
|
</DialogContent>
|
|
|
|
<DialogActions>
|
|
<Button onClick={handleClose}>Cancel</Button>
|
|
<Button onClick={handleClose}>Subscribe</Button>
|
|
</DialogActions>
|
|
</div>
|
|
</Dialog>
|
|
</Card>
|
|
</>
|
|
);
|
|
} |