chore: fix analysis.

Signed-off-by: xsahil03x <xdsahil@gmail.com>
This commit is contained in:
Sahil Kumar
2023-06-23 18:07:07 +05:30
committed by xsahil03x
parent 59c4307205
commit a681ebfd68
2 changed files with 75 additions and 10 deletions
@@ -1,6 +1,8 @@
// ignore_for_file: public_member_api_docs
import 'dart:async';
import 'dart:math' as math;
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:responsive_builder/responsive_builder.dart';
@@ -277,19 +279,84 @@ class _ChannelPageState extends State<ChannelPage> {
children: <Widget>[
Expanded(
child: StreamMessageListView(
onMessageSwiped:
(CurrentPlatform.isAndroid || CurrentPlatform.isIos)
? reply
: null,
threadBuilder: (context, parent) {
return ThreadPage(
parent: parent!,
);
},
messageBuilder:
(context, details, messages, defaultWidget) {
return defaultWidget.copyWith(
onReplyTap: reply,
messageBuilder: (
context,
messageDetails,
messages,
defaultWidget,
) {
// The threshold after which the message is considered
// swiped.
const threshold = 0.2;
final isMyMessage = messageDetails.isMyMessage;
// The direction in which the message can be swiped.
final swipeDirection = isMyMessage
? SwipeDirection.endToStart //
: SwipeDirection.startToEnd;
return Swipeable(
key: ValueKey(messageDetails.message.id),
direction: swipeDirection,
swipeThreshold: threshold,
onSwiped: (details) => reply(messageDetails.message),
backgroundBuilder: (context, details) {
// The alignment of the swipe action.
final alignment = isMyMessage
? Alignment.centerRight //
: Alignment.centerLeft;
// The progress of the swipe action.
final progress =
math.min(details.progress, threshold) / threshold;
// The offset for the reply icon.
var offset = Offset.lerp(
const Offset(-24, 0),
const Offset(12, 0),
progress,
)!;
// If the message is mine, we need to flip the offset.
if (isMyMessage) {
offset = Offset(-offset.dx, -offset.dy);
}
final _streamTheme = StreamChatTheme.of(context);
return Align(
alignment: alignment,
child: Transform.translate(
offset: offset,
child: Opacity(
opacity: progress,
child: SizedBox.square(
dimension: 30,
child: CustomPaint(
painter: AnimatedCircleBorderPainter(
progress: progress,
color: _streamTheme.colorTheme.borders,
),
child: Center(
child: StreamSvgIcon.reply(
size: lerpDouble(0, 18, progress),
color: _streamTheme
.colorTheme.accentPrimary,
),
),
),
),
),
),
);
},
child: defaultWidget.copyWith(onReplyTap: reply),
);
},
),
@@ -12,8 +12,6 @@ import 'package:stream_chat_flutter/src/message_list_view/loading_indicator.dart
import 'package:stream_chat_flutter/src/message_list_view/mlv_utils.dart';
import 'package:stream_chat_flutter/src/message_list_view/thread_separator.dart';
import 'package:stream_chat_flutter/src/message_list_view/unread_messages_separator.dart';
import 'package:stream_chat_flutter/src/misc/animated_circle_border_painter.dart';
import 'package:stream_chat_flutter/src/misc/swipeable.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
/// Spacing Types (These are properties of a message to help inform the decision