feat: major ui/ux improvements

This commit is contained in:
gasaichandesu
2025-08-30 21:46:16 +04:00
parent 58d7808a8d
commit 4b1cecbefd
20 changed files with 440 additions and 261 deletions
+64 -36
View File
@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:moonwell_launcher/app/home_screen/bloc/home_screen_bloc.dart';
import 'package:moonwell_launcher/app/home_screen/left_pane.dart';
import 'package:moonwell_launcher/app/home_screen/home_screen_content.dart';
import 'package:moonwell_launcher/app/theme/mw_theme.dart';
import 'package:moonwell_launcher/features/downloader/application/download_manager.dart';
import 'package:moonwell_launcher/features/preferences/domain/repositories/preferences_repository.dart';
@@ -19,46 +19,74 @@ class HomeScreen extends StatelessWidget {
downloadManager: getIt<DownloadManager>(),
preferencesRepository: getIt<PreferencesRepository>(),
),
child: Builder(
builder: (context) {
return Scaffold(
body: Container(
decoration: const BoxDecoration(
// subtle vignette for “night” vibe
gradient: RadialGradient(
center: Alignment(0, -0.5),
radius: 1.2,
colors: [MWColors.deepNavy, MWColors.abyss],
),
child: BlocConsumer<HomeScreenBloc, HomeScreenState>(
listener: (context, state) {
if (state is HomeScreenOutputDirSelectionState) {
showDialog(
context: context,
builder: (dialogContext) => AlertDialog(
title: Text('Alert'),
content: Text('Please select client location.'),
actions: [
ElevatedButton.icon(
icon: const Icon(Icons.folder_open),
onPressed: () => context.read<HomeScreenBloc>().add(
HomeScreenOutputDirRequested(),
),
label: Text('Select directory'),
),
],
),
child: Center(
child: Padding(
padding: EdgeInsets.all(24.0),
child: Row(
children: [
Expanded(
child: LeftPane(
title: Text(
'MoonWell',
style: theme.textTheme.headlineLarge,
),
progress: 0.0,
isDownloading: false,
kbps: 0.0,
eta: Duration.zero,
onStart: () {
context.read<HomeScreenBloc>().add(
HomeScreenDownloadRequested(),
);
},
onPause: () {},
onReset: () {},
);
}
},
builder: (context, state) {
return Scaffold(
body: Stack(
children: [
Positioned.fill(
child: Container(
decoration: const BoxDecoration(
// subtle vignette for “night” vibe
gradient: RadialGradient(
center: Alignment(0, -0.5),
radius: 1.2,
colors: [MWColors.deepNavy, MWColors.abyss],
),
),
child: Center(
child: Padding(
padding: EdgeInsets.all(24.0),
child: Stack(
children: [
Positioned.fill(
child: Image.asset(
'assets/background.png',
fit: BoxFit.fitWidth,
),
),
Row(
children: [
Expanded(
child: HomeScreenContent(
title: Text(
'MoonWell',
style: theme.textTheme.headlineLarge,
),
),
),
],
),
],
),
),
],
),
),
),
),
if (state is HomeScreenDownloadInitializing)
Center(child: const CircularProgressIndicator()),
],
),
);
},