navigationService top-level constant

String const navigationService

Template for the generated navigation service that wraps Navigator.

Implementation

const navigationService = """
import 'package:flutter/material.dart';

// Router işlemlerinin tek bir sınıftan daha kısa bir şekilde yapılması için
// ele alınan kısım
abstract class INavigationService {
  Future<void> navigateToPage(
      {required String path, Object? data, bool? rootNavigator});

  Future<void> navigateToPageClear({required String path, Object? data});
}

class NavigationService implements INavigationService {
  NavigationService._init();

  static final NavigationService _instance = NavigationService._init();

  static NavigationService get instance => _instance;

  GlobalKey<NavigatorState> navigatorKey = GlobalKey();

  bool Function(Route<dynamic> route) get removeAllOldRoutes =>
      (Route<dynamic> route) => false;

  @override
  Future<void> navigateToPage(
      {required String path, Object? data, bool? rootNavigator}) async {
    await navigatorKey.currentState!.pushNamed(path, arguments: data);
  }

  @override
  Future<void> navigateToPageClear({required String path, Object? data}) async {
    await navigatorKey.currentState!
        .pushNamedAndRemoveUntil(path, removeAllOldRoutes, arguments: data);
  }
}

""";