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

[pending analysis]

Automatic form draft saving, restoration, versioning, and expiration for Flutter applications.

example/lib/main.dart

import 'package:flutter/material.dart';

import 'examples/basic_form_example.dart';
import 'examples/registration_form_example.dart';
import 'examples/multiple_drafts_example.dart';

void main() {
  runApp(const FormDraftExampleApp());
}

/// Example application demonstrating flutter_form_draft features.
class FormDraftExampleApp extends StatelessWidget {
  /// Creates the example app.
  const FormDraftExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'flutter_form_draft',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.indigo),
        useMaterial3: true,
      ),
      home: const ExampleHomePage(),
    );
  }
}

/// Home screen listing available examples.
class ExampleHomePage extends StatelessWidget {
  /// Creates the home page.
  const ExampleHomePage({super.key});

  @override
  Widget build(BuildContext context) {
    final examples = [
      _ExampleEntry(
        title: 'Basic Contact Form',
        subtitle: 'Auto-save, restore dialog, save indicator',
        builder: (_) => const BasicFormExample(),
      ),
      _ExampleEntry(
        title: 'Registration Form',
        subtitle: 'Excluded password fields',
        builder: (_) => const RegistrationFormExample(),
      ),
      _ExampleEntry(
        title: 'Multiple Drafts',
        subtitle: 'Separate drafts for the same form',
        builder: (_) => const MultipleDraftsExample(),
      ),
    ];

    return Scaffold(
      appBar: AppBar(title: const Text('flutter_form_draft examples')),
      body: ListView.separated(
        padding: const EdgeInsets.all(16),
        itemCount: examples.length,
        separatorBuilder: (_, __) => const SizedBox(height: 12),
        itemBuilder: (context, index) {
          final example = examples[index];
          return Card(
            child: ListTile(
              title: Text(example.title),
              subtitle: Text(example.subtitle),
              trailing: const Icon(Icons.chevron_right),
              onTap: () {
                Navigator.of(context).push(
                  MaterialPageRoute<void>(
                    builder: example.builder,
                  ),
                );
              },
            ),
          );
        },
      ),
    );
  }
}

class _ExampleEntry {
  const _ExampleEntry({
    required this.title,
    required this.subtitle,
    required this.builder,
  });

  final String title;
  final String subtitle;
  final WidgetBuilder builder;
}
0
likes
0
points
35
downloads

Publisher

verified publisheramirsaleemahmad.com

Weekly Downloads

Automatic form draft saving, restoration, versioning, and expiration for Flutter applications.

Repository (GitHub)
View/report issues

Topics

#form #autosave #draft #persistence #offline

License

(pending) (license)

Dependencies

collection, crypto, flutter, meta, shared_preferences

More

Packages that depend on flutter_form_draft