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 {
final List<List<MainPageBannerType>> banners;
final List<MainPageList> lists;
final int unread;
const MainPageContent(
{required this.banners, required this.lists, required this.unread});
const MainPageContent({required this.banners, required this.lists});
factory MainPageContent.fromJson(Map<String, dynamic> json) {
return MainPageContent(
@ -24,7 +22,6 @@ class MainPageContent {
(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:flutter/material.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 {
const MainPage({super.key});
@ -69,7 +70,10 @@ class _MainPageSection extends StatelessWidget {
void _moreHandler(BuildContext context) {
if (list.link.startsWith('http')) {
launchUrl(Uri.parse(list.link));
launchUrlString(
'${list.link}?accessToken=${RequestService.token}',
mode: LaunchMode.inAppWebView,
);
return;
}
Navigator.of(context).pushNamed(list.link);

View File

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

View File

@ -37,6 +37,7 @@ class MainPageBanner extends StatelessWidget {
itemCount: state.content.banners[isFirst ? 0 : 1].length,
viewportFraction: 1,
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 == 1) return 'قدیمی‌ترین‌ها';
if (selectedSortTypeIndex == 2) return 'پربازدیدترین‌ها';
return 'پربحث‌نرین‌ها';
return 'پربحث‌ترین‌ها';
}
String get type {

View File

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

View File

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

View File

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