From 7eca9748a12198f07fdea3704e446ee83c86f845 Mon Sep 17 00:00:00 2001 From: sunhao Date: Fri, 23 Aug 2024 17:38:11 +0800 Subject: [PATCH] * picker: support for getting picker instance from picker menu. --- lib/picker/src/component/picker-menu.tsx | 4 ++++ lib/picker/src/component/picker.tsx | 1 + lib/picker/src/types/picker-menu-props.ts | 2 ++ 3 files changed, 7 insertions(+) diff --git a/lib/picker/src/component/picker-menu.tsx b/lib/picker/src/component/picker-menu.tsx index d6f9984c9f..5768969e22 100644 --- a/lib/picker/src/component/picker-menu.tsx +++ b/lib/picker/src/component/picker-menu.tsx @@ -38,6 +38,10 @@ export class PickerMenu extends PickPop { return this._menu.current; } + get picker() { + return this.props.picker; + } + componentDidMount(): void { super.componentDidMount(); if (this._firstSelected === undefined) { diff --git a/lib/picker/src/component/picker.tsx b/lib/picker/src/component/picker.tsx index dc1f8a6304..d9e8dbdafe 100644 --- a/lib/picker/src/component/picker.tsx +++ b/lib/picker/src/component/picker.tsx @@ -331,6 +331,7 @@ export class Picker, state: Readonly): PickerMenuProps { return { ...super._getPopProps(props, state), + picker: this as unknown as Picker, menu: props.menu, tree: props.tree, checkbox: props.checkbox, diff --git a/lib/picker/src/types/picker-menu-props.ts b/lib/picker/src/types/picker-menu-props.ts index 8ffc4de5b8..e1aaedf9cb 100644 --- a/lib/picker/src/types/picker-menu-props.ts +++ b/lib/picker/src/types/picker-menu-props.ts @@ -3,6 +3,7 @@ import type {TreeOptions} from '@zui/tree'; import type {PickPopProps} from '@zui/pick'; import type {CustomContentType} from '@zui/core'; import type {PickerState} from './picker-state'; +import type {Picker} from '../component/picker'; export interface PickerMenuProps extends PickPopProps { multiple?: boolean | number; @@ -15,6 +16,7 @@ export interface PickerMenuProps extends Pi footer?: CustomContentType; noMatchHint?: string; maxItemsCount?: number; + picker?: Picker; onSelect: (values: string | string[]) => void; onDeselect: (values: string | string[]) => void;