update home UI tweaks + add tab labels + vineye-admin setup + gitignore

- SearchHeader: settings icon, smaller brand title, rounded buttons
- BottomTabNavigator: re-enable tab labels, adjust FAB offset
- homeheader: remove bottom margin
- Add .claude config, root package.json, updated .gitignore

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Yanis 2026-04-03 11:20:51 +02:00
parent af299e816a
commit 269cc55c77
10 changed files with 2852 additions and 25 deletions

10
.claude/memory/MEMORY.md Normal file
View file

@ -0,0 +1,10 @@
# MEMORY — Projet
## Vue d'ensemble
<!-- Remplir au fil des sessions -->
## Décisions techniques importantes
<!-- Patterns, choix d'architecture, gotchas découverts -->
## État actuel
<!-- Ce qui est fait, ce qui reste à faire -->

View file

@ -0,0 +1,29 @@
# Index des fonctionnalités — ce projet
> Mis à jour automatiquement. Compléter les README.md de chaque feature après implémentation.
> **Règle** : Avant de travailler sur une feature → lire son README. Après → le mettre à jour.
## Fonctionnalités détectées
| Feature | Documentation | Status | Dernière MAJ |
|---------|--------------|--------|-------------|
## Fichiers critiques globaux
| Fichier | Rôle |
|---------|------|
| `CLAUDE.md` | Contexte projet chargé automatiquement |
| `.claude/notes/_features.md` | Cet index |
| `.claude/rules/` | Rules spécifiques au projet |
## Stack détectée
## Convention de mise à jour
Après chaque feature implémentée :
1. Ouvrir `.claude/notes/<feature>/README.md`
2. Compléter : description, fichiers clés, endpoints, gotchas
3. Mettre à jour le status dans cet index (🟡 → ✅)

11
.gitignore vendored
View file

@ -24,5 +24,12 @@ VinEye/dist/
VinEye/ios/ VinEye/ios/
VinEye/android/ VinEye/android/
# dependances # Virtual environment
node_modules/ venv/
# Dependencies
node_modules/
# vineye-admin
vineye-admin/node_modules/
vineye-admin/.next/

44
CLAUDE.md Normal file
View file

@ -0,0 +1,44 @@
# Projet
> Généré par project-init. Compléter avec les spécificités du projet.
> **Limite : 200 lignes.** Aller à l'essentiel — les détails sont dans `.claude/notes/`.
---
## Stack
| Couche | Technologies |
|--------|-------------|
| Frontend | — |
| Backend | — |
| ORM | — |
| Auth | JWT (access + refresh tokens) |
---
## Architecture
```
docs/ venv/ VinEye/
```
---
## Fonctionnalités clés
> Voir `.claude/notes/_features.md` pour le détail de chaque feature.
---
## Conventions
- Package manager : **pnpm**
- Composants : shadcn/ui → Magic UI → custom (dans cet ordre)
- Server Components par défaut, `"use client"` uniquement si nécessaire
- Max 300 lignes par fichier
---
## À compléter
- [ ] Design tokens / palette couleurs
- [ ] Variables d'environnement nécessaires
- [ ] URLs de déploiement
- [ ] Spécificités métier importantes

View file

@ -38,10 +38,10 @@ export default function SearchHeader() {
<TouchableOpacity <TouchableOpacity
style={styles.notifButton} style={styles.notifButton}
activeOpacity={0.7} activeOpacity={0.7}
onPress={() => navigation.navigate("Profile")} onPress={() => navigation.navigate("Settings")}
> >
<Ionicons <Ionicons
name="person-outline" name="settings-outline"
size={22} size={22}
color={colors.neutral[800]} color={colors.neutral[800]}
/> />
@ -65,13 +65,13 @@ const styles = StyleSheet.create({
flex: 1, flex: 1,
}, },
brandTitle: { brandTitle: {
fontSize: 32, fontSize: 24,
fontWeight: "900", // Très gras pour l'identité fontWeight: "900", // Très gras pour l'identité
color: colors.primary[900], color: colors.primary[900],
letterSpacing: -1, // Look "Logo" letterSpacing: -1, // Look "Logo"
}, },
greetingText: { greetingText: {
fontSize: 10, fontSize: 14,
fontWeight: "500", fontWeight: "500",
color: colors.neutral[500], color: colors.neutral[500],
marginTop: -2, marginTop: -2,
@ -81,27 +81,16 @@ const styles = StyleSheet.create({
backgroundColor: "#FFFFFF", backgroundColor: "#FFFFFF",
borderWidth: 1, borderWidth: 1,
borderColor: "#F0F0F0", borderColor: "#F0F0F0",
borderRadius: 16, borderRadius: 32,
}, },
notifButton: { notifButton: {
height: 48, height: 48,
width: 48, width: 48,
alignItems: "center", alignItems: "center",
justifyContent: "center", justifyContent: "center",
borderRadius: 16, borderRadius: 32,
backgroundColor: "#FFFFFF",
...Platform.select({
ios: {
shadowColor: "#000",
shadowOffset: { width: 0, height: 4 },
shadowOpacity: 0.05,
shadowRadius: 10,
},
android: {
elevation: 3,
},
}),
}, },
notifBadge: { notifBadge: {
position: "absolute", position: "absolute",

View file

@ -59,6 +59,7 @@ const styles = StyleSheet.create({
input: { input: {
flex: 1, flex: 1,
fontSize: 15, fontSize: 15,
fontWeight: "500", fontWeight: "500",
color: colors.neutral[900], color: colors.neutral[900],
// Évite le décalage de texte sur Android // Évite le décalage de texte sur Android

View file

@ -50,7 +50,7 @@ const styles = StyleSheet.create({
flexDirection: "row", flexDirection: "row",
alignItems: "center", alignItems: "center",
justifyContent: "space-between", justifyContent: "space-between",
marginBottom: 16, // Espace constant sous le header
paddingHorizontal: 4, paddingHorizontal: 4,
}, },
title: { title: {

View file

@ -82,7 +82,7 @@ function MyCustomTabBar({ state, descriptors, navigation }: any) {
backgroundColor: colors.primary[800], backgroundColor: colors.primary[800],
alignItems: "center", alignItems: "center",
justifyContent: "center", justifyContent: "center",
marginTop: -28, marginTop: -25,
shadowColor: colors.primary[900], shadowColor: colors.primary[900],
shadowOffset: { width: 0, height: 4 }, shadowOffset: { width: 0, height: 4 },
shadowOpacity: 0.3, shadowOpacity: 0.3,
@ -122,7 +122,7 @@ function MyCustomTabBar({ state, descriptors, navigation }: any) {
strokeWidth={isFocused ? 2.5 : 1.8} strokeWidth={isFocused ? 2.5 : 1.8}
/> />
)} )}
{/* <Text <Text
numberOfLines={1} numberOfLines={1}
style={{ style={{
fontSize: 11, fontSize: 11,
@ -132,7 +132,7 @@ function MyCustomTabBar({ state, descriptors, navigation }: any) {
}} }}
> >
{label} {label}
</Text> */} </Text>
</TouchableOpacity> </TouchableOpacity>
); );
})} })}

6
package.json Normal file
View file

@ -0,0 +1,6 @@
{
"dependencies": {
"lucide-react": "^1.7.0",
"lucide-react-native": "^1.7.0"
}
}

2741
pnpm-lock.yaml Normal file

File diff suppressed because it is too large Load diff