@fruits-chain/react-native-xiaoshu
Version:
🌈 React Native UI library
164 lines (136 loc) • 2.62 kB
text/typescript
import type { ReactNode } from 'react'
import type {
StyleProp,
ViewStyle,
TextStyle,
ViewProps,
FlexStyle,
ColorValue,
} from 'react-native'
import type { DatePickerColumnMode } from '../date-picker-view/interface'
export interface DescriptionContextState {
/**
* label 和 text 之间是否有冒号
* @default true
*/
colon?: boolean
/**
* 自定义内容样式
*/
contentStyle?: StyleProp<ViewStyle>
/**
* 自定义内容文案样式
*/
contentTextStyle?: StyleProp<TextStyle>
/**
* 自定义标签样式
*/
labelStyle?: StyleProp<ViewStyle>
/**
* 自定义标签文案样式
*/
labelTextStyle?: StyleProp<TextStyle>
/**
* 标签文案宽
*/
labelWidth?: number
/**
* 描述布局
* @default 'horizontal'
*/
layout?: 'horizontal' | 'vertical'
/**
* 设置列表的大小
* @default 'm'
*/
size?: 's' | 'm' | 'l'
/**
* 右侧文案显示几行
*/
numberOfLines?: number
/**
* 主轴对齐方式
*/
justify?: FlexStyle['justifyContent']
/**
* 交叉轴对齐方式
*/
align?: FlexStyle['alignItems']
}
export interface DescriptionGroupProps
extends DescriptionContextState,
ViewProps {}
export interface DescriptionProps extends DescriptionContextState, ViewProps {
/**
* 内容的描述
*/
label?: string
/**
* 内容
*/
text?: string
/**
* 是否隐藏
* @default false
*/
hidden?: boolean
/**
* 是否加粗显示内容,样式优先级低于自定义样式
* @default false
*/
bold?: boolean
/**
* 字体颜色,样式优先级低于自定义样式
*/
color?: ColorValue
/**
* 内容前置标签
*/
addonBefore?: ReactNode
/**
* 内容后置标签
*/
addonAfter?: ReactNode
/**
* 自定义渲染描述
*/
renderLabel?: (colon: string) => ReactNode
/**
* 自定义渲染函数
*/
render?: (
context: ReactNode,
addonBefore: ReactNode,
addonAfter: ReactNode,
) => ReactNode
}
export interface DescriptionThousandProps
extends Omit<DescriptionProps, 'text'> {
/**
* 显示的数字
*/
text?: number
}
export interface DescriptionDateProps extends Omit<DescriptionProps, 'text'> {
/**
* 显示的时间
*/
text?: Date
/**
* 时间格式
* @default 'Y-m'
*/
mode?: DatePickerColumnMode
}
export interface DescriptionDateRangeProps
extends Omit<DescriptionDateProps, 'text'> {
/**
* 显示的时间
*/
text?: [Date, Date]
/**
* 时间分割字符串
* @default '至'
*/
split?: string
}