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

View File

@ -25,7 +25,6 @@ class News extends StatefulWidget {
class _NewsState extends State<News> { class _NewsState extends State<News> {
Timer? _timer; Timer? _timer;
@override @override
void initState() { void initState() {
Future.delayed(Duration.zero, () { Future.delayed(Duration.zero, () {
@ -48,6 +47,7 @@ class _NewsState extends State<News> {
title: 'اخبار', title: 'اخبار',
onChanged: _onChanged, onChanged: _onChanged,
onFilterButtonPressed: _showFilterBottomSheet, 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/models/news_overview.dart';
import 'package:didvan/pages/home/news/news_state.dart'; import 'package:didvan/pages/home/news/news_state.dart';
import 'package:didvan/routes/routes.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/card.dart';
import 'package:didvan/widgets/didvan/divider.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/didvan/text.dart';
import 'package:didvan/widgets/skeletun_image.dart'; import 'package:didvan/widgets/skeleton_image.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:persian_number_utility/persian_number_utility.dart'; import 'package:persian_number_utility/persian_number_utility.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -20,7 +19,7 @@ class NewsItem extends StatelessWidget {
final state = context.read<NewsState>(); final state = context.read<NewsState>();
return DidvanCard( return DidvanCard(
onTap: () => Navigator.of(context).pushNamed( onTap: () => Navigator.of(context).pushNamed(
Routes.radarDetails, Routes.newsDetails,
arguments: { arguments: {
'state': state, 'state': state,
'id': news.id, 'id': news.id,
@ -61,12 +60,10 @@ class NewsItem extends StatelessWidget {
'${news.reference} | ${DateTime.parse(news.createdAt).toPersianDateStr()}', '${news.reference} | ${DateTime.parse(news.createdAt).toPersianDateStr()}',
style: Theme.of(context).textTheme.overline, style: Theme.of(context).textTheme.overline,
), ),
DidvanIconButton( BookmarkButton(
icon: news.marked value: news.marked,
? DidvanIcons.bookmark_solid onMark: () => state.markNews(news.id),
: DidvanIcons.bookmark_regular, onUnmark: () => state.unMarkNews(news.id),
gestureSize: 32,
onPressed: () => state.markNews(news.id),
), ),
], ],
), ),

View File

@ -8,11 +8,14 @@ import 'package:didvan/providers/user_provider.dart';
import 'package:didvan/routes/routes.dart'; import 'package:didvan/routes/routes.dart';
import 'package:didvan/services/app_initalizer.dart'; import 'package:didvan/services/app_initalizer.dart';
import 'package:didvan/services/network/request.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/utils/action_sheet.dart';
import 'package:didvan/widgets/logos/didvan_horizontal_logo.dart'; import 'package:didvan/widgets/logos/didvan_horizontal_logo.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:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:universal_html/html.dart' as html;
class Splash extends StatefulWidget { class Splash extends StatefulWidget {
const Splash({Key? key}) : super(key: key); const Splash({Key? key}) : super(key: key);
@ -30,31 +33,6 @@ class _SplashState extends State<Splash> {
super.initState(); 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 @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (_isGettingThemeData) { 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,
);
}
} }