normalize mobile auth and profile ui to theme components

This commit is contained in:
dimitar committed 2026-03-29 20:07:33 +02:00
1 parent 7ada05da6a
commit ed14c57749
7 files changed
+557 -615

No files matched your search

+38 -18
View File
@@ -1,5 +1,12 @@
import React from "react";
import { View, Text, TextInput, StyleSheet, TextInputProps } from "react-native";
import {
View,
Text,
TextInput,
StyleSheet,
TextInputProps,
} from "react-native";
import { useTheme } from "../contexts/ThemeContext";
interface InputProps extends TextInputProps {
label: string;
@@ -7,15 +14,39 @@ interface InputProps extends TextInputProps {
}
export function Input({ label, error, style, ...props }: InputProps) {
const { colors, typography } = useTheme();
return (
<View style={styles.container}>
<Text style={styles.label}>{label}</Text>
<Text
style={[typography.h4, { color: colors.textPrimary }, styles.label]}
>
{label}
</Text>
<TextInput
style={[styles.input, error && styles.inputError, style]}
placeholderTextColor="#9ca3af"
style={[
styles.input,
{
backgroundColor: colors.surface,
borderColor: error ? colors.danger : colors.border,
color: colors.textPrimary,
},
style,
]}
placeholderTextColor={colors.textTertiary}
{...props}
/>
{error && <Text style={styles.errorText}>{error}</Text>}
{error && (
<Text
style={[
typography.caption,
styles.errorText,
{ color: colors.danger },
]}
>
{error}
</Text>
)}
</View>
);
}
@@ -25,27 +56,16 @@ const styles = StyleSheet.create({
marginBottom: 16,
},
label: {
fontSize: 14,
fontWeight: "600",
color: "#374151",
marginBottom: 8,
},
input: {
backgroundColor: "white",
borderWidth: 1,
borderColor: "#e5e7eb",
borderRadius: 8,
borderRadius: 12,
paddingHorizontal: 16,
paddingVertical: 12,
paddingVertical: 14,
fontSize: 16,
color: "#1f2937",
},
inputError: {
borderColor: "#ef4444",
},
errorText: {
fontSize: 12,
color: "#ef4444",
marginTop: 4,
},
});