diff --git a/lib/models/infography/infography_content.dart b/lib/models/infography/infography_content.dart index 4bb5f53..efa21a1 100644 --- a/lib/models/infography/infography_content.dart +++ b/lib/models/infography/infography_content.dart @@ -1,3 +1,5 @@ +import 'package:didvan/models/tag.dart'; + class InfographyContent { final List contents; final int lastPage; @@ -45,16 +47,16 @@ class Content { } } -class Tag { - final int id; - final String label; +// class Tag { +// final int id; +// final String label; - Tag({required this.id, required this.label}); +// Tag({required this.id, required this.label}); - factory Tag.fromJson(Map json) { - return Tag( - id: json['id'], - label: json['label'], - ); - } -} +// factory Tag.fromJson(Map json) { +// return Tag( +// id: json['id'], +// label: json['label'], +// ); +// } +// } diff --git a/lib/views/hashtag/hashtag.dart b/lib/views/hashtag/hashtag.dart index 60126bb..474c03c 100644 --- a/lib/views/hashtag/hashtag.dart +++ b/lib/views/hashtag/hashtag.dart @@ -2,6 +2,7 @@ import 'package:didvan/models/requests/studio.dart'; import 'package:didvan/models/tag.dart'; import 'package:didvan/models/view/app_bar_data.dart'; import 'package:didvan/views/hashtag/hashtag_state.dart'; +import 'package:didvan/views/home/main/widgets/infography_item.dart'; import 'package:didvan/views/widgets/overview/news.dart'; import 'package:didvan/views/widgets/overview/podcast.dart'; import 'package:didvan/views/widgets/overview/radar.dart'; @@ -60,13 +61,18 @@ class _HashtagState extends State { final type = item.type; switch (type) { //TODO:Must add tags - // case 'infography': - // return InfographyItem( - // image: item.image, - // category: item.category!, - // title: item.title, - // tag: [], - // ); + case 'infography': + return InfographyItem( + image: item.image, + category: item.category!, + title: item.title, + tag: [], + onMarkChanged: (_, value, __) => + _changeMark(item.id, value, type), + createdAt: item.createdAt, + id: item.id, + marked: item.marked, + ); case 'radar': return RadarOverview( diff --git a/lib/views/home/main/widgets/infography_item.dart b/lib/views/home/main/widgets/infography_item.dart index 703283a..a6b0caf 100644 --- a/lib/views/home/main/widgets/infography_item.dart +++ b/lib/views/home/main/widgets/infography_item.dart @@ -4,6 +4,7 @@ import 'package:didvan/config/design_config.dart'; import 'package:didvan/config/theme_data.dart'; import 'package:didvan/constants/app_icons.dart'; import 'package:didvan/models/infography/infography_content.dart'; +import 'package:didvan/models/tag.dart'; import 'package:didvan/views/widgets/animated_visibility.dart'; import 'package:didvan/views/widgets/bookmark_button.dart'; import 'package:didvan/views/widgets/didvan/card.dart'; @@ -148,7 +149,7 @@ class InfographyItem extends StatelessWidget { ), BookmarkButton( itemId: id, - type: 'news', + type: 'infography', gestureSize: 32, value: marked, onMarkChanged: (value) => onMarkChanged(id, value), diff --git a/lib/views/home/new_statistic/widgets/statistic_cat.dart b/lib/views/home/new_statistic/widgets/statistic_cat.dart index 2666b8b..54e8980 100644 --- a/lib/views/home/new_statistic/widgets/statistic_cat.dart +++ b/lib/views/home/new_statistic/widgets/statistic_cat.dart @@ -2,9 +2,12 @@ import 'package:didvan/config/design_config.dart'; import 'package:didvan/config/theme_data.dart'; import 'package:didvan/constants/assets.dart'; import 'package:didvan/routes/routes.dart'; +import 'package:didvan/views/home/new_statistic/new_statistics_state.dart'; import 'package:didvan/views/widgets/didvan/text.dart'; +import 'package:didvan/views/widgets/state_handlers/state_handler.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:provider/provider.dart'; class StatMenuItemType { final String label; @@ -30,60 +33,57 @@ class NewStatisticCategories extends StatelessWidget { void _onTap(int id, String title, BuildContext context, BuildContext ctx) { if (id != 6) { - // Future.delayed(Duration.zero, () { Navigator.of(context) .pushNamed(Routes.statGeneral, arguments: {"id": id, "title": title}); - // }); } else { Navigator.of(ctx).pushNamed(Routes.stock); - // Your code HERE - // Flutter will wait until the current build is completed before executing this code. } - // Future.delayed(Duration.zero, () { - - // }); } @override Widget build(BuildContext context) { - return Wrap( - alignment: WrapAlignment.center, - children: statCat - .map( - (e) => GestureDetector( - onTap: () => _onTap(e.id, e.label, context, context), - child: Padding( - padding: const EdgeInsets.all(8.0), - child: SizedBox( - width: (MediaQuery.of(context).size.width - 40) / 4, - child: Column( - children: [ - Container( - width: 56, - height: 56, - padding: const EdgeInsets.all(8), - decoration: BoxDecoration( - color: Theme.of(context).colorScheme.surface, - borderRadius: DesignConfig.lowBorderRadius, - boxShadow: DesignConfig.defaultShadow, + return StateHandler( + onRetry: () {}, + state: context.watch(), + builder: (context, state) => Wrap( + alignment: WrapAlignment.center, + children: statCat + .map( + (e) => GestureDetector( + onTap: () => _onTap(e.id, e.label, context, context), + child: Padding( + padding: const EdgeInsets.all(8.0), + child: SizedBox( + width: (MediaQuery.of(context).size.width - 40) / 4, + child: Column( + children: [ + Container( + width: 56, + height: 56, + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.surface, + borderRadius: DesignConfig.lowBorderRadius, + boxShadow: DesignConfig.defaultShadow, + ), + child: SvgPicture.asset(e.asset), ), - child: SvgPicture.asset(e.asset), - ), - const SizedBox(height: 4), - DidvanText( - e.label, - color: Theme.of(context).colorScheme.title, - style: Theme.of(context).textTheme.labelSmall, - fontWeight: FontWeight.w600, - ), - const SizedBox(height: 12), - ], + const SizedBox(height: 4), + DidvanText( + e.label, + color: Theme.of(context).colorScheme.title, + style: Theme.of(context).textTheme.labelSmall, + fontWeight: FontWeight.w600, + ), + const SizedBox(height: 12), + ], + ), ), ), ), - ), - ) - .toList(), + ) + .toList(), + ), ); } } diff --git a/lib/views/widgets/infography_tag.dart b/lib/views/widgets/infography_tag.dart index 40dc2ca..393a366 100644 --- a/lib/views/widgets/infography_tag.dart +++ b/lib/views/widgets/infography_tag.dart @@ -1,7 +1,8 @@ import 'package:didvan/config/design_config.dart'; import 'package:didvan/config/theme_data.dart'; import 'package:didvan/constants/app_icons.dart'; -import 'package:didvan/models/infography/infography_content.dart'; +import 'package:didvan/models/tag.dart'; +import 'package:didvan/routes/routes.dart'; import 'package:didvan/views/widgets/didvan/text.dart'; import 'package:didvan/views/widgets/ink_wrapper.dart'; import 'package:flutter/material.dart'; @@ -19,7 +20,12 @@ class InfographyTag extends StatelessWidget { Widget build(BuildContext context) { return InkWrapper( borderRadius: DesignConfig.lowBorderRadius, - onPressed: () => {}, + onPressed: () => Navigator.of(context).pushNamed(Routes.hashtag, + arguments: { + 'tag': tag, + 'onMarkChanged': () {}, + 'type': 'infography' + }), child: Container( padding: const EdgeInsets.symmetric( vertical: 4, diff --git a/pubspec.lock b/pubspec.lock index 0642e76..6bb5cb6 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: "53d06f578b8e988f60324f46fcd6ab919ccdc2dc8cbf0cd4161829b1dba7a62b" + sha256: "4eec93681221723a686ad580c2e7d960e1017cf1a4e0a263c2573c2c6b0bf5cd" url: "https://pub.dev" source: hosted - version: "1.3.27" + version: "1.3.25" animated_custom_dropdown: dependency: "direct main" description: @@ -158,10 +158,10 @@ packages: dependency: transitive description: name: cross_file - sha256: "55d7b444feb71301ef6b8838dbc1ae02e63dd48c8773f3810ff53bb1e2945b32" + sha256: fedaadfa3a6996f75211d835aaeb8fede285dae94262485698afd832371b9a5e url: "https://pub.dev" source: hosted - version: "0.3.4+1" + version: "0.3.3+8" crypto: dependency: transitive description: @@ -222,10 +222,10 @@ packages: dependency: transitive description: name: ffi - sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" + sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.0" file: dependency: transitive description: @@ -270,10 +270,10 @@ packages: dependency: "direct main" description: name: firebase_core - sha256: "4e8728edb3053ffcc194315cb0c10f4676947db793581409e36040065918c94f" + sha256: "53316975310c8af75a96e365f9fccb67d1c544ef0acdbf0d88bbe30eedd1c4f9" url: "https://pub.dev" source: hosted - version: "2.27.2" + version: "2.27.0" firebase_core_platform_interface: dependency: transitive description: @@ -286,34 +286,34 @@ packages: dependency: transitive description: name: firebase_core_web - sha256: "6afef1b46818eabdc6058df1148307f80e5653c0eaf26beeec693c89154752d4" + sha256: c8e1d59385eee98de63c92f961d2a7062c5d9a65e7f45bdc7f1b0b205aab2492 url: "https://pub.dev" source: hosted - version: "2.13.0" + version: "2.11.5" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - sha256: fd3ae8fd4e1687cac1f5fd788c7f8e69bb1bbb2e3947cdc4c46f304e19ed2f07 + sha256: e41586e0fd04fe9a40424f8b0053d0832e6d04f49e020cdaf9919209a28497e9 url: "https://pub.dev" source: hosted - version: "14.7.21" + version: "14.7.19" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: df3c04f31f365cc78052c65678d3b437bfc644b29f63f9e533ba459a6606143a + sha256: f7a9d74ff7fc588a924f6b2eaeaa148b0db521b13a9db55f6ad45864fa98c06e url: "https://pub.dev" source: hosted - version: "4.5.29" + version: "4.5.27" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: b60252e4b77a66f3466190d2679b7144218199442c00e6ced45c2963484e9db0 + sha256: fc21e771166860c55b103701c5ac7cdb2eec28897b97c42e6e5703cbedf9e02e url: "https://pub.dev" source: hosted - version: "3.7.1" + version: "3.6.8" fl_chart: dependency: "direct main" description: @@ -482,10 +482,10 @@ packages: dependency: "direct main" description: name: http - sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938" + sha256: a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.0" http_parser: dependency: "direct main" description: @@ -538,10 +538,10 @@ packages: dependency: transitive description: name: image_picker_for_web - sha256: "6a1704fdd75022272e7e7a897a9068e9c2ff3cd6a66820bf3ded810633eac954" + sha256: e2423c53a68b579a7c37a1eda967b8ae536c3d98518e5db95ca1fe5719a730a3 url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.2" image_picker_ios: dependency: transitive description: @@ -570,10 +570,10 @@ packages: dependency: transitive description: name: image_picker_platform_interface - sha256: "3d2c323daea9d60608f1caf30be32a938916f4975434b8352e6f73dae496da38" + sha256: fa4e815e6fcada50e35718727d83ba1c92f1edf95c0b4436554cec301b56233b url: "https://pub.dev" source: hosted - version: "2.9.4" + version: "2.9.3" image_picker_windows: dependency: transitive description: @@ -598,30 +598,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.7" - leak_tracker: - dependency: transitive - description: - name: leak_tracker - sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" - url: "https://pub.dev" - source: hosted - version: "10.0.0" - leak_tracker_flutter_testing: - dependency: transitive - description: - name: leak_tracker_flutter_testing - sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 - url: "https://pub.dev" - source: hosted - version: "2.0.1" - leak_tracker_testing: - dependency: transitive - description: - name: leak_tracker_testing - sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 - url: "https://pub.dev" - source: hosted - version: "2.0.1" lints: dependency: transitive description: @@ -642,26 +618,26 @@ packages: dependency: transitive description: name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.16+1" + version: "0.12.16" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.5.0" meta: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.10.0" mime: dependency: transitive description: @@ -690,10 +666,10 @@ packages: dependency: transitive description: name: path - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.8.3" path_parsing: dependency: transitive description: @@ -959,10 +935,10 @@ packages: dependency: transitive description: name: sqflite_common - sha256: "3da423ce7baf868be70e2c0976c28a1bb2f73644268b7ffa7d2e08eab71f16a4" + sha256: "28d8c66baee4968519fb8bd6cdbedad982d6e53359091f0b74544a9f32ec72d5" url: "https://pub.dev" source: hosted - version: "2.5.4" + version: "2.5.3" stack_trace: dependency: transitive description: @@ -1095,10 +1071,10 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: "3692a459204a33e04bc94f5fb91158faf4f2c8903281ddd82915adecdb1a901d" + sha256: fff0932192afeedf63cdd50ecbb1bc825d31aed259f02bb8dba0f3b729a5e88b url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.2.3" url_launcher_windows: dependency: transitive description: @@ -1155,14 +1131,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.3.3" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 - url: "https://pub.dev" - source: hosted - version: "13.0.0" wakelock: dependency: transitive description: @@ -1207,10 +1175,10 @@ packages: dependency: transitive description: name: web - sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" + sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.3.0" webview_flutter: dependency: "direct main" description: @@ -1268,5 +1236,5 @@ packages: source: hosted version: "6.5.0" sdks: - dart: ">=3.3.0 <4.0.0" - flutter: ">=3.19.0" + dart: ">=3.2.3 <4.0.0" + flutter: ">=3.16.6"