65 lines
1.9 KiB
Dart
Raw Normal View History

2023-01-20 09:58:21 +03:00
import 'package:bottom_sheet_scaffold/bottom_sheet_scaffold.dart';
2022-12-29 08:45:28 +03:00
import 'package:flutter/material.dart';
import '../../controller/gallery_controller.dart';
class PickerAppBar extends StatelessWidget with PreferredSizeWidget {
2022-12-30 05:18:18 +03:00
final PhoneGalleryController controller;
2023-01-20 09:58:21 +03:00
final bool isBottomSheet;
2022-12-30 05:18:18 +03:00
const PickerAppBar(
2023-01-20 09:58:21 +03:00
{super.key, required this.isBottomSheet, required this.controller});
2022-12-29 08:45:28 +03:00
@override
Widget build(BuildContext context) {
2023-01-20 09:58:21 +03:00
return AppBar(
elevation: 0,
backgroundColor: controller.config.appbarColor,
leading: TextButton(
onPressed: () async {
if (isBottomSheet) {
BottomSheetPanel.close();
} else {
Navigator.pop(context);
await Future.delayed(const Duration(milliseconds: 500));
controller.disposeController();
}
},
child: Icon(
Icons.arrow_back,
color: controller.config.appbarIconColor,
)),
title: getTitle(),
actions: [
!controller.pickerMode && controller.isRecent
? TextButton(
onPressed: () {
controller.switchPickerMode(true);
},
child: Icon(
Icons.check_box_outlined,
color: controller.config.appbarIconColor,
))
: const SizedBox()
],
2022-12-29 08:45:28 +03:00
);
}
Widget getTitle() {
if (controller.pickerMode && controller.selectedFiles.isEmpty) {
return Text(
controller.config.tapPhotoSelect,
style: controller.config.appbarTextStyle,
);
} else if (controller.pickerMode && controller.selectedFiles.isNotEmpty) {
return Text(
"${controller.selectedFiles.length} ${controller.config.selected}",
style: controller.config.appbarTextStyle,
);
} else {
return const SizedBox();
}
}
@override
2022-12-30 05:18:18 +03:00
Size get preferredSize => const Size.fromHeight(48);
2022-12-29 08:45:28 +03:00
}