Add welcome page and helpers texts

This commit is contained in:
Sylvain Duchesne
2026-01-26 17:37:50 +01:00
parent 561a0df3fe
commit 9181cf46a0
7 changed files with 708 additions and 622 deletions
+26 -26
View File
@@ -19,7 +19,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 4,
"failed": 0,
"skipped": 3,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Accéder au formulaire de relai d'événement",
@@ -57,7 +57,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 3,
"failed": 0,
"skipped": 0,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Accéder aux détails d'un événement terminé",
@@ -79,7 +79,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 0,
"failed": 0,
"skipped": 5,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Voir les commentaires existants",
@@ -109,7 +109,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 2,
"failed": 0,
"skipped": 4,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Consulter un événement avant inscription",
@@ -143,7 +143,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 0,
"failed": 0,
"skipped": 8,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Consulter un macro-événement",
@@ -185,7 +185,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 4,
"failed": 0,
"skipped": 0,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Accéder aux points de rencontre",
@@ -211,7 +211,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 0,
"failed": 0,
"skipped": 5,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Partager un événement auquel je participe",
@@ -241,7 +241,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 1,
"failed": 0,
"skipped": 3,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Configurer les notifications de nouveaux participants",
@@ -267,7 +267,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 3,
"failed": 0,
"skipped": 2,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Voir les événements à venir sur l'accueil",
@@ -297,7 +297,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 4,
"failed": 0,
"skipped": 1,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Accéder au profil d'un participant",
@@ -327,7 +327,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 3,
"failed": 0,
"skipped": 4,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Accéder à la liste des événements depuis le profil",
@@ -365,7 +365,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 3,
"failed": 0,
"skipped": 2,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Accéder à la liste des inscrits d'un événement",
@@ -395,7 +395,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 5,
"failed": 0,
"skipped": 1,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Accéder à mon profil",
@@ -429,7 +429,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 2,
"failed": 0,
"skipped": 3,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Accéder aux paramètres de profil",
@@ -459,7 +459,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 5,
"failed": 0,
"skipped": 0,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Accéder au partage de profil",
@@ -489,7 +489,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 5,
"failed": 0,
"skipped": 0,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Accéder au partage depuis le profil",
@@ -519,7 +519,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 2,
"failed": 0,
"skipped": 1,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Accéder aux paramètres de notification",
@@ -541,7 +541,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 1,
"failed": 0,
"skipped": 2,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Accéder aux paramètres de notification",
@@ -563,7 +563,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 3,
"failed": 0,
"skipped": 1,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Accéder au formulaire de relai d'événement",
@@ -589,7 +589,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 4,
"failed": 0,
"skipped": 1,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Accéder au profil pour voir la photo",
@@ -619,7 +619,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 0,
"failed": 0,
"skipped": 5,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Accéder aux détails d'un événement terminé",
@@ -649,7 +649,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 0,
"failed": 0,
"skipped": 3,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Accéder au bilan consolidé",
@@ -671,7 +671,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 0,
"failed": 0,
"skipped": 7,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Accéder à la création d'atelier",
@@ -709,7 +709,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 0,
"failed": 0,
"skipped": 5,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Accéder à la zone de notes personnelles",
@@ -739,7 +739,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 0,
"failed": 0,
"skipped": 5,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Voir les commentaires existants d'un atelier",
@@ -769,7 +769,7 @@ const rawResults: RawFeatureTestStatus[] = [
"passed": 0,
"failed": 0,
"skipped": 4,
"lastRun": "2026-01-26T16:25:14.386Z",
"lastRun": "2026-01-26T16:36:17.093Z",
"scenarios": [
{
"name": "Voir les ateliers d'un événement",
+13
View File
@@ -51,6 +51,19 @@ export function EventsScreen({ navigate }: ScreenProps) {
{/* Content */}
<div style={{ flex: 1, padding: 16, overflow: 'auto' }}>
{/* Helper text */}
<div style={{
background: 'var(--sketch-light-gray)',
padding: 12,
borderRadius: 8,
marginBottom: 16,
}}>
<Text style={{ margin: 0, fontSize: 13, color: 'var(--sketch-gray)', lineHeight: 1.5 }}>
Événements relayés par vos contacts. Explorez, participez, et relayez
à votre tour pour faire grandir votre réseau.
</Text>
</div>
<EventCard
title="Résidence Reconnexion"
date="Lun. 16 - Ven. 20 fév."
+13
View File
@@ -30,6 +30,19 @@ export function HomeScreen({ navigate }: ScreenProps) {
{/* Content */}
<div style={{ flex: 1, padding: 16, overflow: 'auto' }}>
{/* Helper text */}
<div style={{
background: 'var(--sketch-light-gray)',
padding: 12,
borderRadius: 8,
marginBottom: 16,
}}>
<Text style={{ margin: 0, fontSize: 13, color: 'var(--sketch-gray)', lineHeight: 1.5 }}>
Voici les événements auxquels vous participez. Retrouvez les infos pratiques
et les autres participants.
</Text>
</div>
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginBottom: 16 }}>
<Text style={{ margin: 0, fontWeight: 'bold' }}>Mes événements à venir</Text>
<Text
+58
View File
@@ -0,0 +1,58 @@
import React from 'react';
import { Button, Title, Text } from '../components/sketchy';
import type { ScreenProps } from './index';
export function WelcomeScreen({ navigate }: ScreenProps) {
return (
<div style={{ padding: 24, display: 'flex', flexDirection: 'column', height: '100%' }}>
<div style={{ flex: 1, display: 'flex', flexDirection: 'column', justifyContent: 'center' }}>
<Title style={{ textAlign: 'center', fontSize: 32, marginBottom: 24 }}>Festipod</Title>
<Text style={{ textAlign: 'center', fontSize: 18, marginBottom: 32, lineHeight: 1.5 }}>
Découvrez des événements près de chez vous, relayés par des gens de confiance.
</Text>
<div style={{
background: 'var(--sketch-light-gray)',
padding: 16,
borderRadius: 8,
marginBottom: 24,
}}>
<Text style={{ margin: 0, fontSize: 14, lineHeight: 1.6, color: 'var(--sketch-gray)' }}>
Festipod est un projet collaboratif en construction. Nous croyons qu'on découvre
les meilleurs événements grâce au bouche-à-oreille, pas via des algorithmes.
Rejoignez les premiers utilisateurs et aidez-nous à créer une alternative
humaine aux réseaux sociaux traditionnels.
</Text>
</div>
<div style={{ display: 'flex', flexDirection: 'column', gap: 8, marginBottom: 24 }}>
<div style={{ display: 'flex', alignItems: 'center', gap: 12 }}>
<span style={{ fontSize: 20 }}>🎪</span>
<Text style={{ margin: 0, fontSize: 14 }}>Relayez des événements à votre réseau</Text>
</div>
<div style={{ display: 'flex', alignItems: 'center', gap: 12 }}>
<span style={{ fontSize: 20 }}>🤝</span>
<Text style={{ margin: 0, fontSize: 14 }}>Rencontrez des personnes partageant vos centres d'intérêt</Text>
</div>
<div style={{ display: 'flex', alignItems: 'center', gap: 12 }}>
<span style={{ fontSize: 20 }}>🔒</span>
<Text style={{ margin: 0, fontSize: 14 }}>Vos données restent les vôtres</Text>
</div>
</div>
<Button variant="primary" onClick={() => navigate('login')} style={{ marginBottom: 12 }}>
Rejoindre la communauté
</Button>
<Text style={{ textAlign: 'center', fontSize: 13, color: 'var(--sketch-gray)' }}>
Déjà membre ? Se connecter
</Text>
</div>
<Text style={{ textAlign: 'center', fontSize: 12, color: 'var(--sketch-gray)' }}>
Version beta - 127 membres actifs
</Text>
</div>
);
}
+2
View File
@@ -12,6 +12,7 @@ import { ParticipantsListScreen } from './ParticipantsListScreen';
import { MeetingPointsScreen } from './MeetingPointsScreen';
import { FriendsListScreen } from './FriendsListScreen';
import { ShareProfileScreen } from './ShareProfileScreen';
import { WelcomeScreen } from './WelcomeScreen';
export interface Screen {
id: string;
@@ -34,6 +35,7 @@ export const screenGroups: ScreenGroup[] = [
id: 'home',
name: 'Accueil',
screens: [
{ id: 'welcome', name: 'Bienvenue', component: WelcomeScreen },
{ id: 'home', name: 'Accueil', component: HomeScreen },
],
},