diff --git a/lib/views/home/studio/studio.dart b/lib/views/home/studio/studio.dart index 1ffca83..5f5f4ca 100644 --- a/lib/views/home/studio/studio.dart +++ b/lib/views/home/studio/studio.dart @@ -1,178 +1,26 @@ -import 'package:didvan/constants/app_icons.dart'; -import 'package:didvan/models/requests/studio.dart'; -import 'package:didvan/models/view/action_sheet_data.dart'; -import 'package:didvan/utils/action_sheet.dart'; -import 'package:didvan/views/home/studio/studio_state.dart'; -import 'package:didvan/views/home/studio/widgets/slider.dart'; -import 'package:didvan/views/home/studio/widgets/tab_bar.dart'; +import 'package:didvan/config/theme_data.dart'; +import 'package:didvan/constants/assets.dart'; import 'package:didvan/views/home/widgets/logo_app_bar.dart'; -import 'package:didvan/views/home/widgets/overview/podcast.dart'; -import 'package:didvan/views/home/widgets/overview/video.dart'; -import 'package:didvan/views/home/widgets/search_field.dart'; -import 'package:didvan/views/widgets/didvan/divider.dart'; -import 'package:didvan/views/widgets/didvan/icon_button.dart'; -import 'package:didvan/views/widgets/didvan/radial_button.dart'; -import 'package:didvan/views/widgets/item_title.dart'; -import 'package:didvan/views/widgets/state_handlers/sliver_state_handler.dart'; +import 'package:didvan/views/widgets/state_handlers/empty_state.dart'; import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -class Studio extends StatefulWidget { +class Studio extends StatelessWidget { const Studio({Key? key}) : super(key: key); - @override - State createState() => _StudioState(); -} - -class _StudioState extends State { - final _focusNode = FocusNode(); - - @override - void initState() { - context.read().init(); - super.initState(); - } - @override Widget build(BuildContext context) { - return CustomScrollView( - slivers: [ - SliverToBoxAdapter( - child: Row( - children: [ - const Expanded(child: LogoAppBar(type: 'studio')), - Padding( - padding: - EdgeInsets.only(top: MediaQuery.of(context).padding.top), - child: DidvanIconButton( - icon: DidvanIcons.bookmark_regular, - onPressed: () {}, - ), - ), - ], - ), - ), - const SliverToBoxAdapter( - child: StudioTabBar(), - ), - SliverToBoxAdapter( - child: Padding( - padding: const EdgeInsets.all(16.0), - child: SearchField( - title: 'جستجو در استودیو', - onChanged: (value) {}, - focusNode: _focusNode, - ), - ), - ), - const SliverToBoxAdapter( - child: StudioSlider(), - ), - const SliverPadding( - padding: EdgeInsets.symmetric(horizontal: 16), - sliver: SliverToBoxAdapter( - child: DidvanDivider( - verticalPadding: 0, - ), - ), - ), - SliverPadding( - padding: const EdgeInsets.symmetric(horizontal: 16), - sliver: SliverToBoxAdapter( - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - const ItemTitle(title: 'تازه‌ترین‌ها'), - DidvanIconButton( - gestureSize: 36, - icon: DidvanIcons.sort_regular, - onPressed: _showSortDialog, - ), - ], - ), - ), - ), - Consumer( - builder: (context, state, child) => SliverStateHandler( - state: state, - itemPadding: const EdgeInsets.only( - bottom: 8, - left: 16, - right: 16, - ), - placeholder: state.videosSelected - ? VideoOverview.placeHolder - : PodcastOverview.placeholder, - builder: (context, state, index) => state.videosSelected - ? VideoOverview( - onMarkChanged: state.changeMark, - hasUnmarkConfirmation: false, - video: state.studios[index], - onCommentsChanged: state.onCommentsChanged, - studioRequestArgs: StudioRequestArgs( - page: state.page, - order: state.order, - search: state.search, - type: state.type, - ), - ) - : PodcastOverview( - podcast: state.studios[index], - onMarkChanged: state.changeMark, - studioRequestArgs: StudioRequestArgs( - page: state.page, - order: state.order, - search: state.search, - type: state.type, - ), - ), - childCount: state.studios.length, - onRetry: () => state.getStudioOverviews(page: 1), + return Column( + children: [ + const LogoAppBar(), + Expanded( + child: EmptyState( + asset: Assets.emptyStudio, + title: 'استودیو آینده', + subtitle: 'به زودی...', + titleColor: Theme.of(context).colorScheme.title, ), ), ], ); } - - void _showSortDialog() { - final state = context.read(); - ActionSheetUtils.showBottomSheet( - data: ActionSheetData( - content: StatefulBuilder( - builder: (context, setState) => Column( - children: [ - DidvanRadialButton( - title: 'جدیدترین‌ها', - onSelected: () => setState( - () => state.selectedSortTypeIndex = 0, - ), - value: state.selectedSortTypeIndex == 0, - ), - const SizedBox(height: 24), - DidvanRadialButton( - title: 'پربازدیدترین‌ها', - onSelected: () => setState( - () => state.selectedSortTypeIndex = 1, - ), - value: state.selectedSortTypeIndex == 1, - ), - const SizedBox(height: 24), - DidvanRadialButton( - title: 'پربحث‌ترین‌ها', - onSelected: () => setState( - () => state.selectedSortTypeIndex = 2, - ), - value: state.selectedSortTypeIndex == 2, - ), - ], - ), - ), - title: 'مرتب‌‌سازی', - titleIcon: DidvanIcons.sort_regular, - hasDismissButton: false, - confrimTitle: 'مرتب سازی', - onConfirmed: () => state.getStudioOverviews(page: 1), - ), - ); - } } diff --git a/pubspec.yaml b/pubspec.yaml index b3e664b..7bae68f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.1.4+4 +version: 1.2.0+1 environment: sdk: ">=2.12.0 <3.0.0"