Small refactoring

This commit is contained in:
Oystein Kristoffer Tveit 2022-01-23 03:18:05 +01:00
parent b4a6b52e89
commit 7e8442881a
5 changed files with 60 additions and 52 deletions

View File

@ -23,12 +23,10 @@ class Examples extends StatelessWidget {
onyomi.map((onEx) => _Example(onEx, _KanaType.onyomi)).toList() + onyomi.map((onEx) => _Example(onEx, _KanaType.onyomi)).toList() +
kunyomi.map((kunEx) => _Example(kunEx, _KanaType.kunyomi)).toList(); kunyomi.map((kunEx) => _Example(kunEx, _KanaType.kunyomi)).toList();
const noExamplesWidget = [ const noExamplesWidget = Padding(
Padding(
padding: EdgeInsets.symmetric(vertical: 10), padding: EdgeInsets.symmetric(vertical: 10),
child: Text('No Examples', style: textStyle), child: Text('No Examples', style: textStyle),
) );
];
return Column( return Column(
children: <Widget>[ children: <Widget>[
@ -36,9 +34,12 @@ class Examples extends StatelessWidget {
margin: const EdgeInsets.symmetric(horizontal: 10), margin: const EdgeInsets.symmetric(horizontal: 10),
alignment: Alignment.centerLeft, alignment: Alignment.centerLeft,
child: const Text('Examples:', style: textStyle), child: const Text('Examples:', style: textStyle),
) ),
] + if (onyomi.isEmpty && kunyomi.isEmpty)
(onyomi.isEmpty && kunyomi.isEmpty ? noExamplesWidget : yomiWidgets), noExamplesWidget
else
...yomiWidgets
],
); );
} }
} }
@ -89,7 +90,6 @@ class _Kana extends StatelessWidget {
required this.example, required this.example,
}) : super(key: key); }) : super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
@ -105,7 +105,9 @@ class _Kana extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Text( Text(
romajiEnabled ? transliterateKanaToLatin(example.reading) : example.reading, romajiEnabled
? transliterateKanaToLatin(example.reading)
: example.reading,
style: TextStyle( style: TextStyle(
color: colors.foreground, color: colors.foreground,
fontSize: 15.0, fontSize: 15.0,

View File

@ -83,11 +83,11 @@ class YomiChips extends StatelessWidget {
yomi: type == YomiType.kunyomi ? 'Kun:' : 'On:', yomi: type == YomiType.kunyomi ? 'Kun:' : 'On:',
colors: ColorSet( colors: ColorSet(
foreground: type.getColors(context).background, foreground: type.getColors(context).background,
background: const Color(0x000000ff), background: Colors.transparent,
), ),
), ),
] + ...yomiCards
yomiCards; ];
final wrap = Wrap( final wrap = Wrap(
runSpacing: 10.0, runSpacing: 10.0,

View File

@ -29,8 +29,11 @@ class _GridItem extends StatelessWidget {
? () => ScaffoldMessenger.of(context).showSnackBar( ? () => ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text(text)), SnackBar(content: Text(text)),
) )
: () => : () => Navigator.popAndPushNamed(
Navigator.popAndPushNamed(context, Routes.kanjiSearch, arguments: text); context,
Routes.kanjiSearch,
arguments: text,
);
return InkWell( return InkWell(
onTap: onTap, onTap: onTap,
@ -61,8 +64,10 @@ class _KanjiGradeSearchState extends State<KanjiGradeSearch> {
sortedByStrokes.map<int, List<Widget>>( sortedByStrokes.map<int, List<Widget>>(
(strokeCount, kanji) => MapEntry( (strokeCount, kanji) => MapEntry(
strokeCount, strokeCount,
[_GridItem(text: strokeCount.toString(), isNumber: true)] + [
kanji.map((k) => _GridItem(text: k)).toList(), _GridItem(text: strokeCount.toString(), isNumber: true),
...kanji.map((k) => _GridItem(text: k)).toList(),
],
), ),
), ),
), ),

View File

@ -91,8 +91,7 @@ class _KanjiRadicalSearchState extends State<KanjiRadicalSearch> {
); );
} }
List<Widget> get radicalGridElements => List<Widget> get radicalGridElements => <Widget>[
<Widget>[
IconButton( IconButton(
onPressed: () => setState(() { onPressed: () => setState(() {
suggestions.clear(); suggestions.clear();
@ -103,8 +102,7 @@ class _KanjiRadicalSearchState extends State<KanjiRadicalSearch> {
color: AppTheme.jishoGreen.background, color: AppTheme.jishoGreen.background,
iconSize: fontSize * 1.3, iconSize: fontSize * 1.3,
), ),
] + ...radicals
radicals
.map( .map(
(key, value) => MapEntry( (key, value) => MapEntry(
key, key,
@ -112,13 +110,17 @@ class _KanjiRadicalSearchState extends State<KanjiRadicalSearch> {
.where((r) => allowedToggles[r]!) .where((r) => allowedToggles[r]!)
.map((r) => radicalGridElement(r)) .map((r) => radicalGridElement(r))
.toList() .toList()
..insert(0, radicalGridElement(key.toString(), isNumber: true)), ..insert(
0,
radicalGridElement(key.toString(), isNumber: true),
),
), ),
) )
.values .values
.where((element) => element.length != 1) .where((element) => element.length != 1)
.expand((l) => l) .expand((l) => l)
.toList(); .toList()
];
Widget kanjiGridElement(String kanji) { Widget kanjiGridElement(String kanji) {
const color = LightTheme.defaultMenuGreyNormal; const color = LightTheme.defaultMenuGreyNormal;

View File

@ -1,6 +1,5 @@
import 'package:unofficial_jisho_api/api.dart' as jisho; import 'package:unofficial_jisho_api/api.dart' as jisho;
export 'package:unofficial_jisho_api/api.dart' show JishoAPIResult; export 'package:unofficial_jisho_api/api.dart' show JishoAPIResult;
Future<jisho.JishoAPIResult> fetchJishoResults(searchTerm) async { Future<jisho.JishoAPIResult> fetchJishoResults(searchTerm) =>
return jisho.searchForPhrase(searchTerm); jisho.searchForPhrase(searchTerm);
}