retro_form 0.0.10
retro_form: ^0.0.10 copied to clipboard
A Flutter plugin to implement dynamic form builder from Smartters
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:retro_form/retro_form.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() {
// RetroFormConfig.clearCache();
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
void initState() {
RetroFormConfig.initialize(
deviceId: "145340564asdyg654hndh",
preloadFormIds: ["7439974980", "2121726098", "9236978907"],
baseUrl: "https://api.forms.smarttersstudio.in",
);
super.initState();
}
@override
Widget build(BuildContext context) {
return ValueListenableBuilder<ThemeMode>(
valueListenable: themeMode,
builder:
(context, value, child) => MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(
useMaterial3: true,
fontFamily: "Roboto",
inputDecorationTheme: InputDecorationTheme(
border: OutlineInputBorder(),
),
radioTheme: RadioThemeData(),
checkboxTheme: CheckboxThemeData(),
dropdownMenuTheme: DropdownMenuThemeData(menuStyle: MenuStyle()),
listTileTheme: ListTileThemeData(),
),
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: "/",
),
);
}
}