osam_flutter 2.0.3 copy "osam_flutter: ^2.0.3" to clipboard
osam_flutter: ^2.0.3 copied to clipboard

discontinued
outdated

Navigation and UI elements which fits with Osam library

example/lib/main.dart

import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:osam_flutter/osam_flutter.dart';

void main() async {
  runApp(UseCaseProvider(
    null,
    null,
    null,
    child: PresenterProvider(
      presenter: NavPresenter(),
      child: MaterialApp(
        home: const App(),
      ),
    ),
  ));
}

class App extends StatelessWidget {
  const App();

  @override
  Widget build(BuildContext context) {
    return OsamNavigator<NavPresenter>(
      routes: {
        '1': (ctx) => Page1(key: ValueKey('1'), color: Colors.green),
        '2': (ctx) => Page1(key: ValueKey('2'), color: Colors.yellow),
        '3': (ctx) => Page1(key: ValueKey('3'), color: Colors.blue),
        '4': (ctx) => showCupertinoDialog(
            context: ctx,
            builder: (ctx) => Container(
                  height: 200,
                  width: 199,
                  color: Colors.lightGreen,
                ))
      },
      log: true,
    );
  }
}

//navigators: {
//RouteTab.search: PresenterProvider<SearchPresenter>(
//key: const ValueKey('search_presenter'),
//child: OsamNavigator<SearchPresenter>(
//{SearchRoutes.first: (ctx) => const SearchOrderScreen()},
//key: const ValueKey('search_navigation'),
//),
//presenter: SearchPresenter(),
//),

class Page1 extends StatelessWidget {
  final Color color;

  const Page1({Key key, this.color}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Container(
        color: color,
        child: Center(
          child: Column(
            children: <Widget>[
              RaisedButton(
                onPressed: () async {
                  if (color == Colors.green) {
                    nav.push('2');
                  } else if (color == Colors.yellow) {
                    nav.push('3');
                  } else if (color == Colors.blue) {
                    nav.push('4');
                  } else if (color == Colors.purple) {
//                    nav2.push('6');
                  } else {
//                    nav2.pop();
                  }
                },
              ),
            ],
          ),
        ),
      ),
    );
  }
}

class NavPresenter extends Presenter with NavigationPresenter {
  @override
  NavigationState get navigationState => nav;
}

class NavPresenter2 extends Presenter with NavigationPresenter {
  @override
  NavigationState get navigationState => nav2;
}

class TabNavPresenter extends Presenter with TabNavigationPresenter {
  @override
  TabNavigationState get tabNavigationState => tabNav;
}

final nav = NavigationState(['1']);
final nav2 = NavigationState(['5']);
final tabNav = TabNavigationState('first');
2
likes
0
pub points
0%
popularity

Publisher

verified publisherrenesanse.net

Navigation and UI elements which fits with Osam library

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

after_layout, flutter, osam, provider

More

Packages that depend on osam_flutter