feat: appbar

This commit is contained in:
shenlong-tanwen
2024-10-27 23:43:58 +05:30
parent 5385d43c8c
commit 8450c8cc4f
40 changed files with 1150 additions and 211 deletions
@@ -2,9 +2,9 @@ import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:immich_mobile/domain/utils/renderlist_providers.dart';
import 'package:immich_mobile/presentation/components/appbar/immich_app_bar.widget.dart';
import 'package:immich_mobile/presentation/components/grid/immich_asset_grid.state.dart';
import 'package:immich_mobile/presentation/components/grid/immich_asset_grid.widget.dart';
import 'package:immich_mobile/presentation/components/appbar/app_bar.widget.dart';
import 'package:immich_mobile/presentation/components/grid/asset_grid.state.dart';
import 'package:immich_mobile/presentation/components/grid/asset_grid.widget.dart';
import 'package:immich_mobile/utils/extensions/build_context.extension.dart';
@RoutePage()
@@ -10,10 +10,11 @@ import 'package:immich_mobile/presentation/modules/login/models/login_page.model
import 'package:immich_mobile/presentation/modules/login/states/login_page.state.dart';
import 'package:immich_mobile/presentation/modules/login/widgets/login_form.widget.dart';
import 'package:immich_mobile/presentation/router/router.dart';
import 'package:immich_mobile/presentation/states/app_info.state.dart';
import 'package:immich_mobile/service_locator.dart';
import 'package:immich_mobile/utils/constants/size_constants.dart';
import 'package:immich_mobile/utils/extensions/build_context.extension.dart';
import 'package:material_symbols_icons/symbols.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:url_launcher/url_launcher.dart';
@RoutePage()
@@ -93,17 +94,16 @@ class _LoginPageState extends State<LoginPage>
),
);
final version = di<AppInfoProvider>().value.versionString;
final Widget bottom = Padding(
padding: const EdgeInsets.only(bottom: SizeConstants.s),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
FutureBuilder(
future: PackageInfo.fromPlatform(),
builder: (_, snap) => DefaultTextStyle.merge(
style: TextStyle(color: context.theme.colorScheme.outline),
child: Text(snap.data?.version ?? ''),
),
DefaultTextStyle.merge(
style: TextStyle(color: context.theme.colorScheme.outline),
child: Text(version),
),
TextButton(
onPressed: () => unawaited(context.navigateRoot(const LogsRoute())),
@@ -11,7 +11,7 @@ import 'package:immich_mobile/presentation/components/input/text_button.widget.d
import 'package:immich_mobile/presentation/components/input/text_form_field.widget.dart';
import 'package:immich_mobile/presentation/modules/login/models/login_page.model.dart';
import 'package:immich_mobile/presentation/modules/login/states/login_page.state.dart';
import 'package:immich_mobile/presentation/states/server_feature_config.state.dart';
import 'package:immich_mobile/presentation/states/server_info.state.dart';
import 'package:immich_mobile/service_locator.dart';
import 'package:material_symbols_icons/symbols.dart';
@@ -132,7 +132,7 @@ class _CredentialsFormState extends State<_CredentialsForm> {
builder: (_, isValidationInProgress) => isValidationInProgress
? const ImLoadingIndicator()
: ValueListenableBuilder(
valueListenable: di<ServerFeatureConfigProvider>(),
valueListenable: di<ServerInfoProvider>(),
builder: (_, state, __) => Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.stretch,
@@ -6,7 +6,7 @@ import 'package:flutter/material.dart';
import 'package:immich_mobile/domain/interfaces/log.interface.dart';
import 'package:immich_mobile/domain/models/log.model.dart';
import 'package:immich_mobile/i18n/strings.g.dart';
import 'package:immich_mobile/presentation/components/common/gap.widget.dart';
import 'package:immich_mobile/presentation/components/common/page_empty.widget.dart';
import 'package:immich_mobile/presentation/components/common/skeletonized_future_builder.widget.dart';
import 'package:immich_mobile/presentation/components/scaffold/adaptive_route_appbar.widget.dart';
import 'package:immich_mobile/presentation/components/scaffold/adaptive_route_wrapper.widget.dart';
@@ -183,19 +183,9 @@ class _LogListEmpty extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
Symbols.comments_disabled_rounded,
size: 50,
color: context.colorScheme.primary,
),
const SizedGap.mh(),
Text(context.t.logs.no_logs),
],
),
return ImPageEmptyIndicator(
icon: Symbols.comments_disabled_rounded,
message: context.t.logs.no_logs_message,
);
}
}
@@ -19,7 +19,10 @@ class AboutSettingsPage extends StatelessWidget {
onTap: () => showLicensePage(
context: context,
applicationName: context.t.immich,
applicationIcon: const ImLogo(dimension: SizeConstants.xl),
applicationIcon: const Padding(
padding: EdgeInsets.only(top: SizeConstants.s),
child: ImLogo(dimension: SizeConstants.xl),
),
),
),
);