2019-06-29 22:56:11 +00:00
|
|
|
import 'package:flutter/cupertino.dart';
|
2019-07-07 04:14:09 +00:00
|
|
|
import 'package:provider/provider.dart';
|
2019-06-29 22:56:11 +00:00
|
|
|
|
2019-07-07 04:14:09 +00:00
|
|
|
import '../types/abstracts.dart';
|
2019-07-04 21:45:05 +00:00
|
|
|
import '../types/credential.dart';
|
|
|
|
|
2019-06-29 22:56:11 +00:00
|
|
|
import '../widgets/tappable_text_list.dart';
|
|
|
|
|
|
|
|
class Credentials extends StatelessWidget {
|
2019-07-04 21:45:05 +00:00
|
|
|
final List<Metadata> metadatas;
|
|
|
|
|
|
|
|
const Credentials(this.metadatas);
|
|
|
|
|
2019-06-29 22:56:11 +00:00
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
return CupertinoPageScaffold(
|
|
|
|
child: TappableTextList(tappableText: _buildTappableText(context)),
|
2019-07-04 21:45:05 +00:00
|
|
|
navigationBar: CupertinoNavigationBar(),
|
2019-06-29 22:56:11 +00:00
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2019-07-04 21:45:05 +00:00
|
|
|
Map<String, GestureTapCallback> _buildTappableText(BuildContext context) {
|
2019-07-07 04:14:09 +00:00
|
|
|
var makeOnTapHandler = (String id) => () async {
|
|
|
|
final credential =
|
|
|
|
await Provider.of<CredentialsRepo>(context).get(id);
|
|
|
|
Navigator.of(context).pushNamed('/credential', arguments: credential);
|
|
|
|
};
|
2019-06-29 22:56:11 +00:00
|
|
|
|
2019-07-04 21:45:05 +00:00
|
|
|
Map<String, GestureTapCallback> tappableText = {};
|
|
|
|
|
2019-07-07 04:14:09 +00:00
|
|
|
metadatas.forEach((Metadata metadata) {
|
|
|
|
var primary = metadata.primary;
|
|
|
|
if (metadata.tag != null && metadata.tag != '') {
|
|
|
|
primary += "-" + metadata.tag;
|
|
|
|
}
|
|
|
|
tappableText[primary] = makeOnTapHandler(metadata.id);
|
|
|
|
});
|
2019-06-29 22:56:11 +00:00
|
|
|
|
|
|
|
return tappableText;
|
|
|
|
}
|
|
|
|
}
|