UNPKG

@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
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; }