import 'package:cwtch/models/message.dart'; import 'package:cwtch/widgets/messagebubble.dart'; import 'package:cwtch/widgets/messagerow.dart'; import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:provider/provider.dart'; import '../../settings.dart'; import '../../widgets/messageBubbleWidgetHelpers.dart'; class TextMessage extends Message { final MessageMetadata metadata; final String content; TextMessage(this.metadata, this.content); @override Widget getPreviewWidget(BuildContext context, {BoxConstraints? constraints}) { return ChangeNotifierProvider.value( value: this.metadata, builder: (bcontext, child) { var formatMessages = Provider.of(bcontext).isExperimentEnabled(FormattingExperiment); return compileMessageContentWidget(context, constraints ?? BoxConstraints.loose(MediaQuery.sizeOf(context)), false, content, FocusNode(), formatMessages, false); }); } @override MessageMetadata getMetadata() { return this.metadata; } @override Widget getWidget(BuildContext context, Key key, int index) { return ChangeNotifierProvider.value( value: this.metadata, builder: (bcontext, child) { return MessageRow( MessageBubble(this.content), index, key: key, ); }); } }