mirror of
https://github.com/immich-app/immich.git
synced 2026-02-22 03:00:24 -05:00
53 lines
1.8 KiB
Dart
53 lines
1.8 KiB
Dart
import 'dart:async';
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:immich_mobile/presentation/components/appbar/app_bar_dialog.widget.dart';
|
|
import 'package:immich_mobile/presentation/components/common/gap.widget.dart';
|
|
import 'package:immich_mobile/presentation/components/common/user_avatar.widget.dart';
|
|
import 'package:immich_mobile/presentation/components/image/immich_logo.widget.dart';
|
|
import 'package:immich_mobile/presentation/states/current_user.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';
|
|
|
|
class ImAppBar extends StatelessWidget implements PreferredSizeWidget {
|
|
const ImAppBar({super.key});
|
|
|
|
@override
|
|
Size get preferredSize => const Size.fromHeight(kToolbarHeight);
|
|
|
|
static void showAppBarDialog(BuildContext context) => unawaited(showDialog(
|
|
context: context,
|
|
builder: (_) => const ImAppBarDialog(),
|
|
));
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return AppBar(
|
|
automaticallyImplyLeading: false,
|
|
title: Row(
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
children: [
|
|
ImLogo(dimension: SizeConstants.xxm),
|
|
SizedGap.sw(),
|
|
ImLogoText(fontSize: 20),
|
|
],
|
|
),
|
|
actions: [
|
|
Padding(
|
|
padding: const EdgeInsets.only(right: SizeConstants.m),
|
|
child: InkWell(
|
|
onTap: () => showAppBarDialog(context),
|
|
child: ImUserAvatar(
|
|
user: di<CurrentUserProvider>().value,
|
|
radius: SizeConstants.m,
|
|
),
|
|
),
|
|
),
|
|
],
|
|
backgroundColor: context.theme.appBarTheme.backgroundColor,
|
|
centerTitle: false,
|
|
);
|
|
}
|
|
}
|