bug fixes

This commit is contained in:
MohammadTaha Basiri 2022-04-02 15:44:02 +04:30
parent d7a39dda26
commit 8666a6a740
5 changed files with 64 additions and 34 deletions

View File

@ -1,8 +1,11 @@
import 'package:didvan/models/requests/studio.dart';
import 'package:didvan/models/tag.dart'; import 'package:didvan/models/tag.dart';
import 'package:didvan/models/view/app_bar_data.dart'; import 'package:didvan/models/view/app_bar_data.dart';
import 'package:didvan/views/home/hashtag/hashtag_state.dart'; import 'package:didvan/views/home/hashtag/hashtag_state.dart';
import 'package:didvan/views/home/widgets/overview/news.dart'; import 'package:didvan/views/home/widgets/overview/news.dart';
import 'package:didvan/views/home/widgets/overview/podcast.dart';
import 'package:didvan/views/home/widgets/overview/radar.dart'; import 'package:didvan/views/home/widgets/overview/radar.dart';
import 'package:didvan/views/home/widgets/overview/video.dart';
import 'package:didvan/views/widgets/didvan/scaffold.dart'; import 'package:didvan/views/widgets/didvan/scaffold.dart';
import 'package:didvan/views/widgets/state_handlers/sliver_state_handler.dart'; import 'package:didvan/views/widgets/state_handlers/sliver_state_handler.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -50,19 +53,34 @@ class _HashtagState extends State<Hashtag> {
} }
final item = state.items[index]; final item = state.items[index];
final type = item.type; final type = item.type;
if (type == 'radar') { switch (type) {
case 'radar':
return RadarOverview( return RadarOverview(
radar: item, radar: item,
onCommentsChanged: (id, count) => item.comments = count, onCommentsChanged: (_, count) => item.comments = count,
onMarkChanged: (id, value) => item.marked = value, onMarkChanged: (_, value) => item.marked = value,
); );
} else if (type == 'news') { case 'news':
return NewsOverview( return NewsOverview(
news: item, news: item,
onMarkChanged: (id, value) => item.marked = value, onMarkChanged: (_, value) => item.marked = value,
);
case 'podcast':
return PodcastOverview(
podcast: item,
onMarkChanged: (_, value) => item.marked = value,
studioRequestArgs:
const StudioRequestArgs(page: 0, type: 'podcast'),
);
case 'video':
return VideoOverview(
video: item,
onMarkChanged: (_, value) => item.marked = value,
studioRequestArgs:
const StudioRequestArgs(page: 0, type: 'video'),
); );
} }
return Container(); return const SizedBox();
}, },
childCount: childCount:
state.items.length + (state.page != state.lastPage ? 1 : 0), state.items.length + (state.page != state.lastPage ? 1 : 0),

View File

@ -18,8 +18,6 @@ class HashtagState extends CoreProvier {
} }
final service = RequestService(RequestHelper.tag( final service = RequestService(RequestHelper.tag(
ids: [id], ids: [id],
itemId: 1,
type: 'radar',
limit: 15, limit: 15,
page: page, page: page,
)); ));

View File

@ -64,6 +64,7 @@ class StudioDetailsWidget extends StatelessWidget {
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
Html( Html(
key: ValueKey(state.studio.id),
data: state.studio.description, data: state.studio.description,
onAnchorTap: (href, context, map, element) => onAnchorTap: (href, context, map, element) =>
launch(href!), launch(href!),

View File

@ -1,6 +1,7 @@
import 'package:carousel_slider/carousel_slider.dart'; import 'package:carousel_slider/carousel_slider.dart';
import 'package:didvan/config/design_config.dart'; import 'package:didvan/config/design_config.dart';
import 'package:didvan/config/theme_data.dart'; import 'package:didvan/config/theme_data.dart';
import 'package:didvan/constants/app_icons.dart';
import 'package:didvan/models/enums.dart'; import 'package:didvan/models/enums.dart';
import 'package:didvan/models/requests/studio.dart'; import 'package:didvan/models/requests/studio.dart';
import 'package:didvan/routes/routes.dart'; import 'package:didvan/routes/routes.dart';
@ -61,6 +62,7 @@ class _StudioSliderState extends State<StudioSlider> {
); );
}, },
child: Stack( child: Stack(
alignment: Alignment.center,
children: [ children: [
SkeletonImage( SkeletonImage(
borderRadius: DesignConfig.mediumBorderRadius, borderRadius: DesignConfig.mediumBorderRadius,
@ -95,6 +97,22 @@ class _StudioSliderState extends State<StudioSlider> {
), ),
), ),
), ),
Container(
height: 52,
width: 52,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Theme.of(context)
.colorScheme
.secondary
.withOpacity(0.7),
),
child: Icon(
DidvanIcons.play_solid,
color: Theme.of(context).colorScheme.white,
size: 48,
),
),
], ],
), ),
), ),

View File

@ -17,13 +17,13 @@ class VideoOverview extends StatelessWidget {
final OverviewData video; final OverviewData video;
final void Function(int id, bool value) onMarkChanged; final void Function(int id, bool value) onMarkChanged;
final bool hasUnmarkConfirmation; final bool hasUnmarkConfirmation;
final StudioRequestArgs? studioRequestArgs; final StudioRequestArgs studioRequestArgs;
const VideoOverview({ const VideoOverview({
Key? key, Key? key,
required this.video, required this.video,
required this.onMarkChanged, required this.onMarkChanged,
required this.hasUnmarkConfirmation, required this.studioRequestArgs,
this.studioRequestArgs, this.hasUnmarkConfirmation = false,
}) : super(key: key); }) : super(key: key);
@override @override
@ -42,31 +42,26 @@ class VideoOverview extends StatelessWidget {
child: Row( child: Row(
children: [ children: [
Stack( Stack(
alignment: Alignment.center,
children: [ children: [
SkeletonImage( SkeletonImage(
imageUrl: video.image, imageUrl: video.image,
height: 108, height: 108,
width: 108, width: 108,
), ),
Positioned.fill( Container(
child: Center(
child: Container(
height: 28, height: 28,
width: 28, width: 28,
decoration: BoxDecoration( decoration: BoxDecoration(
shape: BoxShape.circle, shape: BoxShape.circle,
color: Theme.of(context) color:
.colorScheme Theme.of(context).colorScheme.secondary.withOpacity(0.7),
.secondary
.withOpacity(0.7),
), ),
child: Icon( child: Icon(
DidvanIcons.play_solid, DidvanIcons.play_solid,
color: Theme.of(context).colorScheme.white, color: Theme.of(context).colorScheme.white,
), ),
), ),
),
),
], ],
), ),
const SizedBox(width: 8), const SizedBox(width: 8),