💄 Optimize nesting
This commit is contained in:
parent
7b96013406
commit
ec7650a920
@ -118,6 +118,7 @@ class PostItem extends StatelessWidget {
|
|||||||
final bool showComments;
|
final bool showComments;
|
||||||
final bool showMenu;
|
final bool showMenu;
|
||||||
final bool showFullPost;
|
final bool showFullPost;
|
||||||
|
final bool showAvatar;
|
||||||
final bool showExpandableComments;
|
final bool showExpandableComments;
|
||||||
final double? maxWidth;
|
final double? maxWidth;
|
||||||
final Function(SnPost data)? onChanged;
|
final Function(SnPost data)? onChanged;
|
||||||
@ -131,6 +132,7 @@ class PostItem extends StatelessWidget {
|
|||||||
this.showComments = true,
|
this.showComments = true,
|
||||||
this.showMenu = true,
|
this.showMenu = true,
|
||||||
this.showFullPost = false,
|
this.showFullPost = false,
|
||||||
|
this.showAvatar = true,
|
||||||
this.showExpandableComments = false,
|
this.showExpandableComments = false,
|
||||||
this.maxWidth,
|
this.maxWidth,
|
||||||
this.onChanged,
|
this.onChanged,
|
||||||
@ -234,11 +236,12 @@ class PostItem extends StatelessWidget {
|
|||||||
Row(
|
Row(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
_PostAvatar(
|
if (showAvatar)
|
||||||
data: data,
|
_PostAvatar(
|
||||||
isCompact: false,
|
data: data,
|
||||||
),
|
isCompact: false,
|
||||||
const Gap(12),
|
),
|
||||||
|
if (showAvatar) const Gap(12),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
@ -355,26 +358,33 @@ class PostItem extends StatelessWidget {
|
|||||||
minWidth: attachmentSize,
|
minWidth: attachmentSize,
|
||||||
maxWidth: attachmentSize,
|
maxWidth: attachmentSize,
|
||||||
fit: showFullPost ? BoxFit.cover : BoxFit.contain,
|
fit: showFullPost ? BoxFit.cover : BoxFit.contain,
|
||||||
padding: const EdgeInsets.only(left: 60, right: 12),
|
padding: EdgeInsets.only(left: showAvatar ? 60 : 12, right: 12),
|
||||||
),
|
),
|
||||||
if (data.preload?.poll != null)
|
if (data.preload?.poll != null)
|
||||||
PostPoll(poll: data.preload!.poll!)
|
PostPoll(poll: data.preload!.poll!).padding(
|
||||||
.padding(left: 60, right: 12, top: 12, bottom: 4),
|
left: showAvatar ? 60 : 12,
|
||||||
|
right: 12,
|
||||||
|
top: 12,
|
||||||
|
bottom: 4,
|
||||||
|
),
|
||||||
if (data.body['content'] != null &&
|
if (data.body['content'] != null &&
|
||||||
(cfg.prefs.getBool(kAppExpandPostLink) ?? true))
|
(cfg.prefs.getBool(kAppExpandPostLink) ?? true))
|
||||||
LinkPreviewWidget(
|
LinkPreviewWidget(
|
||||||
text: data.body['content'],
|
text: data.body['content'],
|
||||||
).padding(left: 60, right: 4),
|
).padding(left: showAvatar ? 60 : 12, right: 4),
|
||||||
if (showExpandableComments)
|
if (showExpandableComments)
|
||||||
_PostCommentIntent(data: data).padding(left: 60, right: 12)
|
_PostCommentIntent(
|
||||||
|
data: data,
|
||||||
|
showAvatar: showAvatar,
|
||||||
|
).padding(left: showAvatar ? 60 : 12, right: 12)
|
||||||
else
|
else
|
||||||
_PostFeaturedComment(data: data, maxWidth: maxWidth)
|
_PostFeaturedComment(data: data, maxWidth: maxWidth)
|
||||||
.padding(left: 60, right: 12),
|
.padding(left: showAvatar ? 60 : 12, right: 12),
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.only(top: 4),
|
padding: const EdgeInsets.only(top: 4),
|
||||||
child: _PostReactionList(
|
child: _PostReactionList(
|
||||||
data: data,
|
data: data,
|
||||||
padding: const EdgeInsets.only(left: 60, right: 12),
|
padding: EdgeInsets.only(left: showAvatar ? 60 : 12, right: 12),
|
||||||
onChanged: _onChanged,
|
onChanged: _onChanged,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -1423,7 +1433,8 @@ class _PostTruncatedHint extends StatelessWidget {
|
|||||||
|
|
||||||
class _PostCommentIntent extends StatefulWidget {
|
class _PostCommentIntent extends StatefulWidget {
|
||||||
final SnPost data;
|
final SnPost data;
|
||||||
const _PostCommentIntent({required this.data});
|
final bool showAvatar;
|
||||||
|
const _PostCommentIntent({required this.data, this.showAvatar = false});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<_PostCommentIntent> createState() => _PostCommentIntentState();
|
State<_PostCommentIntent> createState() => _PostCommentIntentState();
|
||||||
@ -1473,9 +1484,10 @@ class _PostCommentIntentState extends State<_PostCommentIntent> {
|
|||||||
for (final ele in _comments)
|
for (final ele in _comments)
|
||||||
PostItem(
|
PostItem(
|
||||||
data: ele,
|
data: ele,
|
||||||
|
showAvatar: false,
|
||||||
showExpandableComments: true,
|
showExpandableComments: true,
|
||||||
maxWidth: double.infinity,
|
maxWidth: double.infinity,
|
||||||
).padding(vertical: 8),
|
).padding(vertical: 8, left: 6),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
).padding(bottom: 8),
|
).padding(bottom: 8),
|
||||||
@ -1504,7 +1516,7 @@ class _PostCommentIntentState extends State<_PostCommentIntent> {
|
|||||||
),
|
),
|
||||||
).padding(left: 8),
|
).padding(left: 8),
|
||||||
],
|
],
|
||||||
).opacity(0.75).padding(horizontal: 4),
|
).opacity(0.75).padding(horizontal: widget.showAvatar ? 4 : 0),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user