summaryrefslogtreecommitdiff
path: root/app/components/form-row/form-row.presets.ts
diff options
context:
space:
mode:
Diffstat (limited to 'app/components/form-row/form-row.presets.ts')
-rw-r--r--app/components/form-row/form-row.presets.ts71
1 files changed, 71 insertions, 0 deletions
diff --git a/app/components/form-row/form-row.presets.ts b/app/components/form-row/form-row.presets.ts
new file mode 100644
index 0000000..7c10294
--- /dev/null
+++ b/app/components/form-row/form-row.presets.ts
@@ -0,0 +1,71 @@
+import { ViewStyle } from "react-native"
+import { color, spacing } from "../../theme"
+
+/**
+ * The size of the border radius.
+ */
+const RADIUS = 8
+
+/**
+ * The default style of the container.
+ */
+const ROOT: ViewStyle = {
+ borderWidth: 1,
+ borderColor: color.line,
+ padding: spacing[2],
+}
+
+/**
+ * What each of the presets look like.
+ */
+export const PRESETS = {
+ /**
+ * Rounded borders on the the top only.
+ */
+ top: {
+ ...ROOT,
+ borderTopLeftRadius: RADIUS,
+ borderTopRightRadius: RADIUS,
+ borderBottomWidth: 0,
+ },
+ /**
+ * No rounded borders.
+ */
+ middle: {
+ ...ROOT,
+ borderBottomWidth: 0,
+ },
+ /**
+ * Rounded borders on the bottom.
+ */
+ bottom: {
+ ...ROOT,
+ borderBottomLeftRadius: RADIUS,
+ borderBottomRightRadius: RADIUS,
+ },
+ /**
+ * Rounded borders everywhere.
+ */
+ soloRound: {
+ ...ROOT,
+ borderRadius: RADIUS,
+ },
+ /**
+ * Straight borders everywhere.
+ */
+ soloStraight: {
+ ...ROOT,
+ },
+ /**
+ * Transparent borders useful to keep things lined up.
+ */
+ clear: {
+ ...ROOT,
+ borderColor: color.transparent,
+ },
+}
+
+/**
+ * The names of the presets supported by FormRow.
+ */
+export type FormRowPresets = keyof typeof PRESETS