File size: 1,615 Bytes
5941ac2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | import type { ReactNode } from 'react';
import type { QRProps } from '@rc-component/qrcode';
import type { SemanticClassNamesType, SemanticStylesType } from '../_util/hooks';
import type { Locale } from '../locale';
type ImageSettings = QRProps['imageSettings'];
export type { ImageSettings, QRProps };
export type QRPropsCanvas = QRProps & React.CanvasHTMLAttributes<HTMLCanvasElement>;
export type QRPropsSvg = QRProps & React.SVGAttributes<SVGSVGElement>;
export type QRStatus = 'active' | 'expired' | 'loading' | 'scanned';
export type StatusRenderInfo = {
status: Exclude<QRStatus, 'active'>;
locale: Locale['QRCode'];
onRefresh?: () => void;
};
export type QRCodeSemanticName = keyof QRCodeSemanticClassNames & keyof QRCodeSemanticStyles;
export type QRCodeSemanticClassNames = {
root?: string;
cover?: string;
};
export type QRCodeSemanticStyles = {
root?: React.CSSProperties;
cover?: React.CSSProperties;
};
export type QRCodeClassNamesType = SemanticClassNamesType<QRCodeProps, QRCodeSemanticClassNames>;
export type QRCodeStylesType = SemanticStylesType<QRCodeProps, QRCodeSemanticStyles>;
export interface QRCodeProps extends QRProps, React.HTMLAttributes<HTMLDivElement> {
type?: 'canvas' | 'svg';
className?: string;
rootClassName?: string;
prefixCls?: string;
icon?: string;
iconSize?: number | { width: number; height: number };
bordered?: boolean;
errorLevel?: 'L' | 'M' | 'Q' | 'H';
status?: QRStatus;
onRefresh?: () => void;
statusRender?: (info: StatusRenderInfo) => ReactNode;
classNames?: QRCodeClassNamesType;
styles?: QRCodeStylesType;
}
|