normalize mobile auth and profile ui to theme components
This commit is contained in:
1 parent
7ada05da6a
commit
ed14c57749
7 files changed
+557
-615
No files matched your search
@@ -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,
|
||||
},
|
||||
});
|
||||
Reference in new issue
Block a user