Navigation from infography to Hashtag

This commit is contained in:
mehrdad78 2024-04-01 18:39:34 +03:30
parent 08c6d514f8
commit 5f9cb5db3f
6 changed files with 115 additions and 132 deletions

View File

@ -1,3 +1,5 @@
import 'package:didvan/models/tag.dart';
class InfographyContent {
final List<Content> 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<String, dynamic> json) {
return Tag(
id: json['id'],
label: json['label'],
);
}
}
// factory Tag.fromJson(Map<String, dynamic> json) {
// return Tag(
// id: json['id'],
// label: json['label'],
// );
// }
// }

View File

@ -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<Hashtag> {
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(

View File

@ -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),

View File

@ -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,23 +33,19 @@ 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(
return StateHandler<NewStatisticState>(
onRetry: () {},
state: context.watch<NewStatisticState>(),
builder: (context, state) => Wrap(
alignment: WrapAlignment.center,
children: statCat
.map(
@ -84,6 +83,7 @@ class NewStatisticCategories extends StatelessWidget {
),
)
.toList(),
),
);
}
}

View File

@ -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,

View File

@ -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"