Skip to content

Commit

Permalink
feat: improve entry header
Browse files Browse the repository at this point in the history
  • Loading branch information
matthiasn committed Jan 1, 2024
1 parent 0e1b082 commit 87f5922
Show file tree
Hide file tree
Showing 3 changed files with 86 additions and 72 deletions.
127 changes: 70 additions & 57 deletions lib/widgets/journal/entry_details/entry_detail_header.dart
Original file line number Diff line number Diff line change
Expand Up @@ -43,64 +43,77 @@ class EntryDetailHeader extends StatelessWidget {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
children: [
SwitchIconWidget(
tooltip: localizations.journalFavoriteTooltip,
onPressed: cubit.toggleStarred,
value: item.meta.starred ?? false,
icon: Icons.star_outline_rounded,
activeIcon: Icons.star_rounded,
activeColor: starredGold,
Expanded(
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
children: [
SwitchIconWidget(
tooltip: localizations.journalFavoriteTooltip,
onPressed: cubit.toggleStarred,
value: item.meta.starred ?? false,
icon: Icons.star_outline_rounded,
activeIcon: Icons.star_rounded,
activeColor: starredGold,
),
SwitchIconWidget(
tooltip: localizations.journalPrivateTooltip,
onPressed: cubit.togglePrivate,
value: item.meta.private ?? false,
icon: Icons.shield_outlined,
activeIcon: Icons.shield,
activeColor: Theme.of(context).colorScheme.error,
),
SwitchIconWidget(
tooltip: localizations.journalFlaggedTooltip,
onPressed: cubit.toggleFlagged,
value: item.meta.flag == EntryFlag.import,
icon: Icons.flag_outlined,
activeIcon: Icons.flag,
activeColor: Theme.of(context).colorScheme.error,
),
if (state.entry?.geolocation != null)
SwitchIconWidget(
tooltip: state.showMap
? localizations.journalHideMapHint
: localizations.journalShowMapHint,
onPressed: cubit.toggleMapVisible,
value: cubit.showMap,
icon: Icons.map_outlined,
activeIcon: Icons.map,
activeColor: Theme.of(context).primaryColor,
),
DeleteIconWidget(beamBack: !inLinkedEntries),
const ShareButtonWidget(),
TagAddIconWidget(),
SizedBox(
width: 40,
child: IconButton(
icon: const Icon(Icons.add_link),
tooltip: localizations.journalLinkFromHint,
onPressed: () => linkService.linkFrom(id),
),
),
SizedBox(
width: 40,
child: IconButton(
icon: Icon(MdiIcons.target),
tooltip: localizations.journalLinkToHint,
onPressed: () => linkService.linkTo(id),
),
),
if (unlinkFn != null)
SizedBox(
width: 40,
child: IconButton(
icon: Icon(MdiIcons.closeCircleOutline),
tooltip: localizations.journalUnlinkHint,
onPressed: unlinkFn,
),
),
],
),
SwitchIconWidget(
tooltip: localizations.journalPrivateTooltip,
onPressed: cubit.togglePrivate,
value: item.meta.private ?? false,
icon: Icons.shield_outlined,
activeIcon: Icons.shield,
activeColor: Theme.of(context).colorScheme.error,
),
SwitchIconWidget(
tooltip: localizations.journalFlaggedTooltip,
onPressed: cubit.toggleFlagged,
value: item.meta.flag == EntryFlag.import,
icon: Icons.flag_outlined,
activeIcon: Icons.flag,
activeColor: Theme.of(context).colorScheme.error,
),
if (state.entry?.geolocation != null)
SwitchIconWidget(
tooltip: state.showMap
? localizations.journalHideMapHint
: localizations.journalShowMapHint,
onPressed: cubit.toggleMapVisible,
value: cubit.showMap,
icon: Icons.map_outlined,
activeIcon: Icons.map,
activeColor: Theme.of(context).primaryColor,
),
DeleteIconWidget(beamBack: !inLinkedEntries),
const ShareButtonWidget(),
TagAddIconWidget(),
const SizedBox(width: 20),
IconButton(
icon: const Icon(Icons.add_link),
tooltip: localizations.journalLinkFromHint,
onPressed: () => linkService.linkFrom(id),
),
IconButton(
icon: Icon(MdiIcons.target),
tooltip: localizations.journalLinkToHint,
onPressed: () => linkService.linkTo(id),
),
if (unlinkFn != null)
IconButton(
icon: Icon(MdiIcons.closeCircleOutline),
tooltip: localizations.journalUnlinkHint,
onPressed: unlinkFn,
),
],
),
),
const SaveButton(),
],
Expand Down
29 changes: 15 additions & 14 deletions lib/widgets/journal/entry_details/save_button.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter_animate/flutter_animate.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:lotti/blocs/journal/entry_cubit.dart';
Expand All @@ -23,22 +24,22 @@ class SaveButton extends StatelessWidget {
dirty: (_) => true,
saved: (_) => false,
);
return Opacity(
opacity: unsaved ? 1 : 0,
child: TextButton(
onPressed: () {
context.read<EntryCubit>().save();
FocusManager.instance.primaryFocus?.unfocus();
},
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 8),
child: Text(
localizations.saveLabel,
style: saveButtonStyle(Theme.of(context)),
),
if (!unsaved) {
return const SizedBox.shrink();
}
return TextButton(
onPressed: () {
context.read<EntryCubit>().save();
FocusManager.instance.primaryFocus?.unfocus();
},
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 8),
child: Text(
localizations.saveLabel,
style: saveButtonStyle(Theme.of(context)),
),
),
);
).animate().fadeIn(duration: const Duration(milliseconds: 500));
},
);
}
Expand Down
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: lotti
description: Achieve your goals and keep your data private with Lotti.
publish_to: 'none'
version: 0.9.396+2310
version: 0.9.397+2311

msix_config:
display_name: LottiApp
Expand Down

0 comments on commit 87f5922

Please sign in to comment.