/
helloWrld
/
test
Обзор
Документация
Войти
/
helloWrld
/
test
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/shared/components/Sidebar/Sidebar.tsx
26 строк
728 B
babinm1h
test
09 дек 2023, 18:02
09 дек 2023, 18:02
ca48ad1
Код
Авторство
О чём код?
import React from 'react'; import { createPortal } from 'react-dom'; import { Button } from '../Button'; import s from './Sidebar.module.scss'; interface ISidebarProps extends React.HtmlHTMLAttributes<HTMLDivElement> { isOpen: boolean; onClose: VoidFunction; } export const Sidebar = ({ isOpen, onClose, children, ...props }: ISidebarProps) => { if (!isOpen) return null; return createPortal( <aside className={s.overlay} onClick={onClose}> <aside {...props} className={s.bar} onClick={(e) => e.stopPropagation()}> <header className={s.header}> <Button onClick={onClose}>Закрыть</Button> </header> {children} </aside> </aside>, document.body, ); };