UNPKG

@ray-js/smart-ui

Version:

轻量、可靠的智能小程序 UI 组件库

144 lines (143 loc) 3.35 kB
/// <reference types="react" /> import { TouchPositionDetail, SmartBaseExternalClassName, SmartBaseLoadingExternalClassName, SmartComponent, SmartEventHandler } from '../base'; export interface SmartImageProps { /** * 图片链接 */ src?: string; /** * 图片填充模式 * * `contain` 保持宽高缩放图片,使图片的长边能完全显示出来 * * `cover` 保持宽高缩放图片,使图片的短边能完全显示出来,裁剪长边 * * `fill`拉伸图片,使图片填满元素 * * `widthFix`缩放模式,宽度不变,高度自动变化,保持原图宽高比不变 * * `heightFix` 缩放模式,高度不变,宽度自动变化,保持原图宽高比不变 * * `none` 保持图片原有尺寸 * * @default 'fill' */ fit?: 'contain' | 'cover' | 'fill' | 'widthFix' | 'heightFix' | 'none'; /** * 替代文本 */ alt?: string; /** * 宽度,默认单位为px */ width?: string | number; /** * 高度,默认单位为px */ height?: string | number; /** * 圆角大小,默认单位为px * * @default 0 */ radius?: string | number; /** * 是否显示为圆形 * * @default false */ round?: boolean; /** * 是否懒加载 * * @default false */ lazyLoad?: boolean; /** * 是否展示图片加载失败提示 * * @default true */ showError?: boolean; /** * 是否展示图片加载中提示 * * @default true */ showLoading?: boolean; /** * 是否使用`error`插槽 * * @default false */ useErrorSlot?: boolean; /** * 是否使用`loading`插槽 * * @default false */ useLoadingSlot?: boolean; /** * 是否开启长按图片显示识别小程序码菜单 * * @default false */ showMenuByLongpress?: boolean; /** * 改变图片颜色 通过css mask属性实现 * * @default '' */ tintColor?: string; } export interface SmartImageLoadEventDetail { width: number; height: number; } export interface SmartImageErrorEventDetail { errMsg: string; } export interface SmartImageEvents { /** * 点击图片时触发 */ onClick?: SmartEventHandler<TouchPositionDetail>; /** * 图片加载完毕时触发 */ onLoad?: SmartEventHandler<SmartImageLoadEventDetail>; /** * 图片加载失败时触发 */ onError?: SmartEventHandler<SmartImageErrorEventDetail>; } export interface SmartImageExternalClassName extends SmartBaseExternalClassName, SmartBaseLoadingExternalClassName { /** * 图片样式类 */ imageClass?: string; /** * `error` 样式类 */ errorClass?: string; } export interface SmartImageSlot { /** * 自定义底部内容 */ children?: React.ReactNode; /** * Empty Slot */ slot?: { /** * loading 图标 */ loading?: React.ReactNode; /** * error 图标 */ error?: React.ReactNode; }; } export type SmartImage = SmartComponent<SmartImageProps, SmartImageEvents, SmartImageExternalClassName, SmartImageSlot>;