mirror of
https://github.com/JideGuru/FlutterEbookApp.git
synced 2025-05-17 05:46:00 +08:00
rfact: more refactoring ofcourse
This commit is contained in:
@ -1,9 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/router/app_router.dart';
|
||||
import 'package:flutter_ebook_app/src/theme/theme_config.dart';
|
||||
import 'package:flutter_ebook_app/src/app.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:sembast/sembast.dart';
|
||||
|
||||
void main() async {
|
||||
@ -12,38 +10,3 @@ void main() async {
|
||||
await DatabaseConfig.init(StoreRef<dynamic, dynamic>.main());
|
||||
runApp(ProviderScope(child: MyApp()));
|
||||
}
|
||||
|
||||
class MyApp extends ConsumerWidget {
|
||||
MyApp({super.key});
|
||||
|
||||
final _appRouter = AppRouter();
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
final currentAppTheme = ref.watch(currentAppThemeNotifierProvider);
|
||||
return MaterialApp.router(
|
||||
debugShowCheckedModeBanner: false,
|
||||
title: Strings.appName,
|
||||
theme: themeData(
|
||||
currentAppTheme.value == CurrentAppTheme.dark
|
||||
? ThemeConfig.darkTheme
|
||||
: ThemeConfig.lightTheme,
|
||||
),
|
||||
darkTheme: themeData(ThemeConfig.darkTheme),
|
||||
themeMode: currentAppTheme.value?.themeMode,
|
||||
routerConfig: _appRouter.config(),
|
||||
);
|
||||
}
|
||||
|
||||
// Apply font to our app's theme
|
||||
ThemeData themeData(ThemeData theme) {
|
||||
return theme.copyWith(
|
||||
textTheme: GoogleFonts.sourceSansProTextTheme(
|
||||
theme.textTheme,
|
||||
),
|
||||
colorScheme: theme.colorScheme.copyWith(
|
||||
secondary: ThemeConfig.lightAccent,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
39
lib/src/app.dart
Normal file
39
lib/src/app.dart
Normal file
@ -0,0 +1,39 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
|
||||
class MyApp extends ConsumerWidget {
|
||||
MyApp({super.key});
|
||||
|
||||
final _appRouter = AppRouter();
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
final currentAppTheme = ref.watch(currentAppThemeNotifierProvider);
|
||||
return MaterialApp.router(
|
||||
debugShowCheckedModeBanner: false,
|
||||
title: Strings.appName,
|
||||
theme: themeData(
|
||||
currentAppTheme.value == CurrentAppTheme.dark
|
||||
? ThemeConfig.darkTheme
|
||||
: ThemeConfig.lightTheme,
|
||||
),
|
||||
darkTheme: themeData(ThemeConfig.darkTheme),
|
||||
themeMode: currentAppTheme.value?.themeMode,
|
||||
routerConfig: _appRouter.config(),
|
||||
);
|
||||
}
|
||||
|
||||
// Apply font to our app's theme
|
||||
ThemeData themeData(ThemeData theme) {
|
||||
return theme.copyWith(
|
||||
textTheme: GoogleFonts.sourceSansProTextTheme(
|
||||
theme.textTheme,
|
||||
),
|
||||
colorScheme: theme.colorScheme.copyWith(
|
||||
secondary: ThemeConfig.lightAccent,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
@ -4,3 +4,4 @@ export 'data/data.dart';
|
||||
export 'domain/domain.dart';
|
||||
export 'extensions/extensions.dart';
|
||||
export 'presentation/presentation.dart';
|
||||
export 'router/app_router.dart';
|
@ -1,4 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:sembast/sembast.dart';
|
||||
|
@ -1,4 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
|
||||
abstract class FavoritesLocalDataSource {
|
||||
const FavoritesLocalDataSource();
|
@ -1,4 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:sembast/sembast.dart';
|
||||
|
@ -1,6 +1,6 @@
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:dio/io.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/constants/api.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
|
||||
class AppDio with DioMixin implements Dio {
|
||||
AppDio._() {
|
@ -1,7 +1,7 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:xml2json/xml2json.dart';
|
||||
|
||||
typedef BookRepositoryData = ({CategoryFeed? feed, HttpFailure? failure});
|
@ -1,5 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/common/data/data_sources/downloads/downloads_local_data_source.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/data_sources/downloads/downloads_local_data_source_impl.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
abstract class DownloadsRepository {
|
@ -1,4 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
abstract class FavoritesRepository {
|
@ -1,7 +1,7 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
part 'current_app_theme_notifier.g.dart';
|
@ -1,6 +1,6 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
part 'downloads_notifier.g.dart';
|
@ -1,6 +1,6 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
part 'favorites_notifier.g.dart';
|
@ -1,3 +1,4 @@
|
||||
export 'notifiers/notifiers.dart';
|
||||
export 'providers/providers.dart';
|
||||
export 'theme/theme_config.dart';
|
||||
export 'ui/ui.dart';
|
@ -1,4 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:sembast/sembast.dart';
|
||||
|
@ -1,5 +1,5 @@
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/remote/app_dio.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
final dioProvider = Provider<Dio>((ref) => AppDio.getInstance());
|
@ -1,4 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/common/data/local/local_storage.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
@ -1,8 +1,8 @@
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:cached_network_image/cached_network_image.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/router/app_router.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
@ -33,7 +33,8 @@ class BookCard extends ConsumerWidget {
|
||||
child: InkWell(
|
||||
borderRadius: const BorderRadius.all(Radius.circular(10.0)),
|
||||
onTap: () {
|
||||
final bool isHomeTab = ref.read(currentTabNotifierProvider).isHomeTab;
|
||||
final bool isHomeTab =
|
||||
ref.read(currentTabNotifierProvider).isHomeTab;
|
||||
final route = BookDetailsRoute(
|
||||
entry: entry,
|
||||
imgTag: imgTag,
|
@ -1,8 +1,8 @@
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:cached_network_image/cached_network_image.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/router/app_router.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
@ -1,8 +1,8 @@
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:cached_network_image/cached_network_image.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/router/app_router.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
@ -1,5 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
|
||||
class DescriptionTextWidget extends StatefulWidget {
|
||||
final String text;
|
@ -1,5 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
|
||||
class MyErrorWidget extends StatelessWidget {
|
||||
final Function refreshCallBack;
|
@ -1,5 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_spinkit/flutter_spinkit.dart';
|
||||
|
||||
class LoadingWidget extends StatelessWidget {
|
@ -3,7 +3,7 @@ import 'dart:io';
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:path/path.dart' as path;
|
||||
import 'package:path_provider/path_provider.dart';
|
@ -1,7 +1,7 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
|
||||
class ExitModalDialog extends StatelessWidget {
|
||||
const ExitModalDialog({super.key});
|
@ -1,5 +1,6 @@
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
|
||||
part 'app_router.gr.dart';
|
@ -1,4 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
class BookDetailsRepository extends BookRepository {
|
||||
|
@ -1,5 +1,5 @@
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_ebook_app/src/features/book_details/data/repositories/book_details_repository.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/common.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
part 'book_details_notifier.g.dart';
|
||||
|
@ -3,6 +3,7 @@ import 'dart:io';
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:cached_network_image/cached_network_image.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
@ -3,7 +3,7 @@ import 'dart:io';
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:cached_network_image/cached_network_image.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:iridium_reader_widget/views/viewers/epub_screen.dart';
|
||||
|
@ -1,4 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
class ExploreRepository extends BookRepository {
|
||||
|
@ -1,5 +1,6 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
|
||||
@RoutePage()
|
||||
|
@ -1,7 +1,6 @@
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:flutter_ebook_app/src/router/app_router.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
|
||||
class ExploreScreenLarge extends StatefulWidget {
|
||||
const ExploreScreenLarge({super.key});
|
||||
|
@ -1,7 +1,7 @@
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/router/app_router.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
@RoutePage()
|
||||
|
@ -2,6 +2,7 @@ import 'dart:async';
|
||||
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
@RoutePage()
|
||||
|
@ -1,5 +1,4 @@
|
||||
export 'book_details/book_details.dart';
|
||||
export 'common/common.dart';
|
||||
export 'downloads/downloads.dart';
|
||||
export 'explore/explore.dart';
|
||||
export 'favorites/favourites.dart';
|
||||
|
@ -1,4 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
@ -25,8 +26,8 @@ class HomeFeedNotifier extends _$HomeFeedNotifier {
|
||||
final popularFeedSuccessOrFailure =
|
||||
await homeRepository.getPopularHomeFeed();
|
||||
final recentFeedSuccessOrFailure = await homeRepository.getRecentHomeFeed();
|
||||
CategoryFeed? popularFeed = popularFeedSuccessOrFailure.feed;
|
||||
CategoryFeed? recentFeed = recentFeedSuccessOrFailure.feed;
|
||||
final popularFeed = popularFeedSuccessOrFailure.feed;
|
||||
final recentFeed = recentFeedSuccessOrFailure.feed;
|
||||
if (popularFeed == null) {
|
||||
throw popularFeedSuccessOrFailure.failure!.description;
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
|
||||
@RoutePage()
|
||||
|
@ -1,5 +1,6 @@
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
|
||||
class HomeScreenLarge extends StatelessWidget {
|
||||
|
@ -1,7 +1,7 @@
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/router/app_router.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
class HomeScreenSmall extends ConsumerStatefulWidget {
|
||||
|
@ -1,5 +1,6 @@
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
|
||||
@RoutePage()
|
||||
|
@ -1,7 +1,6 @@
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/router/app_router.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
|
@ -2,7 +2,7 @@ import 'dart:async';
|
||||
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/router/app_router.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
|
||||
@RoutePage()
|
||||
class SplashScreen extends StatefulWidget {
|
||||
|
@ -1,5 +1,6 @@
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/router/app_router.dart';
|
||||
import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/router/app_router.dart';
|
||||
import 'package:flutter_ebook_app/src/common/common.dart';
|
||||
import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
|
@ -5,26 +5,21 @@
|
||||
// gestures. You can also use WidgetTester to find child widgets in the widget
|
||||
// tree, read text, and verify that the values of widget properties are correct.
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
import 'package:flutter_ebook_app/main.dart';
|
||||
|
||||
void main() {
|
||||
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
|
||||
// Build our app and trigger a frame.
|
||||
await tester.pumpWidget(MyApp());
|
||||
|
||||
// Verify that our counter starts at 0.
|
||||
expect(find.text('0'), findsOneWidget);
|
||||
expect(find.text('1'), findsNothing);
|
||||
|
||||
// Tap the '+' icon and trigger a frame.
|
||||
await tester.tap(find.byIcon(Icons.add));
|
||||
await tester.pump();
|
||||
|
||||
// Verify that our counter has incremented.
|
||||
expect(find.text('0'), findsNothing);
|
||||
expect(find.text('1'), findsOneWidget);
|
||||
});
|
||||
}
|
||||
// void main() {
|
||||
// testWidgets('Counter increments smoke test', (WidgetTester tester) async {
|
||||
// // Build our app and trigger a frame.
|
||||
// await tester.pumpWidget(MyApp());
|
||||
//
|
||||
// // Verify that our counter starts at 0.
|
||||
// expect(find.text('0'), findsOneWidget);
|
||||
// expect(find.text('1'), findsNothing);
|
||||
//
|
||||
// // Tap the '+' icon and trigger a frame.
|
||||
// await tester.tap(find.byIcon(Icons.add));
|
||||
// await tester.pump();
|
||||
//
|
||||
// // Verify that our counter has incremented.
|
||||
// expect(find.text('0'), findsNothing);
|
||||
// expect(find.text('1'), findsOneWidget);
|
||||
// });
|
||||
// }
|
||||
|
Reference in New Issue
Block a user