/
githubmirror
/
material-ui
Обзор
Документация
Войти
/
githubmirror
/
material-ui
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
docs/data/material/components/dialogs/ScrollDialog.tsx
67 строк
2 KB
Zeeshan Tamboli
[docs][material-ui] Improve Dialog demos (#39642)
30 окт 2023, 09:12
Не верифицирован
30 окт 2023, 09:12
8eb3c1f
Код
Авторство
О чём код?
import * as React from 'react'; import Button from '@mui/material/Button'; import Dialog, { DialogProps } from '@mui/material/Dialog'; 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 ScrollDialog() { const [open, setOpen] = React.useState(false); const [scroll, setScroll] = React.useState<DialogProps['scroll']>('paper'); const handleClickOpen = (scrollType: DialogProps['scroll']) => () => { setOpen(true); setScroll(scrollType); }; const handleClose = () => { setOpen(false); }; const descriptionElementRef = React.useRef<HTMLElement>(null); React.useEffect(() => { if (open) { const { current: descriptionElement } = descriptionElementRef; if (descriptionElement !== null) { descriptionElement.focus(); } } }, [open]); return ( <React.Fragment> <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" > <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> </Dialog> </React.Fragment> ); }