diff --git a/assets/app/owner.png b/assets/app/owner.png deleted file mode 100644 index 9e18be7..0000000 Binary files a/assets/app/owner.png and /dev/null differ diff --git a/lib/features/package_details/package_details_page.dart b/lib/features/package_details/package_details_page.dart index 17b350c..c38e5fd 100644 --- a/lib/features/package_details/package_details_page.dart +++ b/lib/features/package_details/package_details_page.dart @@ -4,7 +4,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:markdown_widget/markdown_widget.dart'; import 'package:npm/features/package_details/package_details.dart'; import 'package:npm/features/settings/language.dart'; -import 'package:npm/features/settings/theme.dart'; +import 'package:npm/features/settings/dark_mode.dart'; import 'package:npm/widgets/link_text.dart'; class PackageDetailsPage extends ConsumerWidget { diff --git a/lib/features/packages/packages.dart b/lib/features/packages/packages.dart index 806509e..44eeee9 100644 --- a/lib/features/packages/packages.dart +++ b/lib/features/packages/packages.dart @@ -45,10 +45,15 @@ class Package with _$Package { name: package['name'], description: package['description'], version: package['version'], - keywords: package['keywords'] != null - ? List.from(package['keywords']) - : null, + keywords: ListX.fromOrNull(package['keywords']), score: Score.fromJson(score), ); } } + +extension ListX on List { + static List? fromOrNull(dynamic source) { + if (source == null) return null; + return List.from(source as Iterable); + } +} diff --git a/lib/features/settings/theme.dart b/lib/features/settings/dark_mode.dart similarity index 88% rename from lib/features/settings/theme.dart rename to lib/features/settings/dark_mode.dart index 9cddcfa..95e89a6 100644 --- a/lib/features/settings/theme.dart +++ b/lib/features/settings/dark_mode.dart @@ -1,6 +1,6 @@ import 'package:riverpod_annotation/riverpod_annotation.dart'; -part 'theme.g.dart'; +part 'dark_mode.g.dart'; @riverpod class IsDarkMode extends _$IsDarkMode { diff --git a/lib/features/settings/theme.g.dart b/lib/features/settings/dark_mode.g.dart similarity index 97% rename from lib/features/settings/theme.g.dart rename to lib/features/settings/dark_mode.g.dart index e813b3a..3bf8bcc 100644 --- a/lib/features/settings/theme.g.dart +++ b/lib/features/settings/dark_mode.g.dart @@ -1,6 +1,6 @@ // GENERATED CODE - DO NOT MODIFY BY HAND -part of 'theme.dart'; +part of 'dark_mode.dart'; // ************************************************************************** // RiverpodGenerator diff --git a/lib/features/settings/settings_page.dart b/lib/features/settings/settings_page.dart index 6bf48fa..08b186b 100644 --- a/lib/features/settings/settings_page.dart +++ b/lib/features/settings/settings_page.dart @@ -3,7 +3,7 @@ import 'package:gap/gap.dart'; import 'package:go_router/go_router.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:npm/features/settings/language.dart'; -import 'package:npm/features/settings/theme.dart'; +import 'package:npm/features/settings/dark_mode.dart'; import 'package:url_launcher/url_launcher.dart'; class SettingsPage extends ConsumerWidget { diff --git a/lib/main.dart b/lib/main.dart index f0e6d23..c9470cc 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:npm/features/settings/language.dart'; -import 'package:npm/features/settings/theme.dart'; +import 'package:npm/features/settings/dark_mode.dart'; import 'package:npm/router.dart'; import 'package:slang_flutter/slang_flutter.dart'; diff --git a/lib/router.dart b/lib/router.dart index 2d7db32..2179f8e 100644 --- a/lib/router.dart +++ b/lib/router.dart @@ -51,7 +51,5 @@ class SettingsRoute extends GoRouteData { static const String path = 'settings'; @override - NoTransitionPage buildPage(context, state) => const NoTransitionPage( - child: SettingsPage(), - ); + Widget build(context, state) => const SettingsPage(); } diff --git a/lib/widgets/link_text.dart b/lib/widgets/link_text.dart index 2f240cc..db4c169 100644 --- a/lib/widgets/link_text.dart +++ b/lib/widgets/link_text.dart @@ -14,7 +14,7 @@ class LinkText extends StatelessWidget { @override Widget build(BuildContext context) { return GestureDetector( - onTap: () => launchUrl(Uri.parse(url)), + onTap: () async => launchUrl(Uri.parse(url)), child: Text( text ?? url, style: const TextStyle( diff --git a/lib/widgets/logo.dart b/lib/widgets/logo.dart index 09927a8..8d7f492 100644 --- a/lib/widgets/logo.dart +++ b/lib/widgets/logo.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:npm/features/settings/theme.dart'; +import 'package:npm/features/settings/dark_mode.dart'; class Logo extends ConsumerWidget { const Logo({