cdx_components 0.5.12 copy "cdx_components: ^0.5.12" to clipboard
cdx_components: ^0.5.12 copied to clipboard

A set of components, utils and extensions helpful to solve many problems.

example/lib/main.dart

import 'package:cdx_components/injector.dart';
import 'package:cdx_components/models/dropdown_item.dart';
import 'package:cdx_components/models/form_item.dart';
import 'package:cdx_components/services/iapp_service.dart';
import 'package:cdx_components/services/itheme_service.dart';
import 'package:cdx_components/services/iconfig_service.dart';
import 'package:cdx_components/services/imedia_services.dart';
import 'package:cdx_components/services/istore_service.dart';
import 'package:cdx_components/views/form_builder.dart';
import 'package:cryptography_flutter/cryptography_flutter.dart';
import 'package:example/services/app_theme_service.dart';
import 'package:example/services/app_config_service.dart';
import 'package:example/services/app_service.dart';
import 'package:example/services/media_service.dart';
import 'package:example/services/store_service.dart';
import 'package:flutter/material.dart';
import 'package:get_it/get_it.dart';
import 'package:hive_flutter/adapters.dart';
import 'package:rxdart/rxdart.dart';

void main() async {
  FlutterCryptography.enable();
  await Hive.initFlutter();

  GetIt.I.registerSingleton<IStoreService>(StoreService());
  GetIt.I.registerSingleton<IConfigService>(AppConfigService());
  await DI.config().initInstance();
  GetIt.I.registerSingleton<IMediaService>(MediaService());
  GetIt.I.registerSingleton<IThemeService>(AppThemeService());
  GetIt.I.registerSingleton<IAppService>(AppService());

  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();
    //DI.app().setLocalization(AppLocalizations.of(context)!);
  }

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

class MainPage extends StatelessWidget {
  const MainPage({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        title: 'Namer App',
        theme: DI.theme().themeData,
        home: const Scaffold(body: SafeArea(child: MyHomePage())));
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key}) : super(key: key);

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  FormBuilder? formBuilder;
  final BehaviorSubject<Map<String, FormItem>> clearSubject =
      BehaviorSubject.seeded({});

  @override
  void initState() {
    super.initState();
    _buildForm();
  }

  void _buildForm() {
    formBuilder = FormBuilder(
        subject: BehaviorSubject(),
        formMap: clearSubject,
        hintStyle: const TextStyle(
            color: Colors.grey, fontWeight: FontWeight.w500, fontSize: 12));

    clearSubject.add({
      'title': FormItem(
          hint: 'loc.title',
          type: FormType.text,
          validation: (value) => value?.toString().isNotEmpty == true,
          value: '',
          inRow: true),
      'description': FormItem(
        hint: 'loc.description',
        type: FormType.multiline,
        validation: (value) => value?.toString().isNotEmpty == true,
        value: '',
      ),
      'author': FormItem(
          hint: 'loc.author',
          type: FormType.text,
          validation: (value) => true,
          value: '',
          breakCol: true),
      'status': FormItem(
        hint: 'loc.status',
        type: FormType.dropdown,
        validation: (value) => value != null,
        value: null,
        options: <DropdownItem>[
          DropdownItem(title: 'AAa', value: '1'),
          DropdownItem(title: 'BBb', value: '2')
        ],
        inRow: true,
      ),
    });
  }

  @override
  Widget build(BuildContext context) => formBuilder ?? Container(child: DI.app().title('aaa'),);
}
2
likes
0
points
441
downloads

Publisher

unverified uploader

Weekly Downloads

A set of components, utils and extensions helpful to solve many problems.

Homepage

License

unknown (license)

Dependencies

auto_route, file_picker, flutter, flutter_colorpicker, flutter_svg, fluttertoast, get_it, hive, hive_flutter, http, image_picker, intl, json_annotation, keyboard_actions, lottie, nanoid, rxdart

More

Packages that depend on cdx_components