dynamic_pages 0.1.0 copy "dynamic_pages: ^0.1.0" to clipboard
dynamic_pages: ^0.1.0 copied to clipboard

Schema-driven, type-safe generated Flutter pages for Dart models.

example/lib/main.dart

import 'package:dynamic_pages/dynamic_pages.dart';
import 'package:flutter/material.dart';
import 'package:freezed_annotation/freezed_annotation.dart';

part 'main.freezed.dart';
part 'main.g.dart';

void main() => runApp(const ExampleApp());

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'dynamic_pages example',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.indigo),
        extensions: const [
          DynamicPageThemeData(
            contentMaxWidth: 640,
            contentPadding: EdgeInsets.all(24),
            fieldSpacing: 18,
          ),
        ],
      ),
      home: UserFormPage(
        onSubmit: (value) async {
          debugPrint('Submitted ${value.name} as ${value.role.name}');
        },
      ),
    );
  }
}

enum Role { admin, member }

@freezed
@GenerateFormPage(title: 'Create user', submitLabel: 'Save')
abstract class UserForm with _$UserForm {
  const factory UserForm({
    @FormTextField(label: 'Name', required: true, minLength: 2)
    required String name,
    @FormEmailField(label: 'Email', required: true) required String email,
    @FormDateField(label: 'Birth date') DateTime? birthDate,
    @FormDropdownField(label: 'Role', source: Role.values) required Role role,
    @FormCheckboxField(label: 'Receive product updates')
    @Default(false)
    bool receiveUpdates,
  }) = _UserForm;
}
0
likes
0
points
0
downloads

Publisher

verified publisherpinz.dev

Weekly Downloads

Schema-driven, type-safe generated Flutter pages for Dart models.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

analyzer, build, flutter, source_gen

More

Packages that depend on dynamic_pages