From 5f4611d65e40eae3ca6191a15f68d69ea5a1c4cb Mon Sep 17 00:00:00 2001
From: Kirill Rogovoy <kirill@rogovoy.me>
Date: Tue, 20 Jul 2021 21:24:52 +0300
Subject: WIP

---
 app_expo/components/text/text.tsx | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 app_expo/components/text/text.tsx

(limited to 'app_expo/components/text/text.tsx')

diff --git a/app_expo/components/text/text.tsx b/app_expo/components/text/text.tsx
new file mode 100644
index 0000000..d9ffc8c
--- /dev/null
+++ b/app_expo/components/text/text.tsx
@@ -0,0 +1,28 @@
+import * as React from 'react'
+import { Text as ReactNativeText } from 'react-native'
+import { presets } from './text.presets'
+import { TextProps } from './text.props'
+import { translate } from '../../i18n'
+
+/**
+ * For your text displaying needs.
+ *
+ * This component is a HOC over the built-in React Native one.
+ */
+export function Text(props: TextProps) {
+  // grab the props
+  const { preset = 'default', tx, txOptions, text, children, style: styleOverride, ...rest } = props
+
+  // figure out which content to use
+  const i18nText = tx && translate(tx, txOptions)
+  const content = i18nText || text || children
+
+  const style = presets[preset] || presets.default
+  const styles = [style, styleOverride]
+
+  return (
+    <ReactNativeText {...rest} style={styles}>
+      {content}
+    </ReactNativeText>
+  )
+}
-- 
cgit v1.2.3

