From 043f03f9e5e143fa2ec32d747465ac02cffc5fde Mon Sep 17 00:00:00 2001 From: Seyed Amir Hossein Mosavi Date: Thu, 12 Oct 2023 18:01:21 +0330 Subject: [PATCH] webView link --- .../search/widgets/search_result_item.dart | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/lib/views/home/search/widgets/search_result_item.dart b/lib/views/home/search/widgets/search_result_item.dart index 59c03b4..8801ba2 100644 --- a/lib/views/home/search/widgets/search_result_item.dart +++ b/lib/views/home/search/widgets/search_result_item.dart @@ -6,6 +6,7 @@ import 'package:didvan/models/requests/radar.dart'; import 'package:didvan/models/requests/studio.dart'; import 'package:didvan/routes/routes.dart'; import 'package:didvan/services/media/media.dart'; +import 'package:didvan/services/network/request.dart'; import 'package:didvan/views/podcasts/studio_details/studio_details_state.dart'; import 'package:didvan/views/widgets/didvan/card.dart'; import 'package:didvan/views/widgets/didvan/text.dart'; @@ -14,6 +15,7 @@ import 'package:didvan/views/widgets/skeleton_image.dart'; import 'package:flutter/material.dart'; import 'package:persian_number_utility/persian_number_utility.dart'; import 'package:provider/provider.dart'; +import 'package:url_launcher/url_launcher_string.dart'; class SearchResultItem extends StatelessWidget { final OverviewData item; @@ -33,14 +35,20 @@ class SearchResultItem extends StatelessWidget { return StudioRequestArgs(page: 0, type: item.type); } - String get _targetPageRouteName { + String? get _targetPageRouteName { if (item.type == 'radar') { return Routes.radarDetails; } if (item.type == 'news') { return Routes.newsDetails; } - return Routes.studioDetails; + if (item.type == 'podcast') { + return Routes.podcasts; + } + if (item.type == 'video') { + return Routes.videocasts; + } + return null; } IconData get _icon { @@ -80,8 +88,17 @@ class SearchResultItem extends StatelessWidget { ); return; } + + if (_targetPageRouteName == null && item.link != null) { + launchUrlString( + '${item.link!}?accessToken=${RequestService.token}', + mode: LaunchMode.inAppWebView, + ); + return; + } + Navigator.of(context).pushNamed( - _targetPageRouteName, + _targetPageRouteName!, arguments: { 'id': item.id, 'args': _targetPageArgs,