@@ -44,12 +44,12 @@ class ChatUITextField extends StatefulWidget {
4444 required this .onPressed,
4545 required this .onRecordingComplete,
4646 required this .onImageSelected,
47- this .sendMessageConfig,
47+ required this .sendMessageConfig,
4848 super .key,
4949 });
5050
5151 /// Provides configuration of default text field in chat.
52- final SendMessageConfiguration ? sendMessageConfig;
52+ final SendMessageConfiguration sendMessageConfig;
5353
5454 /// Provides focusNode for focusing text field.
5555 final FocusNode focusNode;
@@ -80,23 +80,23 @@ class _ChatUITextFieldState extends State<ChatUITextField> {
8080
8181 bool Function (KeyEvent )? _keyboardHandler;
8282
83- SendMessageConfiguration ? get sendMessageConfig => widget.sendMessageConfig;
83+ SendMessageConfiguration get sendMessageConfig => widget.sendMessageConfig;
8484
85- VoiceRecordingConfiguration ? get voiceRecordingConfig =>
86- widget.sendMessageConfig? .voiceRecordingConfiguration;
85+ VoiceRecordingConfiguration get voiceRecordingConfig =>
86+ widget.sendMessageConfig.voiceRecordingConfiguration;
8787
8888 ImagePickerIconsConfiguration ? get imagePickerIconsConfig =>
89- sendMessageConfig? .imagePickerIconsConfig;
89+ sendMessageConfig.imagePickerIconsConfig;
9090
9191 TextFieldConfiguration ? get textFieldConfig =>
92- sendMessageConfig? .textFieldConfig;
92+ sendMessageConfig.textFieldConfig;
9393
9494 CancelRecordConfiguration ? get cancelRecordConfiguration =>
95- sendMessageConfig? .cancelRecordConfiguration;
95+ sendMessageConfig.cancelRecordConfiguration;
9696
9797 OutlineInputBorder get _outLineBorder => OutlineInputBorder (
9898 borderSide: const BorderSide (color: Colors .transparent),
99- borderRadius: widget.sendMessageConfig? .textFieldConfig? .borderRadius ??
99+ borderRadius: widget.sendMessageConfig.textFieldConfig? .borderRadius ??
100100 BorderRadius .circular (textFieldBorderRadius),
101101 );
102102
@@ -112,7 +112,7 @@ class _ChatUITextFieldState extends State<ChatUITextField> {
112112 // onChanged is not called when text is set programmatically.
113113 widget.textEditingController.addListener (_listenTextEditingController);
114114 debouncer = Debouncer (
115- sendMessageConfig? .textFieldConfig? .compositionThresholdTime ??
115+ sendMessageConfig.textFieldConfig? .compositionThresholdTime ??
116116 const Duration (seconds: 1 ));
117117 super .initState ();
118118
@@ -142,7 +142,7 @@ class _ChatUITextFieldState extends State<ChatUITextField> {
142142
143143 void attachListeners () {
144144 composingStatus.addListener (() {
145- widget.sendMessageConfig? .textFieldConfig? .onMessageTyping
145+ widget.sendMessageConfig.textFieldConfig? .onMessageTyping
146146 ? .call (composingStatus.value);
147147 });
148148 }
@@ -198,7 +198,7 @@ class _ChatUITextFieldState extends State<ChatUITextField> {
198198 decoration: BoxDecoration (
199199 borderRadius: textFieldConfig? .borderRadius ??
200200 BorderRadius .circular (textFieldBorderRadius),
201- color: sendMessageConfig? .textFieldBackgroundColor ?? Colors .white,
201+ color: sendMessageConfig.textFieldBackgroundColor ?? Colors .white,
202202 ),
203203 child: ChatTextFieldViewBuilder <bool >(
204204 valueListenable: isRecording,
@@ -210,22 +210,22 @@ class _ChatUITextFieldState extends State<ChatUITextField> {
210210 child: AudioWaveforms (
211211 size: const Size (double .maxFinite, 50 ),
212212 recorderController: controller! ,
213- margin: voiceRecordingConfig? .margin,
214- padding: voiceRecordingConfig? .padding ??
213+ margin: voiceRecordingConfig.margin,
214+ padding: voiceRecordingConfig.padding ??
215215 EdgeInsets .symmetric (
216216 horizontal: cancelRecordConfiguration == null ? 8 : 5 ,
217217 ),
218- decoration: voiceRecordingConfig? .decoration ??
218+ decoration: voiceRecordingConfig.decoration ??
219219 BoxDecoration (
220- color: voiceRecordingConfig? .backgroundColor,
220+ color: voiceRecordingConfig.backgroundColor,
221221 borderRadius: BorderRadius .circular (12 ),
222222 ),
223- waveStyle: voiceRecordingConfig? .waveStyle ??
223+ waveStyle: voiceRecordingConfig.waveStyle ??
224224 WaveStyle (
225225 extendWaveform: true ,
226226 showMiddleLine: false ,
227227 waveColor:
228- voiceRecordingConfig? .waveStyle? .waveColor ??
228+ voiceRecordingConfig.waveStyle? .waveColor ??
229229 Colors .black,
230230 ),
231231 ),
@@ -271,7 +271,7 @@ class _ChatUITextFieldState extends State<ChatUITextField> {
271271 hintText: textFieldConfig? .hintText ??
272272 PackageStrings .currentLocale.message,
273273 fillColor:
274- sendMessageConfig? .textFieldBackgroundColor ??
274+ sendMessageConfig.textFieldBackgroundColor ??
275275 Colors .white,
276276 filled: true ,
277277 hintMaxLines: textFieldConfig? .hintMaxLines ?? 1 ,
@@ -300,13 +300,13 @@ class _ChatUITextFieldState extends State<ChatUITextField> {
300300 builder: (_, isNotEmpty, child) {
301301 if (isNotEmpty) {
302302 return IconButton (
303- color: sendMessageConfig? .defaultSendButtonColor ??
303+ color: sendMessageConfig.defaultSendButtonColor ??
304304 Colors .green,
305- style: sendMessageConfig? .sendButtonStyle,
305+ style: sendMessageConfig.sendButtonStyle,
306306 onPressed: (textFieldConfig? .enabled ?? true )
307307 ? _onPressed
308308 : null ,
309- icon: sendMessageConfig? .sendButtonIcon ??
309+ icon: sendMessageConfig.sendButtonIcon ??
310310 const Icon (Icons .send),
311311 );
312312 } else {
@@ -353,20 +353,19 @@ class _ChatUITextFieldState extends State<ChatUITextField> {
353353 ],
354354
355355 // Always add the voice button at the end if allowed
356- if ((sendMessageConfig? .allowRecordingVoice ?? false ) &&
356+ if ((sendMessageConfig.allowRecordingVoice) &&
357357 ! kIsWeb &&
358358 (Platform .isIOS || Platform .isAndroid))
359359 IconButton (
360360 onPressed: (textFieldConfig? .enabled ?? true )
361361 ? _recordOrStop
362362 : null ,
363363 icon: (isRecordingValue
364- ? voiceRecordingConfig? .stopIcon
365- : voiceRecordingConfig? .micIcon) ??
364+ ? voiceRecordingConfig.stopIcon
365+ : voiceRecordingConfig.micIcon) ??
366366 Icon (
367367 isRecordingValue ? Icons .stop : Icons .mic,
368- color:
369- voiceRecordingConfig? .recorderIconColor,
368+ color: voiceRecordingConfig.recorderIconColor,
370369 ),
371370 ),
372371
@@ -380,7 +379,7 @@ class _ChatUITextFieldState extends State<ChatUITextField> {
380379 icon: cancelRecordConfiguration? .icon ??
381380 const Icon (Icons .cancel_outlined),
382381 color: cancelRecordConfiguration? .iconColor ??
383- voiceRecordingConfig? .recorderIconColor,
382+ voiceRecordingConfig.recorderIconColor,
384383 ),
385384 ],
386385 );
@@ -428,8 +427,7 @@ class _ChatUITextFieldState extends State<ChatUITextField> {
428427 );
429428 if (! isRecording.value) {
430429 await controller? .record (
431- recorderSettings:
432- voiceRecordingConfig? .recorderSettings ?? const RecorderSettings (),
430+ recorderSettings: voiceRecordingConfig.recorderSettings,
433431 );
434432 isRecording.value = true ;
435433 } else {
0 commit comments