fbae_core 0.1.5 copy "fbae_core: ^0.1.5" to clipboard
fbae_core: ^0.1.5 copied to clipboard

Flutter Base App Engine — pluggable infrastructure package.

example/lib/main.dart

import 'package:fbae_core/fbae_core.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:go_router/go_router.dart';

import 'core/token_store.dart';
import 'features/products/products_page.dart';
import 'features/search/search_page.dart';
import 'features/settings/settings_page.dart';

final _router = GoRouter(
  initialLocation: '/products',
  routes: FbaeRouter.buildRoutes(
    config: TabConfig([
      const TabItemConfig(
        icon: Icon(Icons.shopping_bag),
        label: 'Products',
        initialLocation: '/products',
      ),
      const TabItemConfig(
        icon: Icon(Icons.search),
        label: 'Search',
        initialLocation: '/search',
      ),
      const TabItemConfig(
        icon: Icon(Icons.settings),
        label: 'Settings',
        initialLocation: '/settings',
      ),
    ]),
    branches: [
      StatefulShellBranch(routes: [
        GoRoute(path: '/products', builder: (_, _) => const ProductsPage()),
      ]),
      StatefulShellBranch(routes: [
        GoRoute(path: '/search', builder: (_, _) => const SearchPage()),
      ]),
      StatefulShellBranch(routes: [
        GoRoute(path: '/settings', builder: (_, _) => const SettingsPage()),
      ]),
    ],
  ),
);

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  final tokenStore = TokenStore();

  await FbaeCore.init(
    config: FbaeConfig.dev(baseUrl: 'https://dummyjson.com'),
    tokenProvider: tokenStore.tokenProvider,
    onRefreshToken: tokenStore.refreshCallback,
  );

  await tokenStore.login();

  runApp(const FbaeExampleApp());
}

class FbaeExampleApp extends StatelessWidget {
  const FbaeExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return FbaeThemeProvider(
      child: BlocBuilder<ThemeCubit, ThemeMode>(
        builder: (context, themeMode) => MaterialApp.router(
          title: 'fbae_core Example',
          routerConfig: _router,
          theme: FbaeTheme.build(colors: FbaeColors()),
          darkTheme: FbaeTheme.build(
            colors: FbaeColors(brightness: Brightness.dark),
          ),
          themeMode: themeMode,
          debugShowCheckedModeBanner: false,
        ),
      ),
    );
  }
}
1
likes
0
points
147
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter Base App Engine — pluggable infrastructure package.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

dio, flutter, flutter_bloc, get_it, go_router, talker, talker_dio_logger, talker_flutter

More

Packages that depend on fbae_core