Skip to content

Commit

Permalink
Merge pull request #262 from yumemi-inc/feature/refactor_navigation
Browse files Browse the repository at this point in the history
Navigatorのインターフェースをfeatureのuiに定義するように変更し、navigationパッケージを廃止
  • Loading branch information
K9i-0 committed Jun 19, 2024
2 parents 54bd731 + 92c58a5 commit abd19e0
Show file tree
Hide file tree
Showing 39 changed files with 261 additions and 953 deletions.
26 changes: 0 additions & 26 deletions apps/app/lib/router/navigator/home_navigator.dart

This file was deleted.

12 changes: 0 additions & 12 deletions apps/app/lib/router/navigator/setting_navigator.dart

This file was deleted.

6 changes: 2 additions & 4 deletions apps/app/lib/router/provider/router.dart
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
import 'package:cores_core/app_status.dart';
import 'package:cores_core/util.dart';
import 'package:cores_designsystem/common_assets.dart';
import 'package:cores_navigation/providers.dart';
import 'package:features_debug_mode/ui.dart';
import 'package:features_github_repository/ui.dart';
import 'package:features_setting/setting.dart';
import 'package:features_setting/ui.dart';
import 'package:features_webview/webview.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_app/main_page.dart';
import 'package:flutter_app/router/navigator/home_navigator.dart';
import 'package:flutter_app/router/navigator/setting_navigator.dart';
import 'package:flutter_app/ui/home_page.dart';
import 'package:flutter_app/ui/provider/navigator_provider.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
Expand Down
34 changes: 33 additions & 1 deletion apps/app/lib/router/routes/main/home/home_shell_branch.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,34 @@ class HomeShellBranch extends StatefulShellBranchData {
const HomeShellBranch();
}

final class _HomePageNavigatorImpl implements HomePageNavigator {
const _HomePageNavigatorImpl();

@override
void goDebugPage(BuildContext context) {
const DebugPageRoute().go(context);
}

@override
void goWebPage(BuildContext context) {
const WebPageRoute().go(context);
}
}

final class _GithubRepositoryListPageNavigatorImpl
implements GitHubRepositoryListPageNavigator {
const _GithubRepositoryListPageNavigatorImpl();

@override
void goGitHubRepositoryDetailPage(
BuildContext context,
String repositoryName,
String? description,
) {
GitHubRepositoryDetailPageRoute(repositoryName, description).go(context);
}
}

class HomePageRoute extends GoRouteData {
const HomePageRoute();

Expand All @@ -39,7 +67,11 @@ class HomePageRoute extends GoRouteData {
// navigation or the state.
child: ProviderScope(
overrides: [
homeNavigatorProvider.overrideWithValue(const HomeNavigatorImpl()),
homePageNavigatorProvider
.overrideWithValue(const _HomePageNavigatorImpl()),
gitHubRepositoryListPageNavigatorProvider.overrideWithValue(
const _GithubRepositoryListPageNavigatorImpl(),
),
],
child: const HomePage(),
),
Expand Down
13 changes: 11 additions & 2 deletions apps/app/lib/router/routes/main/setting/setting_shell_branch.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,15 @@ class SettingShellBranch extends StatefulShellBranchData {
const SettingShellBranch();
}

final class _SettingPageNavigatorImpl implements SettingPageNavigator {
const _SettingPageNavigatorImpl();

@override
void goLicensePage(BuildContext context) {
const LicensePageRoute().go(context);
}
}

class SettingPageRoute extends GoRouteData {
const SettingPageRoute();

Expand All @@ -26,8 +35,8 @@ class SettingPageRoute extends GoRouteData {
Widget build(BuildContext context, GoRouterState state) {
return ProviderScope(
overrides: [
settingNavigatorProvider.overrideWithValue(
const SettingNavigatorImpl(),
settingPageNavigatorProvider.overrideWithValue(
const _SettingPageNavigatorImpl(),
),
],
child: const SettingPage(),
Expand Down
11 changes: 8 additions & 3 deletions apps/app/lib/ui/home_page.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
import 'package:cores_designsystem/theme_extensions.dart';
import 'package:cores_navigation/providers.dart';
import 'package:features_github_repository/ui.dart';
import 'package:flutter/material.dart';
import 'package:flutter_app/gen/l10n/l10n.dart';
import 'package:flutter_app/ui/provider/navigator_provider.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';

abstract interface class HomePageNavigator {
void goDebugPage(BuildContext context);
void goWebPage(BuildContext context);
}

class HomePage extends ConsumerWidget {
const HomePage({
super.key,
Expand All @@ -13,7 +18,7 @@ class HomePage extends ConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final l = L10n.of(context);
final navigator = ref.watch(homeNavigatorProvider);
final navigator = ref.watch(homePageNavigatorProvider);
return Scaffold(
appBar: AppBar(
title: Text(l.appBar),
Expand All @@ -35,7 +40,7 @@ class HomePage extends ConsumerWidget {
color: context.appColors.icon,
),
),
body: const GitHubRepositoryList(),
body: const GitHubRepositoryListPage(),
);
}
}
8 changes: 8 additions & 0 deletions apps/app/lib/ui/provider/navigator_provider.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import 'package:flutter_app/ui/home_page.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';

part 'navigator_provider.g.dart';

@Riverpod(dependencies: [])
HomePageNavigator homePageNavigator(HomePageNavigatorRef ref) =>
throw UnimplementedError();
28 changes: 28 additions & 0 deletions apps/app/lib/ui/provider/navigator_provider.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 0 additions & 7 deletions apps/app/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -221,13 +221,6 @@ packages:
relative: true
source: path
version: "0.0.1"
cores_navigation:
dependency: "direct main"
description:
path: "../../packages/cores/navigation"
relative: true
source: path
version: "0.0.1"
coverage:
dependency: transitive
description:
Expand Down
2 changes: 0 additions & 2 deletions apps/app/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ dependencies:
path: ../../packages/cores/designsystem
cores_init:
path: ../../packages/cores/init
cores_navigation:
path: ../../packages/cores/navigation
features_debug_mode:
path: ../../packages/features/debug_mode
features_github_repository:
Expand Down
27 changes: 0 additions & 27 deletions packages/cores/navigation/.gitignore

This file was deleted.

10 changes: 0 additions & 10 deletions packages/cores/navigation/.metadata

This file was deleted.

3 changes: 0 additions & 3 deletions packages/cores/navigation/CHANGELOG.md

This file was deleted.

39 changes: 0 additions & 39 deletions packages/cores/navigation/README.md

This file was deleted.

6 changes: 0 additions & 6 deletions packages/cores/navigation/analysis_options.yaml

This file was deleted.

2 changes: 0 additions & 2 deletions packages/cores/navigation/lib/navigators.dart

This file was deleted.

2 changes: 0 additions & 2 deletions packages/cores/navigation/lib/providers.dart

This file was deleted.

11 changes: 0 additions & 11 deletions packages/cores/navigation/lib/src/home/navigator.dart

This file was deleted.

7 changes: 0 additions & 7 deletions packages/cores/navigation/lib/src/home/provider.dart

This file was deleted.

28 changes: 0 additions & 28 deletions packages/cores/navigation/lib/src/home/provider.g.dart

This file was deleted.

5 changes: 0 additions & 5 deletions packages/cores/navigation/lib/src/setting/navigator.dart

This file was deleted.

7 changes: 0 additions & 7 deletions packages/cores/navigation/lib/src/setting/provider.dart

This file was deleted.

Loading

0 comments on commit abd19e0

Please sign in to comment.