123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- import React from 'react';
- /**
- * 图片 item 类型
- */
- export type dataType = {
- // 唯一标识
- key?: string;
- // 图片地址
- src: string;
- // 原触发 ref
- originRef: HTMLElement | null;
- // 图片介绍
- intro?: React.ReactNode;
- };
- type overlayRenderProps = {
- // 图片列表
- images: dataType[];
- // 图片当前索引
- index: number;
- // 可见
- visible: boolean;
- // 关闭事件
- onClose: (evt?: React.MouseEvent | React.TouchEvent) => void;
- // 索引改变回调
- onIndexChange: (photoIndex: number) => void;
- // 覆盖物可见度
- overlayVisible: boolean;
- };
- export interface IPhotoProviderBase {
- // 背景可点击关闭,默认 true
- maskClosable?: boolean;
- // 图片点击可关闭,默认 false
- photoClosable?: boolean;
- // 导航条 visible,默认 true
- bannerVisible?: boolean;
- // 简介 visible,默认 true
- introVisible?: boolean;
- // 自定义渲染
- overlayRender?: (overlayProps: overlayRenderProps) => React.ReactNode;
- // className
- className?: string;
- // 遮罩 className
- maskClassName?: string;
- // 图片容器 className
- viewClassName?: string;
- // 图片 className
- imageClassName?: string;
- // 自定义 loading
- loadingElement?: JSX.Element;
- // 加载失败 Element
- brokenElement?: JSX.Element;
- }
- export type ReachMoveFunction = (
- reachState: ReachTypeEnum,
- clientX: number,
- clientY: number,
- scale?: number,
- ) => void;
- export type ReachFunction = (clientX: number, clientY: number) => void;
- export type PhotoTapFunction = (clientX: number, clientY: number) => void;
- /**
- * 边缘超出状态
- */
- export enum CloseEdgeEnum {
- Normal, // 正常滑动
- Small, // 小于屏幕宽度
- Before, // 抵触左边/上边
- After, // 抵触右边/下边
- }
- /**
- * 边缘触发状态
- */
- export enum ReachTypeEnum {
- Normal, // 未触发
- XReach, // x 轴
- YReach, // y 轴
- }
- /**
- * 初始响应状态
- */
- export enum TouchStartEnum {
- Normal, // 未触发
- X, // X 轴优先
- YPush, // Y 轴往上
- YPull, // Y 轴往下
- }
- /**
- * 动画类型
- */
- export enum ShowAnimateEnum {
- None, // 无
- In, // 进入
- Out, // 离开
- }
- /**
- * 触发源位置
- */
- export type OriginRectType = {
- clientX: number;
- clientY: number;
- } | undefined;
|