Mobile App design
Run Tests on Branches / Detect Changes (push) Successful in 10s
Run Tests on Branches / Backend Tests (push) Successful in 2m12s
Run Tests on Branches / Frontend Tests (push) Has been skipped
Run Tests on Branches / Frontend Mobile Tests (push) Successful in 1m47s

This commit is contained in:
Ichitux
2026-07-09 13:33:54 +02:00
parent 5f604b11ba
commit 2f36ef685d
32 changed files with 1793 additions and 926 deletions
@@ -1,7 +1,8 @@
import React, { useState } from 'react';
import { View, TextInput, StyleSheet, TouchableOpacity, useWindowDimensions } from 'react-native';
import { Ionicons } from '@expo/vector-icons';
import { colors, spacing, borderRadius } from '../constants/theme';
import { useThemeContext } from './ThemeProvider';
import { spacing, borderRadius } from '../constants/theme';
const TABLET_MIN_WIDTH = 768;
@@ -20,6 +21,7 @@ export function SearchBar({
}: SearchBarProps) {
const { width } = useWindowDimensions();
const isTablet = width >= TABLET_MIN_WIDTH;
const { colors } = useThemeContext();
const [localValue, setLocalValue] = useState(value || '');
const handleChange = (text: string) => {
@@ -38,10 +40,10 @@ export function SearchBar({
};
return (
<View style={[styles.container, isTablet && styles.containerTablet]}>
<View style={[styles.container, isTablet && styles.containerTablet, { backgroundColor: colors.card }]}>
<Ionicons name="search" size={20} color={colors.textSecondary} style={styles.icon} />
<TextInput
style={[styles.input, isTablet && styles.inputTablet]}
style={[styles.input, isTablet && styles.inputTablet, { color: colors.text }]}
placeholder={placeholder}
placeholderTextColor={colors.textSecondary}
value={localValue}
@@ -63,15 +65,12 @@ const styles = StyleSheet.create({
container: {
flexDirection: 'row',
alignItems: 'center',
backgroundColor: colors.card,
borderRadius: borderRadius.lg,
paddingHorizontal: spacing.md,
paddingVertical: spacing.sm + 2,
marginHorizontal: spacing.lg,
marginVertical: spacing.sm,
maxWidth: 420,
alignSelf: 'center',
width: '100%',
width: '80%',
shadowColor: '#000',
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.06,
@@ -88,7 +87,6 @@ const styles = StyleSheet.create({
input: {
flex: 1,
fontSize: 16,
color: colors.text,
paddingVertical: spacing.xs,
},
inputTablet: {