vortex 0.0.3 copy "vortex: ^0.0.3" to clipboard
vortex: ^0.0.3 copied to clipboard

Vortex is a first powerful Flutter framework that brings the convenience and structure of Nuxt.js to Flutter development.

example/lib/main.dart

import 'dart:io';
import 'package:example/middleware/auth_middleware.dart';
import 'package:example/plugins/logger_plugin.dart';
import 'package:flutter/material.dart';
import 'package:flutterwind_core/flutterwind.dart';
import 'package:vortex/vortex.dart';
import 'package:example/generated/routes.dart';

void main() async {
  Vortex.projectDirectory = Directory(
    '/Volumes/EVILRATT/Innovative Projects/vortex/example',
  );
  await VortexRouter.discoverRoutes(
    projectDirectory: Directory(
      '/Volumes/EVILRATT/Innovative Projects/vortex/example',
    ),
  );
  registerLoggerPlugin();
  initializeRoutes();
  MiddlewareRegistry.register('auth', AuthMiddleware());
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> with CompositionMixin {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    final themeState = useTheme(
      lightTheme: ThemeData.light().copyWith(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
        brightness: Brightness.light,
      ),
      darkTheme: ThemeData.dark().copyWith(
        colorScheme: ColorScheme.fromSeed(
          seedColor: Colors.deepPurple,
          brightness: Brightness.dark,
        ),
        useMaterial3: true,
        brightness: Brightness.dark,
      ),
      initialDarkMode: false,
    );

    // Set up watchers
    watch(themeState.isDarkMode, () => themeState.isDarkMode.value, (
      newValue,
      oldValue,
    ) {
      Log.i(
        'Theme changed from ${oldValue! ? "dark" : "light"} to ${newValue ? "dark" : "light"}',
      );
    });

    // Set up lifecycle hooks
    onMounted(() {
      Log.i('App mounted');
    });

    return Vortex(
      child: FlutterWind(
        child: ReactiveBuilder(
          dependencies: [themeState.theme, themeState.isDarkMode],
          builder: (context) {
            return MaterialApp(
              title: 'Vortex Demo',
              theme: themeState.theme.value,
              themeMode:
                  themeState.isDarkMode.value
                      ? ThemeMode.dark
                      : ThemeMode.light,
              initialRoute: '/',
              onGenerateInitialRoutes:
                  (initialRoute) => [
                    VortexRouter.initialRouteHandler(
                      RouteSettings(name: initialRoute),
                    ),
                  ],
              onGenerateRoute: VortexRouter.onGenerateRoute,
            );
          },
        ),
      ),
    );
  }
}
2
likes
140
points
12
downloads

Publisher

unverified uploader

Weekly Downloads

Vortex is a first powerful Flutter framework that brings the convenience and structure of Nuxt.js to Flutter development.

Homepage
Repository (GitHub)
View/report issues

Topics

#vortex #nuxt #flutter #build-system

Documentation

Documentation
API reference

Funding

Consider supporting this project:

github.com

License

MIT (license)

Dependencies

args, dio, flutter, logger, meta, path, shared_preferences, yaml

More

Packages that depend on vortex