2022-01-23 03:15:33 +01:00
|
|
|
import 'package:collection/collection.dart';
|
2020-08-24 23:45:47 +02:00
|
|
|
import 'package:flutter/material.dart';
|
2022-01-23 03:15:33 +01:00
|
|
|
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;
|
2022-01-23 03:15:33 +01:00
|
|
|
final List<PhraseScrapeMeaning>? extraData;
|
2021-12-01 23:09:53 +01:00
|
|
|
|
|
|
|
const Senses({
|
|
|
|
required this.senses,
|
2022-01-23 03:15:33 +01:00
|
|
|
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) {
|
2022-01-23 03:15:33 +01:00
|
|
|
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(
|
2022-01-23 03:15:33 +01:00
|
|
|
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
|
|
|
}
|
|
|
|
}
|