@douyinfe/semi-ui
Version:
A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.
102 lines (101 loc) • 4.88 kB
TypeScript
import React from "react";
import BaseComponent from "../_base/baseComponent";
import { PreviewInnerProps, PreviewInnerStates } from "./interface";
import PropTypes from "prop-types";
import PreviewImage from "./previewImage";
import PreviewInnerFoundation, { PreviewInnerAdapter, RatioType } from '@douyinfe/semi-foundation/lib/cjs/image/previewInnerFoundation';
import { PreviewContextProps } from "./previewContext";
export default class PreviewInner extends BaseComponent<PreviewInnerProps, PreviewInnerStates> {
static contextType: React.Context<PreviewContextProps>;
static propTypes: {
style: PropTypes.Requireable<object>;
className: PropTypes.Requireable<string>;
visible: PropTypes.Requireable<boolean>;
src: PropTypes.Requireable<NonNullable<string | any[]>>;
currentIndex: PropTypes.Requireable<number>;
defaultCurrentIndex: PropTypes.Requireable<number>;
defaultVisible: PropTypes.Requireable<boolean>;
maskClosable: PropTypes.Requireable<boolean>;
closable: PropTypes.Requireable<boolean>;
zoomStep: PropTypes.Requireable<number>;
infinite: PropTypes.Requireable<boolean>;
showTooltip: PropTypes.Requireable<boolean>;
closeOnEsc: PropTypes.Requireable<boolean>;
prevTip: PropTypes.Requireable<string>;
nextTip: PropTypes.Requireable<string>;
zoomInTip: PropTypes.Requireable<string>;
zoomOutTip: PropTypes.Requireable<string>;
downloadTip: PropTypes.Requireable<string>;
adaptiveTip: PropTypes.Requireable<string>;
originTip: PropTypes.Requireable<string>;
lazyLoad: PropTypes.Requireable<boolean>;
preLoad: PropTypes.Requireable<boolean>;
preLoadGap: PropTypes.Requireable<number>;
disableDownload: PropTypes.Requireable<boolean>;
viewerVisibleDelay: PropTypes.Requireable<number>;
zIndex: PropTypes.Requireable<number>;
maxZoom: PropTypes.Requireable<number>;
minZoom: PropTypes.Requireable<number>;
renderHeader: PropTypes.Requireable<(...args: any[]) => any>;
renderPreviewMenu: PropTypes.Requireable<(...args: any[]) => any>;
getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>;
onVisibleChange: PropTypes.Requireable<(...args: any[]) => any>;
onChange: PropTypes.Requireable<(...args: any[]) => any>;
onClose: PropTypes.Requireable<(...args: any[]) => any>;
onZoomIn: PropTypes.Requireable<(...args: any[]) => any>;
onZoomOut: PropTypes.Requireable<(...args: any[]) => any>;
onPrev: PropTypes.Requireable<(...args: any[]) => any>;
onNext: PropTypes.Requireable<(...args: any[]) => any>;
onDownload: PropTypes.Requireable<(...args: any[]) => any>;
onRatioChange: PropTypes.Requireable<(...args: any[]) => any>;
onRotateLeft: PropTypes.Requireable<(...args: any[]) => any>;
};
static defaultProps: {
showTooltip: boolean;
zoomStep: number;
infinite: boolean;
closeOnEsc: boolean;
lazyLoad: boolean;
preLoad: boolean;
preLoadGap: number;
zIndex: number;
maskClosable: boolean;
viewerVisibleDelay: number;
maxZoom: number;
minZoom: number;
};
private bodyOverflow;
private scrollBarWidth;
private originBodyWidth;
get adapter(): PreviewInnerAdapter<PreviewInnerProps, PreviewInnerStates>;
context: PreviewContextProps;
foundation: PreviewInnerFoundation;
imageWrapRef: React.RefObject<HTMLDivElement>;
headerRef: React.RefObject<HTMLElement>;
imageRef: React.RefObject<PreviewImage>;
footerRef: React.RefObject<HTMLElement>;
leftIconRef: React.RefObject<HTMLDivElement>;
rightIconRef: React.RefObject<HTMLDivElement>;
constructor(props: PreviewInnerProps);
static getDerivedStateFromProps(props: PreviewInnerProps, state: PreviewInnerStates): Partial<PreviewInnerStates>;
componentDidMount(): void;
componentDidUpdate(prevProps: PreviewInnerProps, prevState: PreviewInnerStates): void;
componentWillUnmount(): void;
isInGroup(): boolean;
viewVisibleChange: () => void;
handleSwitchImage: (direction: string) => void;
handleDownload: () => void;
handlePreviewClose: (e: React.MouseEvent<HTMLElement>) => void;
handleAdjustRatio: (type: RatioType) => void;
handleRotateImage: (direction: any) => void;
handleZoomImage: (newZoom: number, notify?: boolean) => void;
handleMouseUp: (e: any) => void;
handleMouseMove: (e: any) => void;
handleKeyDown: (e: KeyboardEvent) => void;
onImageError: () => void;
onImageLoad: (src: any) => void;
handleMouseDown: (e: any) => void;
handleWheel: (e: any) => void;
registryImageWrapRef: (ref: any) => void;
render(): React.JSX.Element;
}