shineout
Version:
Shein 前端组件库
71 lines (70 loc) • 1.95 kB
TypeScript
import { ReactNode, CSSProperties, FC } from 'react';
import { StandardProps } from '../@types/common';
import { GetScrollContextConsumerValue } from '../Scroll/Props';
export declare type ToolPosition = 'top' | 'left' | 'right' | 'bottom';
export declare type TriggerType = 'click' | 'hover';
export interface ContainerOptions {
show: (props: ContainerProps, id: string, innerStyle?: CSSProperties) => void;
hide: () => void;
move: (id: string, pos: Pick<CSSProperties, 'left' | 'right' | 'top' | 'bottom'>) => void;
isCurrent: (id: string) => boolean;
}
export interface ContainerProps extends StandardProps {
/**
* @en use animation
* @cn 弹出是否使用动画
* @default true
*/
animation?: boolean;
/**
* @en The child element can only be a ReactElement.
* @cn 子元素只能为一个 ReactElement
*/
children: ReactNode;
/**
* @en The position of the pop-up layer
* @cn 弹出层位置
* @default 'top'
*/
position?: ToolPosition;
/**
* @inner 内部属性在 scrollContext 中获取
*/
scrollElement?: HTMLElement;
/**
* @inner 内部属性在 scrollContext 中获取
*/
scrollLeft?: number;
/**
* @inner 内部属性在 scrollContext 中获取
*/
scrollTop?: number;
/**
* @en Pop-up type
* @cn 弹出方式
* @default "hover"
*/
trigger?: TriggerType;
/**
* @en make disabled element work
* @cn 使被禁用的元素正常显示提示
* @default false
*/
disabledChild?: boolean;
/**
* @en Pop up texts
* @cn 弹出文字
*/
tip: ReactNode;
/**
* @en Popup delay
* @cn 弹出延迟
* @default 0
*/
delay?: number;
}
/**
* @title Tooltip
*/
export declare type TooltipProps = GetScrollContextConsumerValue<ContainerProps>;
export declare type TooltipType = FC<TooltipProps>;