123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- import 'package:easy_localization/easy_localization.dart';
- import 'package:flutter/material.dart';
- import 'package:hooks_riverpod/hooks_riverpod.dart';
- import 'package:immich_mobile/modules/home/ui/delete_diaglog.dart';
- import '../../../shared/providers/asset.provider.dart';
- import '../providers/home_page_state.provider.dart';
- class ControlBottomAppBar extends ConsumerWidget {
- const ControlBottomAppBar({Key? key}) : super(key: key);
- @override
- Widget build(BuildContext context, WidgetRef ref) {
- return Positioned(
- bottom: 0,
- left: 0,
- child: Container(
- width: MediaQuery.of(context).size.width,
- height: MediaQuery.of(context).size.height * 0.15,
- decoration: BoxDecoration(
- borderRadius: const BorderRadius.only(
- topLeft: Radius.circular(15),
- topRight: Radius.circular(15),
- ),
- color: Colors.grey[300]?.withOpacity(0.98),
- ),
- child: Column(
- children: [
- Padding(
- padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 20),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: [
- ControlBoxButton(
- iconData: Icons.delete_forever_rounded,
- label: "control_bottom_app_bar_delete".tr(),
- onPressed: () {
- showDialog(
- context: context,
- builder: (BuildContext context) {
- return const DeleteDialog();
- },
- );
- },
- ),
- ControlBoxButton(
- iconData: Icons.share,
- label: "control_bottom_app_bar_share".tr(),
- onPressed: () {
- final homePageState = ref.watch(homePageStateProvider);
- ref.watch(homePageStateProvider.notifier).shareAssets(
- homePageState.selectedItems.toList(),
- context,
- );
- ref
- .watch(homePageStateProvider.notifier)
- .disableMultiSelect();
- },
- ),
- ],
- ),
- )
- ],
- ),
- ),
- );
- }
- }
- class ControlBoxButton extends StatelessWidget {
- const ControlBoxButton({
- Key? key,
- required this.label,
- required this.iconData,
- required this.onPressed,
- }) : super(key: key);
- final String label;
- final IconData iconData;
- final Function onPressed;
- @override
- Widget build(BuildContext context) {
- return SizedBox(
- width: 60,
- child: Column(
- mainAxisAlignment: MainAxisAlignment.start,
- crossAxisAlignment: CrossAxisAlignment.center,
- children: [
- IconButton(
- onPressed: () {
- onPressed();
- },
- icon: Icon(iconData, size: 30),
- ),
- Text(label)
- ],
- ),
- );
- }
- }
|