This commit is contained in:
Leon Bösche
2026-01-16 20:53:55 +01:00
parent 072564fb0f
commit c6eb497bfa
2 changed files with 143 additions and 127 deletions

View File

@@ -417,47 +417,38 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
right: 32,
),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
// Title
Expanded(
flex: 3,
child: Align(
alignment: Alignment.centerLeft,
child: Builder(
builder: (context) {
final screenWidth = MediaQuery.of(
context,
).size.width;
final fontSize = screenWidth < 600 ? 24.0 : 48.0;
return Text(
'b0esche.cloud',
style: TextStyle(
fontFamily: 'PixelatedElegance',
fontSize: fontSize,
color: AppTheme.primaryText,
decoration: TextDecoration.underline,
decorationColor: AppTheme.primaryText,
fontFeatures: const [FontFeature.slashedZero()],
),
);
},
),
),
Builder(
builder: (context) {
final screenWidth = MediaQuery.of(context).size.width;
final fontSize = screenWidth < 600 ? 24.0 : 48.0;
return Text(
'b0esche.cloud',
style: TextStyle(
fontFamily: 'PixelatedElegance',
fontSize: fontSize,
color: AppTheme.primaryText,
decoration: TextDecoration.underline,
decorationColor: AppTheme.primaryText,
fontFeatures: const [FontFeature.slashedZero()],
),
);
},
),
// Audio bar (max 1/4 width, right-aligned)
const SizedBox(width: 32),
// Audio bar (centered between title and nav buttons)
Expanded(
flex: 1,
child: AnimatedBuilder(
animation: _audioBarController,
builder: (context, child) {
return (_showAudioBar &&
_audioFileName != null &&
_audioFileUrl != null)
? Align(
alignment: Alignment.topRight,
? Center(
child: FractionallySizedBox(
widthFactor: 1.0,
widthFactor: 0.7,
child: SlideTransition(
position: _audioBarOffset,
child: AudioPlayerBar(
@@ -475,6 +466,32 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
},
),
),
const SizedBox(width: 32),
// Navigation buttons (Drive, Mail, Add, Profile)
BlocBuilder<AuthBloc, AuthState>(
builder: (context, state) {
final isLoggedIn = state is AuthAuthenticated;
if (!isLoggedIn) {
return const SizedBox.shrink();
}
return Row(
mainAxisSize: MainAxisSize.min,
children: [
_buildNavButton('Drive', Icons.cloud),
const SizedBox(width: 16),
_buildNavButton('Mail', Icons.mail),
const SizedBox(width: 16),
_buildNavButton('Add', Icons.add),
const SizedBox(width: 16),
_buildNavButton(
'Profile',
Icons.person,
isAvatar: true,
),
],
);
},
),
],
),
),
@@ -729,30 +746,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
},
),
),
Positioned(
top: 0,
left: 0,
right: 0,
child: Center(
child: Builder(
builder: (context) {
final screenWidth = MediaQuery.of(context).size.width;
final fontSize = screenWidth < 600 ? 24.0 : 48.0;
return Text(
'b0esche.cloud',
style: TextStyle(
fontFamily: 'PixelatedElegance',
fontSize: fontSize,
color: AppTheme.primaryText,
decoration: TextDecoration.underline,
decorationColor: AppTheme.primaryText,
fontFeatures: const [FontFeature.slashedZero()],
),
);
},
),
),
),
// Removed duplicate title Positioned widget
Positioned(
top: MediaQuery.of(context).size.width < 600 ? 40 : 10,
right: 20,