From 9c096bcd0cf9eba1377844264d82d87a5a8d7ddb Mon Sep 17 00:00:00 2001 From: MohammadTaha Basiri Date: Wed, 16 Mar 2022 11:06:55 +0330 Subject: [PATCH] bug fixes --- lib/providers/server_data_provider.dart | 2 +- lib/views/home/direct/direct.dart | 10 ++++++++++ lib/views/home/direct/widgets/message_box.dart | 11 +++++++++-- .../home/widgets/floating_navigation_bar.dart | 14 +++++++++++++- lib/views/widgets/didvan/page_view.dart | 2 ++ lib/views/widgets/didvan/text.dart | 4 +++- 6 files changed, 38 insertions(+), 5 deletions(-) diff --git a/lib/providers/server_data_provider.dart b/lib/providers/server_data_provider.dart index 3b76c8f..532bb5e 100644 --- a/lib/providers/server_data_provider.dart +++ b/lib/providers/server_data_provider.dart @@ -8,7 +8,7 @@ class ServerDataProvider { await _getDirectTypes(); } - static int labelToTypeId(String? label) => label == null + static int labelToTypeId(String label) => label.contains('پشتیبانی') ? 7 : directTypes.firstWhere((element) => element.value.contains(label)).key; diff --git a/lib/views/home/direct/direct.dart b/lib/views/home/direct/direct.dart index 2af96ec..17ddee1 100644 --- a/lib/views/home/direct/direct.dart +++ b/lib/views/home/direct/direct.dart @@ -1,3 +1,4 @@ +import 'package:didvan/constants/assets.dart'; import 'package:didvan/models/enums.dart'; import 'package:didvan/models/view/app_bar_data.dart'; import 'package:didvan/providers/server_data_provider.dart'; @@ -6,6 +7,7 @@ import 'package:didvan/views/home/direct/direct_state.dart'; import 'package:didvan/views/home/direct/widgets/message.dart'; import 'package:didvan/views/home/direct/widgets/message_box.dart'; import 'package:didvan/views/widgets/didvan/scaffold.dart'; +import 'package:didvan/views/widgets/state_handlers/empty_state.dart'; import 'package:didvan/views/widgets/state_handlers/sliver_state_handler.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; @@ -66,6 +68,14 @@ class _DirectState extends State { sliver: SliverStateHandler( itemPadding: const EdgeInsets.only(bottom: 12), state: state, + enableEmptyState: state.messages.isEmpty, + emptyState: Padding( + padding: const EdgeInsets.only(bottom: 160), + child: EmptyState( + asset: Assets.emptyChat, + title: 'اولین پیام را بنویسید...', + ), + ), builder: (context, state, index) => Message( message: state.messages[index], ), diff --git a/lib/views/home/direct/widgets/message_box.dart b/lib/views/home/direct/widgets/message_box.dart index 897cff5..c09d592 100644 --- a/lib/views/home/direct/widgets/message_box.dart +++ b/lib/views/home/direct/widgets/message_box.dart @@ -18,6 +18,7 @@ class MessageBox extends StatelessWidget { Consumer( builder: (context, state, child) => state.replyRadar != null ? _MessageBoxContainer( + isMessage: false, child: Padding( padding: const EdgeInsets.all(8.0), child: Row( @@ -53,6 +54,7 @@ class MessageBox extends StatelessWidget { : const SizedBox(), ), _MessageBoxContainer( + isMessage: true, child: Consumer( builder: (context, state, child) { if (state.isRecording) { @@ -71,12 +73,17 @@ class MessageBox extends StatelessWidget { class _MessageBoxContainer extends StatelessWidget { final Widget child; - const _MessageBoxContainer({Key? key, required this.child}) : super(key: key); + final bool isMessage; + const _MessageBoxContainer({ + Key? key, + required this.child, + required this.isMessage, + }) : super(key: key); @override Widget build(BuildContext context) { return Container( - height: 68, + height: isMessage ? 68 : null, decoration: BoxDecoration( border: Border( top: BorderSide( diff --git a/lib/views/home/widgets/floating_navigation_bar.dart b/lib/views/home/widgets/floating_navigation_bar.dart index 3cc0323..95727d1 100644 --- a/lib/views/home/widgets/floating_navigation_bar.dart +++ b/lib/views/home/widgets/floating_navigation_bar.dart @@ -233,7 +233,19 @@ class _FloatingNavigationBarState extends State { Navigator.of(context).pop(); Navigator.of(context).pushNamed( Routes.direct, - arguments: {}, + arguments: { + 'radarAttachment': RadarAttachment( + id: widget.item.id, + title: widget.item.title, + description: widget.item.contents.first.text, + timeToRead: widget.item.timeToRead, + image: widget.item.image, + forManagers: widget.item.forManagers, + categories: widget.item.categories, + createdAt: widget.item.createdAt, + ), + 'type': 'پشتیبانی' + }, ); }, icon: DidvanIcons.description_regular, diff --git a/lib/views/widgets/didvan/page_view.dart b/lib/views/widgets/didvan/page_view.dart index f0a83d3..7fc6b19 100644 --- a/lib/views/widgets/didvan/page_view.dart +++ b/lib/views/widgets/didvan/page_view.dart @@ -14,6 +14,7 @@ import 'package:didvan/views/widgets/item_title.dart'; import 'package:didvan/views/widgets/skeleton_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_html/flutter_html.dart'; +import 'package:url_launcher/url_launcher.dart'; class DidvanPageView extends StatefulWidget { final List items; @@ -183,6 +184,7 @@ class _DidvanPageViewState extends State { if (content.text != null) { return Html( data: content.text, + onAnchorTap: (href, context, map, element) => launch(href!), style: { '*': Style( direction: TextDirection.rtl, diff --git a/lib/views/widgets/didvan/text.dart b/lib/views/widgets/didvan/text.dart index 1ea5ec8..b2e840b 100644 --- a/lib/views/widgets/didvan/text.dart +++ b/lib/views/widgets/didvan/text.dart @@ -34,7 +34,9 @@ class DidvanText extends StatelessWidget { fontWeight: fontWeight, fontSize: fontSize, )).copyWith( - fontFamily: isEnglishFont ? DesignConfig.fontFamily : null, + fontFamily: isEnglishFont + ? DesignConfig.fontFamily.replaceAll('-FA', '') + : null, height: 1.7, ), overflow: overflow,