Skip to content

Commit 050a885

Browse files
dab246hoangdat
authored andcommitted
Disable language tool check for text field
1 parent 8892c4b commit 050a885

File tree

9 files changed

+21
-154
lines changed

9 files changed

+21
-154
lines changed

contact/pubspec.lock

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -688,15 +688,6 @@ packages:
688688
url: "https://pub.dev"
689689
source: hosted
690690
version: "6.6.1"
691-
languagetool_textfield:
692-
dependency: transitive
693-
description:
694-
path: "."
695-
ref: twake-supported
696-
resolved-ref: f47dd9829e145acc795b4e3e62f8bc668135fcd6
697-
url: "https://github.com/dab246/languagetool_textfield.git"
698-
source: git
699-
version: "0.1.0"
700691
leak_tracker:
701692
dependency: transitive
702693
description:
@@ -1110,14 +1101,6 @@ packages:
11101101
url: "https://pub.dev"
11111102
source: hosted
11121103
version: "0.7.0"
1113-
throttling:
1114-
dependency: transitive
1115-
description:
1116-
name: throttling
1117-
sha256: e48a4c681b1838b8bf99c1a4f822efe43bb69132f9a56091cd5b7d931c862255
1118-
url: "https://pub.dev"
1119-
source: hosted
1120-
version: "2.0.1"
11211104
timing:
11221105
dependency: transitive
11231106
description:
Lines changed: 18 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import 'package:core/presentation/extensions/color_extension.dart';
22
import 'package:core/utils/direction_utils.dart';
33
import 'package:flutter/material.dart';
4-
import 'package:languagetool_textfield/languagetool_textfield.dart';
54

65
class TextFieldBuilder extends StatefulWidget {
76

@@ -26,7 +25,6 @@ class TextFieldBuilder extends StatefulWidget {
2625
final TextDirection textDirection;
2726
final bool readOnly;
2827
final MouseCursor? mouseCursor;
29-
final LanguageToolController? languageToolController;
3028

3129
const TextFieldBuilder({
3230
super.key,
@@ -42,7 +40,6 @@ class TextFieldBuilder extends StatefulWidget {
4240
this.maxLines,
4341
this.minLines,
4442
this.controller,
45-
this.languageToolController,
4643
this.keyboardType,
4744
this.focusNode,
4845
this.fromValue,
@@ -61,66 +58,24 @@ class TextFieldBuilder extends StatefulWidget {
6158
class _TextFieldBuilderState extends State<TextFieldBuilder> {
6259

6360
TextEditingController? _controller;
64-
LanguageToolController? _languageToolController;
6561

6662
late TextDirection _textDirection;
6763

6864
@override
6965
void initState() {
7066
super.initState();
71-
if (widget.languageToolController != null) {
72-
_languageToolController = widget.languageToolController;
73-
if (widget.fromValue != null) {
74-
_languageToolController?.value = TextEditingValue(text: widget.fromValue!);
75-
}
67+
if (widget.fromValue != null) {
68+
_controller = TextEditingController.fromValue(
69+
TextEditingValue(text: widget.fromValue!),
70+
);
7671
} else {
77-
if (widget.fromValue != null) {
78-
_controller = TextEditingController.fromValue(TextEditingValue(text: widget.fromValue!));
79-
} else {
80-
_controller = widget.controller ?? TextEditingController();
81-
}
72+
_controller = widget.controller ?? TextEditingController();
8273
}
8374
_textDirection = widget.textDirection;
8475
}
8576

8677
@override
8778
Widget build(BuildContext context) {
88-
if (_languageToolController != null) {
89-
return LanguageToolTextField(
90-
key: widget.key,
91-
controller: _languageToolController!,
92-
cursorColor: widget.cursorColor,
93-
autocorrect: widget.autocorrect,
94-
textInputAction: widget.textInputAction,
95-
decoration: widget.decoration,
96-
maxLines: widget.maxLines,
97-
minLines: widget.minLines,
98-
keyboardAppearance: widget.keyboardAppearance,
99-
style: widget.textStyle,
100-
keyboardType: widget.keyboardType,
101-
autoFocus: widget.autoFocus,
102-
focusNode: widget.focusNode,
103-
alignCenter: false,
104-
textDirection: _textDirection,
105-
readOnly: widget.readOnly,
106-
mouseCursor: widget.mouseCursor,
107-
onTextChange: (value) {
108-
widget.onTextChange?.call(value);
109-
if (value.isNotEmpty) {
110-
final directionByText = DirectionUtils.getDirectionByEndsText(value);
111-
if (directionByText != _textDirection) {
112-
setState(() {
113-
_textDirection = directionByText;
114-
});
115-
}
116-
}
117-
},
118-
onTextSubmitted: widget.onTextSubmitted,
119-
onTap: widget.onTap,
120-
onTapOutside: widget.onTapOutside,
121-
);
122-
}
123-
12479
return TextField(
12580
key: widget.key,
12681
controller: _controller,
@@ -139,31 +94,30 @@ class _TextFieldBuilderState extends State<TextFieldBuilder> {
13994
textDirection: _textDirection,
14095
readOnly: widget.readOnly,
14196
mouseCursor: widget.mouseCursor,
142-
onChanged: (value) {
143-
widget.onTextChange?.call(value);
144-
if (value.isNotEmpty) {
145-
final directionByText = DirectionUtils.getDirectionByEndsText(value);
146-
if (directionByText != _textDirection) {
147-
setState(() {
148-
_textDirection = directionByText;
149-
});
150-
}
151-
}
152-
},
97+
onChanged: _onTextChanged,
15398
onSubmitted: widget.onTextSubmitted,
15499
onTap: widget.onTap,
155100
onTapOutside: widget.onTapOutside,
156101
);
157102
}
158103

104+
void _onTextChanged(String value) {
105+
widget.onTextChange?.call(value);
106+
107+
if (value.trim().isEmpty) return;
108+
109+
final directionByText = DirectionUtils.getDirectionByEndsText(value);
110+
if (directionByText != _textDirection) {
111+
setState(() {
112+
_textDirection = directionByText;
113+
});
114+
}
115+
}
159116
@override
160117
void dispose() {
161118
if (widget.controller == null) {
162119
_controller?.dispose();
163120
}
164-
if (widget.languageToolController == null) {
165-
_languageToolController?.dispose();
166-
}
167121
super.dispose();
168122
}
169123
}

core/pubspec.lock

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -656,15 +656,6 @@ packages:
656656
url: "https://pub.dev"
657657
source: hosted
658658
version: "4.9.0"
659-
languagetool_textfield:
660-
dependency: "direct main"
661-
description:
662-
path: "."
663-
ref: twake-supported
664-
resolved-ref: f47dd9829e145acc795b4e3e62f8bc668135fcd6
665-
url: "https://github.com/dab246/languagetool_textfield.git"
666-
source: git
667-
version: "0.1.0"
668659
leak_tracker:
669660
dependency: transitive
670661
description:
@@ -1055,14 +1046,6 @@ packages:
10551046
url: "https://pub.dev"
10561047
source: hosted
10571048
version: "0.7.0"
1058-
throttling:
1059-
dependency: transitive
1060-
description:
1061-
name: throttling
1062-
sha256: e48a4c681b1838b8bf99c1a4f822efe43bb69132f9a56091cd5b7d931c862255
1063-
url: "https://pub.dev"
1064-
source: hosted
1065-
version: "2.0.1"
10661049
timing:
10671050
dependency: transitive
10681051
description:

core/pubspec.yaml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,6 @@ dependencies:
2727
sdk: flutter
2828

2929
### Dependencies from git ###
30-
# TODO: We will change it when the PR in upstream repository will be merged
31-
# https://github.com/solid-software/languagetool_textfield/pull/83
32-
languagetool_textfield:
33-
git:
34-
url: https://github.com/dab246/languagetool_textfield.git
35-
ref: twake-supported
36-
3730
# Sanitize_html is restricting Tags and Attributes. So some of our own tags and attributes (signature, public asset,...) will be lost when sanitizing html.
3831
# TODO: We will change it when the PR in upstream repository will be merged
3932
# https://github.com/google/dart-neats/pull/259

lib/features/composer/presentation/composer_controller.dart

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import 'package:jmap_dart_client/jmap/mail/email/email.dart';
2424
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
2525
import 'package:jmap_dart_client/jmap/mail/email/individual_header_identifier.dart';
2626
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
27-
import 'package:languagetool_textfield/languagetool_textfield.dart';
2827
import 'package:model/model.dart';
2928
import 'package:permission_handler/permission_handler.dart';
3029
import 'package:pointer_interceptor/pointer_interceptor.dart';
@@ -156,9 +155,7 @@ class ComposerController extends BaseController
156155
List<EmailAddress> listReplyToEmailAddress = <EmailAddress>[];
157156
ContactSuggestionSource _contactSuggestionSource = ContactSuggestionSource.tMailContact;
158157

159-
final subjectEmailInputController = LanguageToolController(
160-
delay: const Duration(milliseconds: 200),
161-
);
158+
final subjectEmailInputController = TextEditingController();
162159
final toEmailAddressController = TextEditingController();
163160
final ccEmailAddressController = TextEditingController();
164161
final bccEmailAddressController = TextEditingController();
@@ -2030,7 +2027,6 @@ class ComposerController extends BaseController
20302027

20312028
void handleOnFocusHtmlEditorWeb() {
20322029
FocusManager.instance.primaryFocus?.unfocus();
2033-
subjectEmailInputController.popupWidget?.popupRenderer.dismiss();
20342030
richTextWebController?.editorController.setFocus();
20352031
richTextWebController?.closeAllMenuPopup();
20362032
}

lib/features/composer/presentation/widgets/subject_composer_widget.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import 'package:core/presentation/views/text/text_field_builder.dart';
22
import 'package:core/utils/direction_utils.dart';
33
import 'package:flutter/material.dart';
4-
import 'package:languagetool_textfield/languagetool_textfield.dart';
54
import 'package:tmail_ui_user/features/composer/presentation/styles/subject_composer_widget_style.dart';
65
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
76

87
class SubjectComposerWidget extends StatelessWidget {
98

109
final FocusNode? focusNode;
11-
final LanguageToolController textController;
10+
final TextEditingController textController;
1211
final ValueChanged<String>? onTextChange;
1312
final EdgeInsetsGeometry? margin;
1413
final EdgeInsetsGeometry? padding;
@@ -51,7 +50,7 @@ class SubjectComposerWidget extends StatelessWidget {
5150
decoration: const InputDecoration(border: InputBorder.none),
5251
textDirection: DirectionUtils.getDirectionByLanguage(context),
5352
textStyle: SubjectComposerWidgetStyle.inputTextStyle,
54-
languageToolController: textController,
53+
controller: textController,
5554
)
5655
)
5756
]

model/pubspec.lock

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -680,15 +680,6 @@ packages:
680680
url: "https://pub.dev"
681681
source: hosted
682682
version: "6.6.1"
683-
languagetool_textfield:
684-
dependency: transitive
685-
description:
686-
path: "."
687-
ref: twake-supported
688-
resolved-ref: f47dd9829e145acc795b4e3e62f8bc668135fcd6
689-
url: "https://github.com/dab246/languagetool_textfield.git"
690-
source: git
691-
version: "0.1.0"
692683
leak_tracker:
693684
dependency: transitive
694685
description:
@@ -1087,14 +1078,6 @@ packages:
10871078
url: "https://pub.dev"
10881079
source: hosted
10891080
version: "0.7.0"
1090-
throttling:
1091-
dependency: transitive
1092-
description:
1093-
name: throttling
1094-
sha256: e48a4c681b1838b8bf99c1a4f822efe43bb69132f9a56091cd5b7d931c862255
1095-
url: "https://pub.dev"
1096-
source: hosted
1097-
version: "2.0.1"
10981081
timing:
10991082
dependency: transitive
11001083
description:

pubspec.lock

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1344,15 +1344,6 @@ packages:
13441344
url: "https://pub.dev"
13451345
source: hosted
13461346
version: "6.6.1"
1347-
languagetool_textfield:
1348-
dependency: "direct main"
1349-
description:
1350-
path: "."
1351-
ref: twake-supported
1352-
resolved-ref: f47dd9829e145acc795b4e3e62f8bc668135fcd6
1353-
url: "https://github.com/dab246/languagetool_textfield.git"
1354-
source: git
1355-
version: "0.1.0"
13561347
leak_tracker:
13571348
dependency: transitive
13581349
description:
@@ -2056,14 +2047,6 @@ packages:
20562047
url: "https://pub.dev"
20572048
source: hosted
20582049
version: "2.0.2"
2059-
throttling:
2060-
dependency: transitive
2061-
description:
2062-
name: throttling
2063-
sha256: e48a4c681b1838b8bf99c1a4f822efe43bb69132f9a56091cd5b7d931c862255
2064-
url: "https://pub.dev"
2065-
source: hosted
2066-
version: "2.0.1"
20672050
timeago:
20682051
dependency: "direct main"
20692052
description:

pubspec.yaml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -104,13 +104,6 @@ dependencies:
104104
url: https://github.com/linagora/flutter_pdf_render.git
105105
ref: main
106106

107-
# TODO: We will change it when the PR in upstream repository will be merged
108-
# https://github.com/solid-software/languagetool_textfield/pull/83
109-
languagetool_textfield:
110-
git:
111-
url: https://github.com/dab246/languagetool_textfield.git
112-
ref: twake-supported
113-
114107
linagora_design_flutter:
115108
git:
116109
url: https://github.com/linagora/linagora-design-flutter.git

0 commit comments

Comments
 (0)