@nayan-ui/react-native
Version:
React Native Component Library for smooth and faster mobile application development.
42 lines (41 loc) • 1.21 kB
JavaScript
import React, { useMemo } from 'react';
import { View } from 'react-native';
import { NPress } from "./NPress.js";
import { NText } from "./NText.js";
import { cn } from "../lib/utils.js";
import { jsx as _jsx, jsxs as _jsxs } from "react-native-css-interop/jsx-runtime";
export const NButton = /*#__PURE__*/React.memo(({
children,
icon,
className,
textClassName,
disabled,
...props
}) => {
const buttonIcon = useMemo(() => {
if (!icon) return null;
if (/*#__PURE__*/React.isValidElement(icon)) {
return icon;
}
const IconComponent = icon;
return _jsx(IconComponent, {
size: 16
});
}, [icon]);
return _jsxs(NPress, {
className: cn('flex-row items-center justify-center rounded border px-5 py-3 bg-primary border-primary active:opacity-90', disabled && 'opacity-60', className),
role: "button",
disabled: disabled,
...props,
children: [buttonIcon && _jsx(View, {
className: "mr-2",
children: buttonIcon
}), _jsx(NText, {
className: cn('text-center font-medium text-white', textClassName),
children: children
})]
});
});
NButton.displayName = 'NButton';
//# sourceMappingURL=NButton.js.map
;