bug fix
This commit is contained in:
parent
2025e689d9
commit
cbfebd0981
|
|
@ -0,0 +1,31 @@
|
||||||
|
//
|
||||||
|
// Generated file. Do not edit.
|
||||||
|
//
|
||||||
|
|
||||||
|
// ignore_for_file: directives_ordering
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
// ignore_for_file: depend_on_referenced_packages
|
||||||
|
|
||||||
|
import 'package:assets_audio_player_web/web/assets_audio_player_web.dart';
|
||||||
|
import 'package:firebase_core_web/firebase_core_web.dart';
|
||||||
|
import 'package:firebase_messaging_web/firebase_messaging_web.dart';
|
||||||
|
import 'package:flutter_secure_storage_web/flutter_secure_storage_web.dart';
|
||||||
|
import 'package:image_picker_for_web/image_picker_for_web.dart';
|
||||||
|
import 'package:record_web/record_web.dart';
|
||||||
|
import 'package:url_launcher_web/url_launcher_web.dart';
|
||||||
|
import 'package:wakelock_web/wakelock_web.dart';
|
||||||
|
|
||||||
|
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
|
||||||
|
|
||||||
|
// ignore: public_member_api_docs
|
||||||
|
void registerPlugins(Registrar registrar) {
|
||||||
|
AssetsAudioPlayerWebPlugin.registerWith(registrar);
|
||||||
|
FirebaseCoreWeb.registerWith(registrar);
|
||||||
|
FirebaseMessagingWeb.registerWith(registrar);
|
||||||
|
FlutterSecureStorageWeb.registerWith(registrar);
|
||||||
|
ImagePickerPlugin.registerWith(registrar);
|
||||||
|
RecordPluginWeb.registerWith(registrar);
|
||||||
|
UrlLauncherPlugin.registerWith(registrar);
|
||||||
|
WakelockWeb.registerWith(registrar);
|
||||||
|
registrar.registerMessageHandler();
|
||||||
|
}
|
||||||
|
|
@ -10,7 +10,9 @@ class ServerDataProvider {
|
||||||
}
|
}
|
||||||
|
|
||||||
static int labelToTypeId(String label) {
|
static int labelToTypeId(String label) {
|
||||||
if (label.contains('پشتیبانی اپلیکیشن')) {
|
if (label.contains('میخواهم بیشتر بدانم')) {
|
||||||
|
return 9;
|
||||||
|
} else if (label.contains('پشتیبانی اپلیکیشن')) {
|
||||||
return 8;
|
return 8;
|
||||||
} else if (label.contains('پشتیبانی محتوا')) {
|
} else if (label.contains('پشتیبانی محتوا')) {
|
||||||
return 7;
|
return 7;
|
||||||
|
|
|
||||||
|
|
@ -14,12 +14,12 @@ class StorageService {
|
||||||
required String subDirectory,
|
required String subDirectory,
|
||||||
required String name,
|
required String name,
|
||||||
}) async {
|
}) async {
|
||||||
final dir = io.Directory(appDocsDir + '/$subDirectory');
|
final dir = io.Directory('$appDocsDir/$subDirectory');
|
||||||
if (!await dir.exists()) {
|
if (!await dir.exists()) {
|
||||||
await dir.create(recursive: true);
|
await dir.create(recursive: true);
|
||||||
}
|
}
|
||||||
final file = await io.File(
|
final file = await io.File(
|
||||||
appDocsDir + '/$subDirectory/$name',
|
'$appDocsDir/$subDirectory/$name',
|
||||||
).create(recursive: true);
|
).create(recursive: true);
|
||||||
await file.writeAsBytes(bytes);
|
await file.writeAsBytes(bytes);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -91,24 +91,24 @@ class DateTimeUtils {
|
||||||
double interval = seconds / 31536000;
|
double interval = seconds / 31536000;
|
||||||
|
|
||||||
if (interval > 1) {
|
if (interval > 1) {
|
||||||
return interval.floor().toString() + " سال پیش";
|
return "${interval.floor()} سال پیش";
|
||||||
}
|
}
|
||||||
interval = seconds / 2592000;
|
interval = seconds / 2592000;
|
||||||
if (interval > 1) {
|
if (interval > 1) {
|
||||||
return interval.floor().toString() + " ماه پیش";
|
return "${interval.floor()} ماه پیش";
|
||||||
}
|
}
|
||||||
interval = seconds / 86400;
|
interval = seconds / 86400;
|
||||||
if (interval > 1) {
|
if (interval > 1) {
|
||||||
if (interval.floor() == 1) return 'دیروز';
|
if (interval.floor() == 1) return 'دیروز';
|
||||||
return interval.floor().toString() + " روز پیش";
|
return "${interval.floor()} روز پیش";
|
||||||
}
|
}
|
||||||
interval = seconds / 3600;
|
interval = seconds / 3600;
|
||||||
if (interval > 1) {
|
if (interval > 1) {
|
||||||
return interval.floor().toString() + " ساعت پیش";
|
return "${interval.floor()} ساعت پیش";
|
||||||
}
|
}
|
||||||
interval = seconds / 60;
|
interval = seconds / 60;
|
||||||
if (interval > 1) {
|
if (interval > 1) {
|
||||||
return interval.floor().toString() + " دقیقه پیش";
|
return "${interval.floor()} دقیقه پیش";
|
||||||
}
|
}
|
||||||
return 'هم اکنون';
|
return 'هم اکنون';
|
||||||
// return seconds.floor().toString() + " ثانیه پیش";
|
// return seconds.floor().toString() + " ثانیه پیش";
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ class AuthenticationState extends CoreProvier {
|
||||||
|
|
||||||
Future<void> sendOtpToken() async {
|
Future<void> sendOtpToken() async {
|
||||||
final service = RequestService(
|
final service = RequestService(
|
||||||
RequestHelper.otp + '?username=$username',
|
'${RequestHelper.otp}?username=$username',
|
||||||
useAutherization: false,
|
useAutherization: false,
|
||||||
);
|
);
|
||||||
await service.httpGet();
|
await service.httpGet();
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import 'package:didvan/views/authentication/widgets/authentication_app_bar.dart';
|
import 'package:didvan/views/authentication/widgets/authentication_app_bar.dart';
|
||||||
import 'package:didvan/views/widgets/logos/didvan_horizontal_logo.dart';
|
import 'package:didvan/views/widgets/logos/didvan_horizontal_logo.dart';
|
||||||
|
import 'package:didvan/views/widgets/logos/didvan_vertical_logo.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class AuthenticationLayout extends StatelessWidget {
|
class AuthenticationLayout extends StatelessWidget {
|
||||||
|
|
@ -39,9 +40,7 @@ class AuthenticationLayout extends StatelessWidget {
|
||||||
bottom: 40,
|
bottom: 40,
|
||||||
),
|
),
|
||||||
sliver: const SliverToBoxAdapter(
|
sliver: const SliverToBoxAdapter(
|
||||||
child: DidvanVerticalLogo(
|
child: DidvanHorizontalLogo(),
|
||||||
height: 200,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SliverPadding(
|
SliverPadding(
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ class Comments extends StatefulWidget {
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_CommentsState createState() => _CommentsState();
|
State<Comments> createState() => _CommentsState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _CommentsState extends State<Comments> {
|
class _CommentsState extends State<Comments> {
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@ class _StatisticDetailsState extends State<StatisticDetails> {
|
||||||
),
|
),
|
||||||
const SizedBox(height: 20),
|
const SizedBox(height: 20),
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
padding: const EdgeInsets.symmetric(horizontal: 60),
|
||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
height: 120,
|
height: 120,
|
||||||
|
|
@ -89,13 +89,10 @@ class _StatisticDetailsState extends State<StatisticDetails> {
|
||||||
Theme.of(context).colorScheme.navigation,
|
Theme.of(context).colorScheme.navigation,
|
||||||
getTooltipItems: (data) => [
|
getTooltipItems: (data) => [
|
||||||
LineTooltipItem(
|
LineTooltipItem(
|
||||||
state.datas[data.first.spotIndex].tEn! +
|
'${state.datas[data.first.spotIndex].tEn!}\n${intl.NumberFormat("###,000", "en_US").format(
|
||||||
'\n' +
|
data.first.bar
|
||||||
intl.NumberFormat("###,000", "en_US")
|
.spots[data.first.spotIndex].y,
|
||||||
.format(
|
)}',
|
||||||
data.first.bar
|
|
||||||
.spots[data.first.spotIndex].y,
|
|
||||||
),
|
|
||||||
Theme.of(context)
|
Theme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.caption!
|
.caption!
|
||||||
|
|
|
||||||
|
|
@ -97,7 +97,7 @@ class StatisticOverview extends StatelessWidget {
|
||||||
if (_hasDiff) const SizedBox(width: 4),
|
if (_hasDiff) const SizedBox(width: 4),
|
||||||
if (_hasDiff)
|
if (_hasDiff)
|
||||||
DidvanText(
|
DidvanText(
|
||||||
statistic.data.dp.toString() + '%',
|
'${statistic.data.dp}%',
|
||||||
style: Theme.of(context).textTheme.caption,
|
style: Theme.of(context).textTheme.caption,
|
||||||
color: _diffColor(context),
|
color: _diffColor(context),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -16,12 +16,10 @@ import 'package:didvan/views/home/widgets/overview/podcast.dart';
|
||||||
import 'package:didvan/views/home/widgets/overview/video.dart';
|
import 'package:didvan/views/home/widgets/overview/video.dart';
|
||||||
import 'package:didvan/views/home/widgets/search_field.dart';
|
import 'package:didvan/views/home/widgets/search_field.dart';
|
||||||
import 'package:didvan/views/widgets/animated_visibility.dart';
|
import 'package:didvan/views/widgets/animated_visibility.dart';
|
||||||
import 'package:didvan/views/widgets/didvan/checkbox.dart';
|
|
||||||
import 'package:didvan/views/widgets/didvan/divider.dart';
|
import 'package:didvan/views/widgets/didvan/divider.dart';
|
||||||
import 'package:didvan/views/widgets/didvan/icon_button.dart';
|
import 'package:didvan/views/widgets/didvan/icon_button.dart';
|
||||||
import 'package:didvan/views/widgets/didvan/radial_button.dart';
|
import 'package:didvan/views/widgets/didvan/radial_button.dart';
|
||||||
import 'package:didvan/views/widgets/item_title.dart';
|
import 'package:didvan/views/widgets/item_title.dart';
|
||||||
import 'package:didvan/views/widgets/logos/didvan_vertical_logo.dart';
|
|
||||||
import 'package:didvan/views/widgets/state_handlers/empty_result.dart';
|
import 'package:didvan/views/widgets/state_handlers/empty_result.dart';
|
||||||
import 'package:didvan/views/widgets/state_handlers/sliver_state_handler.dart';
|
import 'package:didvan/views/widgets/state_handlers/sliver_state_handler.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
|
||||||
|
|
@ -46,8 +46,7 @@ class _StudioDetailsState extends State<StudioDetails> {
|
||||||
(int viewId) => html.IFrameElement()
|
(int viewId) => html.IFrameElement()
|
||||||
..allowFullscreen = true
|
..allowFullscreen = true
|
||||||
..src = Uri.dataFromString(
|
..src = Uri.dataFromString(
|
||||||
'<style>*{padding: 0 ; margin: 0; background: black;}</style>' +
|
'<style>*{padding: 0 ; margin: 0; background: black;}</style>${state.studio.iframe!}',
|
||||||
state.studio.iframe!,
|
|
||||||
mimeType: 'text/html',
|
mimeType: 'text/html',
|
||||||
).toString()
|
).toString()
|
||||||
..style.border = 'none',
|
..style.border = 'none',
|
||||||
|
|
|
||||||
|
|
@ -222,7 +222,7 @@ class AudioPlayerWidget extends StatelessWidget {
|
||||||
),
|
),
|
||||||
const SizedBox(height: 24),
|
const SizedBox(height: 24),
|
||||||
DidvanText(
|
DidvanText(
|
||||||
timerValue.toString() + ' دقیقه',
|
'$timerValue دقیقه',
|
||||||
style: Theme.of(context).textTheme.headline3,
|
style: Theme.of(context).textTheme.headline3,
|
||||||
),
|
),
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
|
|
|
||||||
|
|
@ -121,14 +121,6 @@ class _CategoriesListState extends State<CategoriesList> {
|
||||||
width: 100,
|
width: 100,
|
||||||
padding: const EdgeInsets.all(4),
|
padding: const EdgeInsets.all(4),
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
child: FittedBox(
|
|
||||||
fit: BoxFit.scaleDown,
|
|
||||||
child: DidvanText(
|
|
||||||
category.label,
|
|
||||||
fontWeight: FontWeight.w600,
|
|
||||||
color: Theme.of(context).colorScheme.focusedBorder,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: widget.selectedCats.length == 1 &&
|
color: widget.selectedCats.length == 1 &&
|
||||||
widget.selectedCats.contains(category) ||
|
widget.selectedCats.contains(category) ||
|
||||||
|
|
@ -140,6 +132,14 @@ class _CategoriesListState extends State<CategoriesList> {
|
||||||
),
|
),
|
||||||
borderRadius: DesignConfig.lowBorderRadius,
|
borderRadius: DesignConfig.lowBorderRadius,
|
||||||
),
|
),
|
||||||
|
child: FittedBox(
|
||||||
|
fit: BoxFit.scaleDown,
|
||||||
|
child: DidvanText(
|
||||||
|
category.label,
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
color: Theme.of(context).colorScheme.focusedBorder,
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -260,6 +260,32 @@ class _FloatingNavigationBarState extends State<FloatingNavigationBar> {
|
||||||
},
|
},
|
||||||
icon: DidvanIcons.description_regular,
|
icon: DidvanIcons.description_regular,
|
||||||
),
|
),
|
||||||
|
if (widget.isRadar) ...[
|
||||||
|
const DidvanDivider(),
|
||||||
|
MenuOption(
|
||||||
|
title: 'میخواهم بیشتر بدانم',
|
||||||
|
icon: DidvanIcons.info_circle_regular,
|
||||||
|
onTap: () {
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
Navigator.of(context).pushNamed(
|
||||||
|
Routes.direct,
|
||||||
|
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': 'میخواهم بیشتر بدانم'
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
title: 'موارد بیشتر',
|
title: 'موارد بیشتر',
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ class NewsOverview extends StatelessWidget {
|
||||||
style: Theme.of(context).textTheme.caption,
|
style: Theme.of(context).textTheme.caption,
|
||||||
),
|
),
|
||||||
DidvanText(
|
DidvanText(
|
||||||
' - ' + DateTimeUtils.momentGenerator(news.createdAt),
|
' - ${DateTimeUtils.momentGenerator(news.createdAt)}',
|
||||||
style: Theme.of(context).textTheme.caption,
|
style: Theme.of(context).textTheme.caption,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
import 'dart:developer';
|
import 'dart:developer';
|
||||||
|
|
||||||
import 'package:didvan/config/design_config.dart';
|
import 'package:didvan/config/design_config.dart';
|
||||||
import 'package:didvan/config/theme_data.dart';
|
|
||||||
import 'package:didvan/constants/assets.dart';
|
import 'package:didvan/constants/assets.dart';
|
||||||
import 'package:didvan/main.dart';
|
import 'package:didvan/main.dart';
|
||||||
import 'package:didvan/providers/media.dart';
|
import 'package:didvan/providers/media.dart';
|
||||||
|
|
@ -14,12 +13,9 @@ import 'package:didvan/services/network/request.dart';
|
||||||
import 'package:didvan/services/storage/storage.dart';
|
import 'package:didvan/services/storage/storage.dart';
|
||||||
import 'package:didvan/utils/action_sheet.dart';
|
import 'package:didvan/utils/action_sheet.dart';
|
||||||
import 'package:didvan/views/widgets/didvan/button.dart';
|
import 'package:didvan/views/widgets/didvan/button.dart';
|
||||||
import 'package:didvan/views/widgets/logos/didvan_horizontal_logo.dart';
|
|
||||||
import 'package:didvan/views/widgets/logos/didvan_vertical_logo.dart';
|
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_spinkit/flutter_spinkit.dart';
|
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:universal_html/html.dart' as html;
|
import 'package:universal_html/html.dart' as html;
|
||||||
|
|
@ -28,7 +24,7 @@ class Splash extends StatefulWidget {
|
||||||
const Splash({Key? key}) : super(key: key);
|
const Splash({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_SplashState createState() => _SplashState();
|
State<Splash> createState() => _SplashState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _SplashState extends State<Splash> {
|
class _SplashState extends State<Splash> {
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ class AnimatedVisibility extends StatefulWidget {
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_AnimatedVisibilityState createState() => _AnimatedVisibilityState();
|
State<AnimatedVisibility> createState() => _AnimatedVisibilityState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _AnimatedVisibilityState extends State<AnimatedVisibility>
|
class _AnimatedVisibilityState extends State<AnimatedVisibility>
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ import 'package:didvan/routes/routes.dart';
|
||||||
import 'package:didvan/utils/action_sheet.dart';
|
import 'package:didvan/utils/action_sheet.dart';
|
||||||
import 'package:didvan/utils/date_time.dart';
|
import 'package:didvan/utils/date_time.dart';
|
||||||
import 'package:didvan/views/home/direct/widgets/audio_widget.dart';
|
import 'package:didvan/views/home/direct/widgets/audio_widget.dart';
|
||||||
import 'package:didvan/views/home/widgets/audio/audio_slider.dart';
|
|
||||||
import 'package:didvan/views/home/widgets/overview/multitype.dart';
|
import 'package:didvan/views/home/widgets/overview/multitype.dart';
|
||||||
import 'package:didvan/views/home/widgets/tag_item.dart';
|
import 'package:didvan/views/home/widgets/tag_item.dart';
|
||||||
import 'package:didvan/views/widgets/animated_visibility.dart';
|
import 'package:didvan/views/widgets/animated_visibility.dart';
|
||||||
|
|
@ -387,7 +386,7 @@ class _DidvanPageViewState extends State<DidvanPageView> {
|
||||||
style: Theme.of(context).textTheme.caption,
|
style: Theme.of(context).textTheme.caption,
|
||||||
),
|
),
|
||||||
DidvanText(
|
DidvanText(
|
||||||
' - ' + DateTimeUtils.momentGenerator(item.createdAt),
|
' - ${DateTimeUtils.momentGenerator(item.createdAt)}',
|
||||||
style: Theme.of(context).textTheme.caption,
|
style: Theme.of(context).textTheme.caption,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
@ -400,7 +399,7 @@ class _DidvanPageViewState extends State<DidvanPageView> {
|
||||||
style: Theme.of(context).textTheme.caption,
|
style: Theme.of(context).textTheme.caption,
|
||||||
),
|
),
|
||||||
DidvanText(
|
DidvanText(
|
||||||
' - ' + DateTimeUtils.momentGenerator(item.createdAt),
|
' - ${DateTimeUtils.momentGenerator(item.createdAt)}',
|
||||||
style: Theme.of(context).textTheme.caption,
|
style: Theme.of(context).textTheme.caption,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ import 'package:didvan/models/enums.dart';
|
||||||
import 'package:didvan/providers/core.dart';
|
import 'package:didvan/providers/core.dart';
|
||||||
import 'package:didvan/views/widgets/state_handlers/empty_connection.dart';
|
import 'package:didvan/views/widgets/state_handlers/empty_connection.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_spinkit/flutter_spinkit.dart';
|
|
||||||
|
|
||||||
class StateHandler<T extends CoreProvier> extends StatelessWidget {
|
class StateHandler<T extends CoreProvier> extends StatelessWidget {
|
||||||
final T state;
|
final T state;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue