@@ -5,16 +5,19 @@ import 'package:devour/application/feed/bloc/feed_bloc.dart';
5
5
import 'package:devour/domain/meme/abstract_meme_model.dart' ;
6
6
import 'package:devour/domain/misc/helper.dart' ;
7
7
import 'package:devour/injection.dart' ;
8
+ import 'package:devour/presentation/screens/feed/feed_image_widget.dart' ;
8
9
import 'package:devour/presentation/widgets/platform/platform_icon_button.dart' ;
9
10
import 'package:devour/presentation/widgets/platform/platform_theme.dart' ;
10
11
import 'package:flutter/cupertino.dart' ;
11
12
import 'package:flutter/material.dart' ;
12
13
import 'package:flutter/widgets.dart' ;
13
14
import 'package:flutter_cache_manager/flutter_cache_manager.dart' ;
14
- import 'package:octo_image/octo_image.dart' ;
15
15
import 'package:share_plus/share_plus.dart' ;
16
16
17
- class PostWidget extends StatelessWidget {
17
+ /// Widget to show post information like description and likes and image,
18
+ /// to create illusion of selecting meme from list.
19
+ class PostWidget extends StatefulWidget {
20
+ /// Constructs PostWidget
18
21
const PostWidget (
19
22
this .state, {
20
23
required this .constraints,
@@ -24,13 +27,19 @@ class PostWidget extends StatelessWidget {
24
27
final FeedState state;
25
28
final BoxConstraints constraints;
26
29
30
+ @override
31
+ State <PostWidget > createState () => _PostWidgetState ();
32
+ }
33
+
34
+ class _PostWidgetState extends State <PostWidget > {
27
35
@override
28
36
Widget build (BuildContext context) {
29
- if (state.isLoading) {
37
+ if (widget. state.isLoading) {
30
38
return Container ();
31
39
}
32
40
33
- final key = state.currentMemeWidget.toNullable ();
41
+ final key = widget.state.currentMemeWidget.toNullable ();
42
+ // key.currentWidget
34
43
final box = key? .currentContext? .findRenderObject () as RenderBox ? ;
35
44
final pos = box? .localToGlobal (Offset .zero) ?? Offset .zero;
36
45
@@ -53,21 +62,15 @@ class PostWidget extends StatelessWidget {
53
62
],
54
63
);
55
64
},
56
- child: ConstrainedBox (
57
- key: Key (state.currentMemeModel.imageLink),
58
- constraints: BoxConstraints (
59
- minWidth: constraints.maxWidth,
60
- ),
61
- child: OctoImage (
62
- image: CachedNetworkImageProvider (
63
- state.currentMemeModel.imageLink,
64
- errorListener: () =>
65
- print ('error (${state .currentMemeModel .imageLink })' ),
66
- cacheManager: serviceLocator <CacheManager >(),
67
- ),
68
- fit: BoxFit .fitWidth,
69
- width: constraints.maxWidth,
65
+ child: FeedImage (
66
+ key: Key (widget.state.currentMemeModel.imageLink),
67
+ imageProvider: CachedNetworkImageProvider (
68
+ widget.state.currentMemeModel.imageLink,
69
+ errorListener: () => print (
70
+ 'error (${widget .state .currentMemeModel .imageLink })' ),
71
+ cacheManager: serviceLocator <CacheManager >(),
70
72
),
73
+ constraints: widget.constraints,
71
74
),
72
75
),
73
76
),
@@ -77,7 +80,7 @@ class PostWidget extends StatelessWidget {
77
80
child: Row (
78
81
mainAxisAlignment: MainAxisAlignment .end,
79
82
children: [
80
- PostActionsWidget (currentPost: state.currentMemeModel),
83
+ PostActionsWidget (currentPost: widget. state.currentMemeModel),
81
84
],
82
85
),
83
86
),
@@ -86,7 +89,7 @@ class PostWidget extends StatelessWidget {
86
89
bottom: 100 ,
87
90
width: 400 ,
88
91
child: PostDescriptionWidget (
89
- currentPost: state.currentMemeModel,
92
+ currentPost: widget. state.currentMemeModel,
90
93
),
91
94
),
92
95
],
0 commit comments