25 lines
727 B
TypeScript
25 lines
727 B
TypeScript
/**
|
|
* BaseSelect provide some parsed data into context.
|
|
* You can use this hooks to get them.
|
|
*/
|
|
|
|
import type { InjectionKey } from 'vue';
|
|
import { inject, provide } from 'vue';
|
|
import type { BaseSelectProps } from '../BaseSelect';
|
|
|
|
export interface BaseSelectContextProps extends BaseSelectProps {
|
|
triggerOpen: boolean;
|
|
multiple: boolean;
|
|
toggleOpen: (open?: boolean) => void;
|
|
}
|
|
|
|
const BaseSelectContextKey: InjectionKey<BaseSelectContextProps> = Symbol('BaseSelectContextKey');
|
|
|
|
export function useProvideBaseSelectProps(props: BaseSelectContextProps) {
|
|
return provide(BaseSelectContextKey, props);
|
|
}
|
|
|
|
export default function useBaseProps() {
|
|
return inject(BaseSelectContextKey, {} as BaseSelectContextProps);
|
|
}
|