@@ -19,7 +19,7 @@ import '../../models/pangea_match_model.dart';
19
19
class PangeaRichText extends StatefulWidget {
20
20
final PangeaMessageEvent pangeaMessageEvent;
21
21
final bool immersionMode;
22
- final ToolbarDisplayController toolbarController;
22
+ final ToolbarDisplayController ? toolbarController;
23
23
final TextStyle ? style;
24
24
25
25
const PangeaRichText ({
@@ -89,7 +89,7 @@ class PangeaRichTextState extends State<PangeaRichText> {
89
89
.onError ((error, stackTrace) => ErrorHandler .logError ())
90
90
.then ((event) {
91
91
repEvent = event;
92
- widget.toolbarController.toolbar? .textSelection.setMessageText (
92
+ widget.toolbarController? .toolbar? .textSelection.setMessageText (
93
93
repEvent? .text ?? widget.pangeaMessageEvent.body,
94
94
);
95
95
}).whenComplete (() {
@@ -99,7 +99,7 @@ class PangeaRichTextState extends State<PangeaRichText> {
99
99
});
100
100
return widget.pangeaMessageEvent.body;
101
101
} else {
102
- widget.toolbarController.toolbar? .textSelection.setMessageText (
102
+ widget.toolbarController? .toolbar? .textSelection.setMessageText (
103
103
repEvent! .text,
104
104
);
105
105
setState (() {});
@@ -129,31 +129,33 @@ class PangeaRichTextState extends State<PangeaRichText> {
129
129
final Widget richText = SelectableText .rich (
130
130
onSelectionChanged: (selection, cause) {
131
131
if (cause == SelectionChangedCause .longPress &&
132
- ! widget.toolbarController.highlighted &&
133
- ! widget.toolbarController.controller.selectedEvents.any (
134
- (e) => e.eventId == widget.pangeaMessageEvent.eventId,
135
- )) {
136
- widget.toolbarController.controller.onSelectMessage (
132
+ ! (widget.toolbarController? .highlighted ?? false ) &&
133
+ ! (widget.toolbarController? .controller.selectedEvents.any (
134
+ (e) => e.eventId == widget.pangeaMessageEvent.eventId,
135
+ ) ??
136
+ false )) {
137
+ widget.toolbarController? .controller.onSelectMessage (
137
138
widget.pangeaMessageEvent.event,
138
139
);
139
140
return ;
140
141
}
141
- widget.toolbarController.toolbar? .textSelection
142
+ widget.toolbarController? .toolbar? .textSelection
142
143
.onTextSelection (selection);
143
144
},
144
- onTap: () => widget.toolbarController.showToolbar (context),
145
- enableInteractiveSelection: widget.toolbarController.highlighted,
145
+ onTap: () => widget.toolbarController? .showToolbar (context),
146
+ enableInteractiveSelection:
147
+ widget.toolbarController? .highlighted ?? false ,
146
148
contextMenuBuilder: (context, state) =>
147
- widget.toolbarController.highlighted
149
+ widget.toolbarController? .highlighted ?? true
148
150
? const SizedBox .shrink ()
149
151
: MessageContextMenu .contextMenuOverride (
150
152
context: context,
151
153
textSelection: state,
152
- onDefine: () => widget.toolbarController.showToolbar (
154
+ onDefine: () => widget.toolbarController? .showToolbar (
153
155
context,
154
156
mode: MessageMode .definition,
155
157
),
156
- onListen: () => widget.toolbarController.showToolbar (
158
+ onListen: () => widget.toolbarController? .showToolbar (
157
159
context,
158
160
mode: MessageMode .play,
159
161
),
0 commit comments