retro_form 0.0.8
retro_form: ^0.0.8 copied to clipboard
A Flutter plugin to implement dynamic form builder from Smartters
example/lib/main.dart
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:retro_form_example/pages/form_page.dart';
import 'package:retro_form_example/pages/home_page.dart';
import 'package:retro_form_example/pages/result_page.dart';
ValueNotifier<ThemeMode> themeMode = ValueNotifier(ThemeMode.system);
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return ValueListenableBuilder<ThemeMode>(
valueListenable: themeMode,
builder:
(context, value, child) => MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(
useMaterial3: true,
inputDecorationTheme: InputDecorationTheme(),
radioTheme: RadioThemeData(),
checkboxTheme: CheckboxThemeData(),
dropdownMenuTheme: DropdownMenuThemeData(menuStyle: MenuStyle()),
listTileTheme: ListTileThemeData(),
pageTransitionsTheme: PageTransitionsTheme(
builders: {
TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
},
),
),
darkTheme: ThemeData.dark(useMaterial3: true),
themeMode: value,
onGenerateRoute: (setting) {
log("RESULT ${setting.name} ${setting.arguments}");
if (setting.name == "/result") {
return MaterialPageRoute(
builder: (c) => ResultPage(setting.arguments),
);
}
if (setting.name == "/form") {
return MaterialPageRoute(
builder: (c) => FormPage(setting.arguments as String),
);
}
if (setting.name == "/") {
return MaterialPageRoute(builder: (c) => HomePage());
}
return MaterialPageRoute(builder: (c) => SizedBox());
},
initialRoute: "/",
),
);
}
}