31 lines
785 B
TypeScript
31 lines
785 B
TypeScript
import React from 'react';
|
|
import { TouchableOpacity, Text, ActivityIndicator } from 'react-native';
|
|
import { PrimaryButtonProps } from './PrimaryButton.props';
|
|
import { styles } from './PrimaryButton.styles';
|
|
import { colors } from '@theme';
|
|
|
|
export const PrimaryButton: React.FC<PrimaryButtonProps> = ({
|
|
title,
|
|
isLoading = false,
|
|
disabled = false,
|
|
style,
|
|
...rest
|
|
}) => {
|
|
const isDisabled = disabled || isLoading;
|
|
|
|
return (
|
|
<TouchableOpacity
|
|
style={[styles.button, isDisabled ? styles.disabled : null, style]}
|
|
disabled={isDisabled}
|
|
activeOpacity={0.8}
|
|
{...rest}
|
|
>
|
|
{isLoading ? (
|
|
<ActivityIndicator color={colors.white} />
|
|
) : (
|
|
<Text style={styles.text}>{title}</Text>
|
|
)}
|
|
</TouchableOpacity>
|
|
);
|
|
};
|