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

An elite, type-safe, and ultra-reactive form engine for Flutter powered by Riverpod.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'ui/basic_form/basic_form_page.dart';
import 'ui/schema_form/schema_form_page.dart';
import 'ui/conditional_form/conditional_form_page.dart';
import 'ui/derived_fields/derived_fields_page.dart';
import 'ui/validation_examples/validation_examples_page.dart';
import 'ui/headless_form/headless_form_page.dart';
import 'ui/performance_examples/performance_examples_page.dart';
import 'ui/advanced/advanced_page.dart';
import 'ui/dynamic_array/dynamic_array_page.dart';
import 'ui/programmatic_control/programmatic_control_page.dart';
import 'ui/form_groups/form_groups_page.dart';
import 'ui/multi_step_form/multi_step_form_page.dart';

void main() {
  runApp(const ProviderScope(child: MyApp()));
}

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Formix Demo',
      theme: ThemeData(primarySwatch: Colors.blue, useMaterial3: true),
      home: const HomePage(),
    );
  }
}

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

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage>
    with SingleTickerProviderStateMixin {
  late TabController _tabController;

  @override
  void initState() {
    super.initState();
    _tabController = TabController(length: 12, vsync: this);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Formix Examples'),
        bottom: TabBar(
          controller: _tabController,
          isScrollable: true,
          tabs: const [
            Tab(text: 'Basic'),
            Tab(text: 'Schema'),
            Tab(text: 'Conditional'),
            Tab(text: 'Derived'),
            Tab(text: 'Validation'),
            Tab(text: 'Headless'),
            Tab(text: 'Performance'),
            Tab(text: 'Advanced'),
            Tab(text: 'Arrays'),
            Tab(text: 'Control'),
            Tab(text: 'Groups'),
            Tab(text: 'Multi-Step'),
          ],
        ),
      ),
      body: TabBarView(
        controller: _tabController,
        children: const [
          BasicFormExample(),
          SchemaFormExample(),
          ConditionalFormExample(),
          DerivedFieldsExample(),
          ValidationExamples(),
          HeadlessFormExample(),
          PerformanceExamples(),
          AdvancedExample(),
          DynamicArrayPage(),
          ProgrammaticControlPage(),
          FormGroupsPage(),
          MultiStepFormPage(),
        ],
      ),
    );
  }
}
2
likes
150
points
157
downloads

Publisher

verified publishershreeman.dev

Weekly Downloads

An elite, type-safe, and ultra-reactive form engine for Flutter powered by Riverpod.

Homepage
Repository (GitHub)
View/report issues

Topics

#form #validation #riverpod #type-safe #state-management

Documentation

API reference

License

MIT (license)

Dependencies

collection, flutter, flutter_riverpod, index_generator

More

Packages that depend on formix