import 'package:flutter/material.dart'; import 'package:rasadyar_chicken/presentation/widget/app_bar.dart'; import 'package:rasadyar_chicken/presentation/widget/base_page/back_ground.dart'; import 'package:rasadyar_core/core.dart'; import 'logic.dart'; class ChickenBasePage extends GetView { const ChickenBasePage({ super.key, this.hasBack = true, this.hasFilter = true, this.hasSearch = true, this.isBase = false, this.hasNotification = false, this.hasNews = false, this.backId, this.onBackTap, this.onFilterTap, this.onSearchTap, this.onNewsTap, this.onNotificationTap, this.onSearchChanged, this.routes, this.routesWidget, this.child, this.scrollable = false, this.floatingActionButtonLocation, this.floatingActionButton, this.filteringWidget, this.backGroundWidget, this.isFullScreen = false, this.onPopScopTaped, this.onRefresh, }); //AppBar properties` final bool hasBack; final bool hasFilter; final bool hasSearch; final bool isBase; final bool isFullScreen; final bool hasNotification; final bool hasNews; final int? backId; final VoidCallback? onBackTap; final VoidCallback? onPopScopTaped; final VoidCallback? onFilterTap; final VoidCallback? onSearchTap; final VoidCallback? onNewsTap; final VoidCallback? onNotificationTap; final RefreshCallback? onRefresh; final List? routes; final Widget? routesWidget; final Widget? child; final bool scrollable; final FloatingActionButtonLocation? floatingActionButtonLocation; final Widget? floatingActionButton; final Widget? filteringWidget; final void Function(String?)? onSearchChanged; final BoxDecoration? backGroundWidget; void _onFilterTap() { if (hasFilter && filteringWidget != null) { final currentRoute = ModalRoute.of(Get.context!); if (currentRoute?.isCurrent != true) return; Get.bottomSheet( filteringWidget!, isScrollControlled: true, isDismissible: true, enableDrag: true, ); } } @override Widget build(BuildContext context) { return BasePage( routes: routes, routesWidget: routesWidget, onPopScopTaped: onPopScopTaped, onRefresh: onRefresh, child: child, onSearchChanged: onSearchChanged, floatingActionButtonLocation: floatingActionButtonLocation, floatingActionButton: floatingActionButton, backGroundDecoration: backGroundWidget ?? chickenBackground(), appBar: isFullScreen ? null : chickenAppBar( isBase: isBase, hasBack: isBase ? false : hasBack, onNewsTap: onNewsTap, hasFilter: hasFilter, hasSearch: hasSearch, hasNews: hasNews, backId: backId, onBackTap: onBackTap, hasNotification: hasNotification, onNotificationTap: onNotificationTap, onFilterTap: onFilterTap ?? _onFilterTap, onSearchTap: hasSearch ? controller.toggleSearch : null, ), ); } }