You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ant-design-vue/components/vc-tree-select/TreeSelectContext.ts

27 lines
888 B

import type { InjectionKey } from 'vue';
import { provide, inject } from 'vue';
import type { ExpandAction } from '../vc-tree/props';
import type { DefaultOptionType, InternalFieldName, OnInternalSelect } from './TreeSelect';
export interface TreeSelectContextProps {
virtual?: boolean;
dropdownMatchSelectWidth?: boolean | number;
listHeight: number;
listItemHeight: number;
treeData: DefaultOptionType[];
fieldNames: InternalFieldName;
onSelect: OnInternalSelect;
treeExpandAction?: ExpandAction;
}
const TreeSelectContextPropsKey: InjectionKey<TreeSelectContextProps> = Symbol(
'TreeSelectContextPropsKey',
);
export function useProvideSelectContext(props: TreeSelectContextProps) {
return provide(TreeSelectContextPropsKey, props);
}
export default function useInjectSelectContext() {
return inject(TreeSelectContextPropsKey, {} as TreeSelectContextProps);
}