import * as React from 'react';
import { StyleSheet, Text, TextStyle, View, ViewStyle } from 'react-native';
import base from '../../_styles/themes/default.basic';
import MDIndicator from './indicator';
export type MDActivityIndicatorType = 'roller' | 'spinner' | 'carousel';
export type MDActivityIndicatorColorType = 'dark' | 'light';
export interface IMDActivityIndicatorProps {
style?: ViewStyle;
type?: MDActivityIndicatorType;
column?: boolean; // 是否垂直排列, default is false
color?: string | MDActivityIndicatorColorType;
size?: number;
textColor?: string;
textSize?: number;
textGap?: number;
animating?: boolean;
}
export default class MDActivityIndicator extends React.Component<
IMDActivityIndicatorProps
> {
public static defaultProps = {
type: 'roller',
color: base.colors.primary,
column: false, // 是否垂直排列, default is false
size: 35,
textColor: '#aaa',
textSize: 35,
textGap: 8,
animating: true,
};
public render () {
const { style, type, color: userColor, size, column, animating } = this.props;
let count = 1;
let color = userColor;
if (color === 'dark') {
color = 'black';
} else if (color === 'light') {
color = 'white';
}
if (type === 'carousel') {
count = 3;
} else if (type === 'spinner') {
count = 12;
}
return (
{this.renderChildren()}
);
}
private renderChildren () {
const { textColor, textSize, children, column, textGap } = this.props;
if (!children) return null;
if (typeof children === 'string') {
return (
{children}
);
} else {
return {children} ;
}
}
}