in packages/dag-history-component/src/components/OptionDropdown/index.tsx [41:92]
public render() {
const { label, icon, options } = this.props
let result = null
if (options.length === 0) {
result = label ? <div>{label}</div> : null
} else {
const triggerLabel = label ? <div className="label">{label}</div> : null
let triggerIcon = icon
if (!triggerIcon && !label) {
triggerIcon = <MdMoreVert size={24} style={{ margin: 4 }} />
}
if (triggerIcon) {
triggerIcon = <div>{triggerIcon}</div>
}
const optionClicked = (onClick: Function) => {
onClick()
this.setState({ show: false })
}
const triggerClicked = () => {
this.setState({ show: true })
}
result = (
<Dropdown active={this.state.show}>
<DropdownTrigger onClick={() => triggerClicked()}>
<TriggerContent>
{triggerLabel}
{triggerIcon}
</TriggerContent>
</DropdownTrigger>
<DropdownContent>
<OptionList>
{options.map(
(
{ element: optionElement, label: optionLabel, onClick },
index,
) => (
<ListItem
key={`option:${index}`}
onClick={() => optionClicked(onClick)}
>
{optionElement || optionLabel}
</ListItem>
),
)}
</OptionList>
</DropdownContent>
</Dropdown>
)
}