Jisho-Study-Tool/lib/components/search/search_results_body/parts/senses.dart

48 lines
1.0 KiB
Dart
Raw Normal View History

import 'package:collection/collection.dart';
2020-08-24 23:45:47 +02:00
import 'package:flutter/material.dart';
import 'package:unofficial_jisho_api/api.dart';
import 'sense/sense.dart';
2020-08-24 23:45:47 +02:00
class Senses extends StatelessWidget {
2021-03-03 00:24:25 +01:00
final List<JishoWordSense> senses;
final List<PhraseScrapeMeaning>? extraData;
2021-12-01 23:09:53 +01:00
const Senses({
required this.senses,
this.extraData,
2021-12-01 23:09:53 +01:00
Key? key,
}) : super(key: key);
2020-08-24 23:45:47 +02:00
@override
Widget build(BuildContext context) {
final List<Widget> senseWidgets = senses
.asMap()
.map(
(k, v) => MapEntry(
v,
extraData?.firstWhereOrNull(
(m) => m.definition == v.englishDefinitions.join('; '),
),
),
)
.entries
.toList()
.asMap()
.entries
.map(
(e) => Sense(
index: e.key,
sense: e.value.key,
meaning: e.value.value,
),
)
.toList();
2020-08-24 23:45:47 +02:00
2021-12-01 23:09:53 +01:00
return Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
2021-03-03 00:24:25 +01:00
children: senseWidgets,
2021-12-01 23:09:53 +01:00
);
2020-08-24 23:45:47 +02:00
}
}