@metamask/design-system-react-native
Version:
31 lines • 1.36 kB
JavaScript
function $importDefault(module) {
if (module?.__esModule) {
return module.default;
}
return module;
}
import { useTailwind } from "@metamask/design-system-twrnc-preset";
import $React, { useMemo } from "react";
const React = $importDefault($React);
import { Text as RNText } from "react-native/index.js";
import { FontFamily, FontStyle, TextVariant, TextColor } from "../../types/index.mjs";
import { MAP_TEXT_VARIANT_FONTWEIGHT } from "./Text.constants.mjs";
import { generateTextClassNames } from "./Text.utilities.mjs";
export const Text = ({ variant = TextVariant.BodyMd, color = TextColor.TextDefault, style, children, fontWeight, fontFamily = FontFamily.Default, fontStyle = FontStyle.Normal, twClassName = '', ...props }) => {
const tw = useTailwind();
const finalFontWeight = fontWeight || MAP_TEXT_VARIANT_FONTWEIGHT[variant];
const mergedClassnames = useMemo(() => {
return generateTextClassNames({
variant,
color,
fontWeight: finalFontWeight,
fontFamily,
fontStyle,
twClassName,
});
}, [variant, color, finalFontWeight, fontFamily, fontStyle, twClassName]);
return (<RNText accessibilityRole="text" {...props} style={[tw `${mergedClassnames}`, style]}>
{children}
</RNText>);
};
//# sourceMappingURL=Text.mjs.map