Sha256: 51adb1123da70b8f9ede458d754ce1f613dd09fdbe8a77db4c71e9e67a155cb2
Contents?: true
Size: 1.36 KB
Versions: 357
Compression:
Stored size: 1.36 KB
Contents
import React, { ReactNode, useState } from 'react' import CircleIconButton from '../../pb_circle_icon_button/_circle_icon_button' import PbReactPopover from '../../pb_popover/_popover' type FiltersPopoverProps = { children?: React.ReactChild[] | React.ReactChild | (({closePopover}: {closePopover: () => void}) => ReactNode), dark?: boolean, minWidth?: string, placement?: "top" | "right" | "bottom" | "left" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end", } const FiltersPopover = ({ children, dark, minWidth, placement = "bottom-start" }: FiltersPopoverProps): React.ReactElement => { const [hide, updateHide] = useState(true) const toggle = () => updateHide(!hide) const filterButton = ( <CircleIconButton dark={dark} icon="filter" id="filter" onClick={toggle} variant="secondary" /> ) return ( <PbReactPopover closeOnClick="outside" minWidth={minWidth} placement={placement} reference={filterButton} shouldClosePopover={updateHide} show={!hide} > <div className="pb-form"> {typeof children === 'function' ? children({ closePopover: () => (updateHide(true)) }) : children} </div> </PbReactPopover> ) } export default FiltersPopover
Version data entries
357 entries across 357 versions & 1 rubygems