bug fixes | code cleaning

This commit is contained in:
MohammadTaha Basiri 2022-01-20 18:16:04 +03:30
parent 0df576e617
commit 08a2de5751
4 changed files with 46 additions and 39 deletions

View File

@ -1,8 +1,8 @@
import 'package:didvan/config/design_config.dart';
import 'package:didvan/pages/home/home_state.dart';
import 'package:didvan/pages/home/news/news.dart';
import 'package:didvan/pages/home/profile/profile.dart';
import 'package:didvan/pages/home/radar/radar.dart';
import 'package:didvan/pages/home/settings/settings.dart';
import 'package:didvan/pages/home/statistics/statistics.dart';
import 'package:didvan/pages/home/studio/studio.dart';
import 'package:didvan/pages/home/widgets/bnb.dart';
@ -22,7 +22,7 @@ class _HomeState extends State<Home> with SingleTickerProviderStateMixin {
@override
void initState() {
DesignConfig.updateSystemUiOverlayStyle();
_tabController = TabController(length: 5, vsync: this);
_tabController = TabController(length: 5, vsync: this, initialIndex: 2);
_tabController.addListener(() {
context.read<HomeState>().currentPageIndex = _tabController.index;
});
@ -40,7 +40,7 @@ class _HomeState extends State<Home> with SingleTickerProviderStateMixin {
Statictics(),
Radar(),
Studio(),
Profile(),
Settings(),
],
),
bottomNavigationBar: Consumer<HomeState>(
@ -48,6 +48,7 @@ class _HomeState extends State<Home> with SingleTickerProviderStateMixin {
currentTabIndex: state.currentPageIndex,
onTabChanged: (index) {
state.currentPageIndex = index;
FocusScope.of(context).unfocus();
_tabController.animateTo(index);
},
),

View File

@ -25,7 +25,6 @@ class News extends StatefulWidget {
class _NewsState extends State<News> {
Timer? _timer;
@override
void initState() {
Future.delayed(Duration.zero, () {
@ -48,6 +47,7 @@ class _NewsState extends State<News> {
title: 'اخبار',
onChanged: _onChanged,
onFilterButtonPressed: _showFilterBottomSheet,
isFiltered: state.isFiltering,
),
),
),

View File

@ -1,12 +1,11 @@
import 'package:didvan/constants/app_icons.dart';
import 'package:didvan/models/news_overview.dart';
import 'package:didvan/pages/home/news/news_state.dart';
import 'package:didvan/routes/routes.dart';
import 'package:didvan/widgets/bookmark_button.dart';
import 'package:didvan/widgets/didvan/card.dart';
import 'package:didvan/widgets/didvan/divider.dart';
import 'package:didvan/widgets/didvan/icon_button.dart';
import 'package:didvan/widgets/didvan/text.dart';
import 'package:didvan/widgets/skeletun_image.dart';
import 'package:didvan/widgets/skeleton_image.dart';
import 'package:flutter/material.dart';
import 'package:persian_number_utility/persian_number_utility.dart';
import 'package:provider/provider.dart';
@ -20,7 +19,7 @@ class NewsItem extends StatelessWidget {
final state = context.read<NewsState>();
return DidvanCard(
onTap: () => Navigator.of(context).pushNamed(
Routes.radarDetails,
Routes.newsDetails,
arguments: {
'state': state,
'id': news.id,
@ -61,12 +60,10 @@ class NewsItem extends StatelessWidget {
'${news.reference} | ${DateTime.parse(news.createdAt).toPersianDateStr()}',
style: Theme.of(context).textTheme.overline,
),
DidvanIconButton(
icon: news.marked
? DidvanIcons.bookmark_solid
: DidvanIcons.bookmark_regular,
gestureSize: 32,
onPressed: () => state.markNews(news.id),
BookmarkButton(
value: news.marked,
onMark: () => state.markNews(news.id),
onUnmark: () => state.unMarkNews(news.id),
),
],
),

View File

@ -8,11 +8,14 @@ import 'package:didvan/providers/user_provider.dart';
import 'package:didvan/routes/routes.dart';
import 'package:didvan/services/app_initalizer.dart';
import 'package:didvan/services/network/request.dart';
import 'package:didvan/services/storage/storage.dart';
import 'package:didvan/utils/action_sheet.dart';
import 'package:didvan/widgets/logos/didvan_horizontal_logo.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:provider/provider.dart';
import 'package:universal_html/html.dart' as html;
class Splash extends StatefulWidget {
const Splash({Key? key}) : super(key: key);
@ -30,31 +33,6 @@ class _SplashState extends State<Splash> {
super.initState();
}
Future<void> _initialize() async {
ActionSheetUtils.context = navigatorKey.currentContext!;
await AppInitializer.setupServices();
final ThemeMode themeMode = await AppInitializer.initilizeSettings();
context.read<ThemeProvider>().themeMode = themeMode;
await Future.delayed(
const Duration(milliseconds: 200),
() => setState(() {
_isGettingThemeData = false;
}),
);
final userProvider = context.read<UserProvider>();
final String? token = await userProvider.setAndGetToken();
if (token != null) {
log(token);
RequestService.token = token;
await userProvider.getUserInfo();
await context.read<ServerDataProvider>().getData();
}
Navigator.of(context).pushReplacementNamed(
token == null ? Routes.authenticaion : Routes.home,
arguments: token == null ? false : null,
);
}
@override
Widget build(BuildContext context) {
if (_isGettingThemeData) {
@ -78,4 +56,35 @@ class _SplashState extends State<Splash> {
),
);
}
Future<void> _initialize() async {
ActionSheetUtils.context = navigatorKey.currentContext!;
if (kIsWeb) {
html.window.onBeforeUnload.listen((event) {
StorageService.webStorage
.removeWhere((key, value) => key == 'image-cache');
});
}
await AppInitializer.setupServices();
final ThemeMode themeMode = await AppInitializer.initilizeSettings();
context.read<ThemeProvider>().themeMode = themeMode;
await Future.delayed(
const Duration(milliseconds: 200),
() => setState(() {
_isGettingThemeData = false;
}),
);
final userProvider = context.read<UserProvider>();
final String? token = await userProvider.setAndGetToken();
if (token != null) {
log(token);
RequestService.token = token;
await userProvider.getUserInfo();
await context.read<ServerDataProvider>().getData();
}
Navigator.of(context).pushReplacementNamed(
token == null ? Routes.authenticaion : Routes.home,
arguments: token == null ? false : null,
);
}
}