panic_widgets 1.0.4 copy "panic_widgets: ^1.0.4" to clipboard
panic_widgets: ^1.0.4 copied to clipboard

discontinued

A collection of widgets that are useful in pretty much any app.

example/lib/main.dart

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

import './calendar.dart';

void main() {
  runApp(PanicWidgetsExampleApp());
}

class RouteItem {
  final Icon icon;
  final String title;
  final String route;
  final Widget Function(BuildContext) builder;

  const RouteItem({
    @required this.icon,
    @required this.title,
    @required this.route,
    @required this.builder,
  });
}

class PanicWidgetsExampleApp extends StatelessWidget {
  final routeItems = [
    RouteItem(
      icon: Icon(Icons.calendar_today),
      title: 'Calendar',
      route: '/calendar',
      builder: (context) => PanicWidgetsExampleCalendarPage(),
    )
  ];

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      initialRoute: '/calendar',
      onGenerateRoute: (settings) {
        var routeItem = routeItems.firstWhere((i) => i.route == settings.name, orElse: () => null);

        return MaterialPageRoute(
          builder: (context) {
            return Scaffold(
              appBar: AppBar(
                title: Text('PanicWidgets example' + (routeItem != null ? ' - ${routeItem.title}' : '')),
              ),
              drawer: PanicDrawer(
                currentAccountPicture: CircleAvatar(
                  child: Text('ME'),
                ),
                accountName: Text('Mr. Example / exampleman'),
                accountEmail: Text('man@example.com'),
                items: [
                  for (RouteItem item in routeItems)
                    ListTile(
                      leading: item.icon,
                      title: Text(item.title),
                      onTap: () => Navigator.pushReplacementNamed(context, item.route),
                    ),
                ],
                detailItems: [
                  ListTile(
                    leading: Icon(
                      Icons.settings,
                      color: Theme.of(context).primaryIconTheme.color,
                    ),
                    title: Text(
                      'Settings',
                      style: Theme.of(context).primaryTextTheme.bodyText2,
                    ),
                    onTap: () => Navigator.pushReplacementNamed(context, '/settings'),
                  ),
                  ListTile(
                    leading: Icon(
                      Icons.exit_to_app,
                      color: Theme.of(context).primaryIconTheme.color,
                    ),
                    title: Text(
                      'Log out',
                      style: Theme.of(context).primaryTextTheme.bodyText2,
                    ),
                    onTap: () => Navigator.pop(context),
                  ),
                ],
              ),
              body: routeItem?.builder(context) ?? Center(child: Text('Unknown route')),
            );
          },
        );
      },
    );
  }
}
2
likes
30
pub points
0%
popularity

Publisher

unverified uploader

A collection of widgets that are useful in pretty much any app.

Homepage

License

unknown (LICENSE)

Dependencies

date_util, flutter, get

More

Packages that depend on panic_widgets