react-native-simi-comps
Version:
Simple Minimal Components for React Native
53 lines • 2.18 kB
JavaScript
import React from "react";
import { Pressable } from "react-native";
import useThemeColor from "../useThemeColor";
import { usePrimaryColor } from "../PrimaryColorContext";
import Icon from "./Icon";
import Text from "./Text";
export default function ActionButton(_a) {
var text = _a.text, icon = _a.icon, onPress = _a.onPress, _b = _a.type, type = _b === void 0 ? "default" : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c, align = _a.align;
var defaultTextColor = useThemeColor("text");
var defaultBorderColor = useThemeColor("border");
var disabledTextColor = useThemeColor("disabledText");
var disabledBgColor = useThemeColor("disabledBg");
var disabledBorderColor = useThemeColor("disabledBorder");
var defaultIconColor = useThemeColor("icon");
var primaryColor = usePrimaryColor();
var backgroundColor = disabled
? disabledBgColor
: type === "primary"
? primaryColor
: "transparent";
var borderColor = disabled
? disabledBorderColor
: type === "primary"
? primaryColor
: defaultBorderColor;
var iconColor = disabled
? disabledTextColor
: type === "primary"
? "#fff"
: defaultIconColor;
var textColor = disabled
? disabledTextColor
: type === "primary"
? "#fff"
: defaultTextColor;
return (React.createElement(Pressable, { onPress: onPress, style: {
borderRadius: 32,
borderWidth: 1,
display: "flex",
flexDirection: "row",
justifyContent: "center",
alignItems: "center",
paddingVertical: 8,
paddingHorizontal: 16,
elevation: 0,
backgroundColor: backgroundColor,
borderColor: borderColor,
alignSelf: align
}, disabled: disabled },
React.createElement(Icon, { name: icon, size: 20, color: iconColor }),
React.createElement(Text, { bold: true, marginLeft: 8, spaced: true, text: text, color: textColor, marginRight: 2, selectable: false })));
}
//# sourceMappingURL=ActionButton.js.map