Skip to content

Commit

Permalink
Test API and initialize package
Browse files Browse the repository at this point in the history
  • Loading branch information
nazarski committed Apr 26, 2023
1 parent 5ca884f commit 5eacf21
Show file tree
Hide file tree
Showing 5 changed files with 68 additions and 5 deletions.
30 changes: 29 additions & 1 deletion example/lib/app.dart
Original file line number Diff line number Diff line change
@@ -1,15 +1,43 @@
import 'package:flutter/material.dart';
import 'package:languagetool_textfield/languagetool_textfield.dart';

/// Example App widget
class App extends StatefulWidget {
/// Initial constructor
const App({super.key});

@override
State<App> createState() => _AppState();
}

class _AppState extends State<App> {
final _languageTool = LanguageTool();
DebounceLangToolService? _debouncedLangService;

void _initializeLangService() {
_debouncedLangService = DebounceLangToolService(
LangToolService(_languageTool),
const Duration(milliseconds: 500),
);
}

@override
void initState() {
_initializeLangService();
super.initState();
}

@override
Widget build(BuildContext context) {
return const Placeholder();
return Material(
child: LanguageToolTextField(
langService: _debouncedLangService!,
style: TextStyle(),
decoration: InputDecoration(),
mistakeBuilder: (){
return Container();
},
),
);
}
}
6 changes: 6 additions & 0 deletions lib/domain/mistake.dart
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,10 @@ class Mistake {
required this.length,
this.replacements = const [],
});

@override
String toString() {
return 'Mistake{message: $message, type: $type, offset: $offset, '
'length: $length, replacements: $replacements}';
}
}
10 changes: 7 additions & 3 deletions lib/implementations/debounce_lang_tool_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,11 @@ class DebounceLangToolService extends LanguageCheckService {
) : debouncing = Debouncing(duration: debouncingDuration);

@override
Future<List<Mistake>> findMistakes(String text) =>
debouncing.debounce(() => baseService.findMistakes(text))
as Future<List<Mistake>>;
Future<List<Mistake>> findMistakes(String text)async {
final value = await debouncing.debounce(() {
return baseService.findMistakes(text);
}) as List<Mistake>?;

return value ?? [];
}
}
9 changes: 9 additions & 0 deletions lib/languagetool_textfield.dart
Original file line number Diff line number Diff line change
@@ -1 +1,10 @@
library languagetool_textfield;

export 'package:language_tool/language_tool.dart';

export 'domain/language_check_service.dart';
export 'domain/mistake.dart';
export 'implementations/debounce_lang_tool_service.dart';
export 'implementations/lang_tool_service.dart';
export 'implementations/throttling_lang_tool_service.dart';
export "presentation/language_tool_text_field.dart";
18 changes: 17 additions & 1 deletion lib/presentation/language_tool_text_field.dart
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,24 @@ class LanguageToolTextField extends StatefulWidget {
}

class _LanguageToolTextFieldState extends State<LanguageToolTextField> {
// final TextEditingController _controller = TextEditingController();

Future<void> _check(String text) async {
final list = await widget.langService.findMistakes(text);
print(list);
}

@override
Widget build(BuildContext context) {
return const Placeholder();
return Padding(
padding: const EdgeInsets.all(24.0),
child: Center(
child: TextFormField(
onChanged: _check,
style: widget.style,
decoration: widget.decoration,
),
),
);
}
}

0 comments on commit 5eacf21

Please sign in to comment.