File size: 871 Bytes
a8b3f00 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import { MenuOption } from '@lexical/react/LexicalTypeaheadMenuPlugin'
import { Fragment } from 'react'
/**
* Corresponds to the `MenuRenderFn` type from `@lexical/react/LexicalTypeaheadMenuPlugin`.
*/
type MenuOptionRenderProps = {
isSelected: boolean
onSelect: () => void
onSetHighlight: () => void
queryString: string | null
}
export class PickerBlockMenuOption extends MenuOption {
public group?: string
constructor(
private data: {
key: string
group?: string
onSelect?: () => void
render: (menuRenderProps: MenuOptionRenderProps) => JSX.Element
},
) {
super(data.key)
this.group = data.group
}
public onSelectMenuOption = () => this.data.onSelect?.()
public renderMenuOption = (menuRenderProps: MenuOptionRenderProps) => <Fragment key={this.data.key}>{this.data.render(menuRenderProps)}</Fragment>
}
|