| 1 | import 'dart:convert'; |
| 2 | import 'package:flutter/material.dart'; |
| 3 | import 'package:flutter/services.dart'; |
| 4 | import 'package:cake_wallet/generated/i18n.dart'; |
| 5 | import 'package:cake_wallet/src/screens/faq/faq_item.dart'; |
| 6 | import 'package:cake_wallet/src/screens/base_page.dart'; |
| 7 | import 'package:cake_wallet/src/widgets/standard_list.dart'; |
| 8 | import 'package:cake_wallet/store/settings_store.dart'; |
| 9 | |
| 10 | class FaqPage extends BasePage { |
| 11 | FaqPage(this.settingsStore); |
| 12 | |
| 13 | final SettingsStore settingsStore; |
| 14 | |
| 15 | @override |
| 16 | String get title => S.current.faq; |
| 17 | |
| 18 | String get path => 'assets/faq/faq_' + settingsStore.languageCode + '.json'; |
| 19 | |
| 20 | @override |
| 21 | Widget body(BuildContext context) { |
| 22 | return Container( |
| 23 | padding: EdgeInsets.only(top: 12, left: 24), |
| 24 | child: FutureBuilder( |
| 25 | builder: (context, snapshot) { |
| 26 | final faqItems = jsonDecode(snapshot.data.toString()) as List; |
| 27 | |
| 28 | return SingleChildScrollView( |
| 29 | child: Column( |
| 30 | children: <Widget>[ |
| 31 | StandardListSeparator(), |
| 32 | ListView.separated( |
| 33 | shrinkWrap: true, |
| 34 | physics: NeverScrollableScrollPhysics(), |
| 35 | itemBuilder: (BuildContext context, int index) { |
| 36 | final title = faqItems[index]["question"].toString(); |
| 37 | final text = faqItems[index]["answer"].toString(); |
| 38 | |
| 39 | return FAQItem(title, text); |
| 40 | }, |
| 41 | separatorBuilder: (_, __) => StandardListSeparator(), |
| 42 | itemCount: faqItems?.length ?? 0, |
| 43 | ) |
| 44 | ], |
| 45 | ), |
| 46 | ); |
| 47 | }, |
| 48 | future: rootBundle.loadString(path), |
| 49 | ), |
| 50 | ); |
| 51 | } |
| 52 | } |