fixing some issues

This commit is contained in:
Amir Hossein Mousavi 2024-02-28 00:44:47 +03:30
parent fe735e65a8
commit 445b37bc91
8 changed files with 46 additions and 37 deletions

View File

@ -5,10 +5,8 @@ import 'home_page_list.dart';
class MainPageContent { class MainPageContent {
final List<List<MainPageBannerType>> banners; final List<List<MainPageBannerType>> banners;
final List<MainPageList> lists; final List<MainPageList> lists;
final int unread;
const MainPageContent( const MainPageContent({required this.banners, required this.lists});
{required this.banners, required this.lists, required this.unread});
factory MainPageContent.fromJson(Map<String, dynamic> json) { factory MainPageContent.fromJson(Map<String, dynamic> json) {
return MainPageContent( return MainPageContent(
@ -24,7 +22,6 @@ class MainPageContent {
(x) => MainPageList.fromJson(x), (x) => MainPageList.fromJson(x),
), ),
), ),
unread: json['unread'],
); );
} }
} }

View File

@ -11,7 +11,8 @@ import 'package:didvan/views/widgets/didvan/text.dart';
import 'package:didvan/views/widgets/state_handlers/state_handler.dart'; import 'package:didvan/views/widgets/state_handlers/state_handler.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher_string.dart';
import 'package:didvan/services/network/request.dart';
class MainPage extends StatefulWidget { class MainPage extends StatefulWidget {
const MainPage({super.key}); const MainPage({super.key});
@ -69,7 +70,10 @@ class _MainPageSection extends StatelessWidget {
void _moreHandler(BuildContext context) { void _moreHandler(BuildContext context) {
if (list.link.startsWith('http')) { if (list.link.startsWith('http')) {
launchUrl(Uri.parse(list.link)); launchUrlString(
'${list.link}?accessToken=${RequestService.token}',
mode: LaunchMode.inAppWebView,
);
return; return;
} }
Navigator.of(context).pushNamed(list.link); Navigator.of(context).pushNamed(list.link);

View File

@ -12,11 +12,14 @@ import 'package:url_launcher/url_launcher_string.dart';
class MainPageState extends CoreProvier { class MainPageState extends CoreProvier {
late MainPageContent content; late MainPageContent content;
int unread = 0;
Future<void> _getMainPageContent() async { Future<void> _getMainPageContent() async {
final service = RequestService(RequestHelper.mainPageContent); final service = RequestService(RequestHelper.mainPageContent);
await service.httpGet(); await service.httpGet();
if (service.isSuccess) { if (service.isSuccess) {
content = MainPageContent.fromJson(service.result); content = MainPageContent.fromJson(service.result);
unread = service.result['unread'];
appState = AppState.idle; appState = AppState.idle;
return; return;
} }

View File

@ -37,6 +37,7 @@ class MainPageBanner extends StatelessWidget {
itemCount: state.content.banners[isFirst ? 0 : 1].length, itemCount: state.content.banners[isFirst ? 0 : 1].length,
viewportFraction: 1, viewportFraction: 1,
enableIndicator: true, enableIndicator: true,
height: (MediaQuery.of(context).size.width - 8) * 9.0 / 16.0,
); );
} }

View File

@ -58,7 +58,7 @@ class PodcastsState extends CoreProvier {
if (selectedSortTypeIndex == 0) return 'تازه‌ترین‌ها'; if (selectedSortTypeIndex == 0) return 'تازه‌ترین‌ها';
if (selectedSortTypeIndex == 1) return 'قدیمی‌ترین‌ها'; if (selectedSortTypeIndex == 1) return 'قدیمی‌ترین‌ها';
if (selectedSortTypeIndex == 2) return 'پربازدیدترین‌ها'; if (selectedSortTypeIndex == 2) return 'پربازدیدترین‌ها';
return 'پربحث‌نرین‌ها'; return 'پربحث‌ترین‌ها';
} }
String get type { String get type {

View File

@ -208,7 +208,7 @@ class _StudioPreview extends StatelessWidget {
String get _previewTitle { String get _previewTitle {
if (studio.type == 'video') { if (studio.type == 'video') {
return 'ویدیو ${isNext ? 'بعدی' : 'قبلی'} '; return 'ویدیوی ${isNext ? 'بعدی' : 'قبلی'} ';
} }
return 'پادکست ${isNext ? 'بعدی' : 'قبلی'} '; return 'پادکست ${isNext ? 'بعدی' : 'قبلی'} ';
} }

View File

@ -54,12 +54,13 @@ class ChatRoomItem extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
const SizedBox(width: 40), const SizedBox(width: 40),
Icon( if (!chatRoom.lastMessage.writedByAdmin)
chatRoom.lastMessage.readed Icon(
? DidvanIcons.check_double_light chatRoom.lastMessage.readed
: DidvanIcons.check_light, ? DidvanIcons.check_double_light
size: 16, : DidvanIcons.check_light,
), size: 16,
),
const SizedBox(width: 4), const SizedBox(width: 4),
Expanded( Expanded(
child: Column( child: Column(

View File

@ -7,6 +7,7 @@ import 'package:didvan/providers/theme.dart';
import 'package:didvan/routes/routes.dart'; import 'package:didvan/routes/routes.dart';
import 'package:didvan/utils/action_sheet.dart'; import 'package:didvan/utils/action_sheet.dart';
import 'package:didvan/views/home/home_state.dart'; import 'package:didvan/views/home/home_state.dart';
import 'package:didvan/views/home/main/main_page_state.dart';
import 'package:didvan/views/widgets/date_picker_button.dart'; import 'package:didvan/views/widgets/date_picker_button.dart';
import 'package:didvan/views/widgets/didvan/checkbox.dart'; import 'package:didvan/views/widgets/didvan/checkbox.dart';
import 'package:didvan/views/widgets/item_title.dart'; import 'package:didvan/views/widgets/item_title.dart';
@ -66,31 +67,33 @@ class LogoAppBar extends StatelessWidget implements PreferredSizeWidget {
width: 1, width: 1,
color: Theme.of(context).colorScheme.border, color: Theme.of(context).colorScheme.border,
), ),
Stack( Consumer<MainPageState>(
children: [ builder: (_, state, __) => Stack(
DidvanIconButton( children: [
icon: state.unreadCount == 0 DidvanIconButton(
? DidvanIcons.message_light icon: state.unread == 0
: DidvanIcons.message_solid, ? DidvanIcons.message_light
size: 32, : DidvanIcons.message_solid,
onPressed: () => size: 32,
Navigator.of(context).pushNamed(Routes.directList), onPressed: () => Navigator.of(context)
), .pushNamed(Routes.directList),
if (state.unreadCount != 0) ),
Positioned( if (state.unread > 0)
top: 8, Positioned(
right: 4, top: 8,
child: Container( right: 4,
height: 12, child: Container(
width: 12, height: 12,
decoration: BoxDecoration( width: 12,
shape: BoxShape.circle, decoration: BoxDecoration(
color: Theme.of(context).colorScheme.secondary, shape: BoxShape.circle,
color: Theme.of(context).colorScheme.secondary,
),
), ),
), ),
), ],
], ),
), )
], ],
), ),
], ],