feat: update technical documentation and remove unnecessary logout icon from profile screen

This commit is contained in:
Nils-Johan Gynther
2026-04-24 08:17:48 +02:00
parent 2781b29f5a
commit 931336f048
4 changed files with 34 additions and 9 deletions
+3 -1
View File
@@ -9,7 +9,9 @@
Recipe App är en fullstack-applikation för hantering av hemmavaror, recept och matplanering. Systemet är byggt med Next.js (frontend), NestJS (backend), Prisma ORM och MariaDB. Applikationen är containeriserad med Docker och använder Caddy som reverse proxy. Recipe App är en fullstack-applikation för hantering av hemmavaror, recept och matplanering. Systemet är byggt med Next.js (frontend), NestJS (backend), Prisma ORM och MariaDB. Applikationen är containeriserad med Docker och använder Caddy som reverse proxy.
--- ---
##
Viktigt att komma ihåg vid implementering av nya funktioner och kodning är att inte använda windows sökvägar. Att inte använda c:/dev/recpie-app.... Detta eftersom bygg- och testmiljön är på en remote ubuntu-server. Utveckling sker lokalt och test samt drift
sker på remote server.
--- ---
@@ -96,13 +96,7 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: const Text('Profil'), title: const Text('Profil'),
actions: [ actions: [], // Utloggningsikonen tas bort här eftersom den redan finns i AppShell
IconButton(
onPressed: _logout,
icon: const Icon(Icons.logout),
tooltip: 'Logga ut',
),
],
), ),
body: _isLoading body: _isLoading
? const Center(child: CircularProgressIndicator()) ? const Center(child: CircularProgressIndicator())
@@ -22,6 +22,11 @@ class RecipeDetailScreen extends ConsumerWidget {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: Text(recipeAsync.maybeWhen(data: (d) => d, orElse: () => null)?.title ?? 'Recept'), title: Text(recipeAsync.maybeWhen(data: (d) => d, orElse: () => null)?.title ?? 'Recept'),
leading: IconButton(
icon: const Icon(Icons.arrow_back),
onPressed: () => context.go('/recipes'),
tooltip: 'Tillbaka till receptlistan',
),
actions: recipeAsync.maybeWhen(data: (d) => d, orElse: () => null) == null actions: recipeAsync.maybeWhen(data: (d) => d, orElse: () => null) == null
? [] ? []
: [ : [
@@ -40,7 +45,28 @@ class RecipeDetailScreen extends ConsumerWidget {
message: mapErrorToUserMessage(error, context), message: mapErrorToUserMessage(error, context),
onRetry: () => ref.invalidate(recipeDetailProvider(recipeId)), onRetry: () => ref.invalidate(recipeDetailProvider(recipeId)),
), ),
data: (recipe) => _RecipeBody(recipe: recipe), data: (recipe) => Stack(
children: [
if (recipe.imageUrl != null)
SizedBox(
height: MediaQuery.of(context).size.height * 2 / 3,
child: Image.network(
recipe.imageUrl!,
fit: BoxFit.cover,
width: double.infinity,
alignment: Alignment.topCenter,
),
),
SingleChildScrollView(
child: Column(
children: [
SizedBox(height: MediaQuery.of(context).size.height * 2 / 3),
_RecipeBody(recipe: recipe),
],
),
),
],
),
), ),
); );
} }
+3
View File
@@ -1,4 +1,7 @@
# Teknisk Beskrivning - Flutter Frontend # Teknisk Beskrivning - Flutter Frontend
Viktigt att komma ihåg vid implementering av nya funktioner och kodning är att inte använda windows sökvägar. Att inte använda c:/dev/recpie-app.... Detta eftersom bygg- och testmiljön är på en remote ubuntu-server. Utveckling sker lokalt och test samt drift
sker på remote server.
Detta dokument beskriver vad som ar byggt, arkitekturval och teknisk kontext for Flutter-frontenden. Detta dokument beskriver vad som ar byggt, arkitekturval och teknisk kontext for Flutter-frontenden.
Malgrupp: utvecklare och AI-assistent i denna chat. Malgrupp: utvecklare och AI-assistent i denna chat.