route_definer 1.0.2 copy "route_definer: ^1.0.2" to clipboard
route_definer: ^1.0.2 copied to clipboard

An advanced router for Flutter with support for parsing routes, parameters, and guards.

example/main.dart

import 'package:flutter/material.dart';
import 'package:route_definer/route_definer.dart';

void main() {
  AppRouter.init(
    GlobalRouteDefiner(
      initialRoute: '/',
      title: 'Route Example',
      isAuthorized: (_) => true,
      unauthorizedBuilder:
          (_, __) => const Scaffold(body: Center(child: Text("Unauthorized"))),
      onUnknownRoute:
          (_, __) => MaterialPageRoute(
            builder: (_) => const Scaffold(body: Text("404")),
          ),
    ),
    [
      RouteDefiner(path: '/', builder: (_, __) => const HomePage()),
      RouteDefiner(path: '/about', builder: (_, __) => const AboutPage()),
    ],
  );

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: AppRouter.title,
      initialRoute: AppRouter.initialRoute,
      onGenerateRoute: AppRouter.onGenerateRoute,
      onUnknownRoute: AppRouter.onUnknownRoute,
    );
  }
}

class HomePage extends StatelessWidget {
  const HomePage({super.key});
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: ElevatedButton(
          onPressed: () => Navigator.pushNamed(context, '/about'),
          child: const Text('Go to About'),
        ),
      ),
    );
  }
}

class AboutPage extends StatelessWidget {
  const AboutPage({super.key});
  @override
  Widget build(BuildContext context) {
    return const Scaffold(body: Center(child: Text('About Page')));
  }
}
3
likes
0
points
4
downloads

Publisher

unverified uploader

Weekly Downloads

An advanced router for Flutter with support for parsing routes, parameters, and guards.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on route_definer