import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/core/repository/label_repository.dart'; import 'package:paperless_mobile/core/repository/state/indexed_repository_state.dart'; import 'package:paperless_mobile/features/edit_label/cubit/edit_label_cubit.dart'; import 'package:paperless_mobile/features/edit_label/view/label_form.dart'; import 'package:paperless_mobile/generated/l10n/app_localizations.dart'; class AddLabelPage extends StatelessWidget { final String? initialName; final Widget pageTitle; final T Function(Map json) fromJsonT; final List additionalFields; const AddLabelPage({ super.key, this.initialName, required this.pageTitle, required this.fromJsonT, this.additionalFields = const [], }); @override Widget build(BuildContext context) { return BlocProvider( create: (context) => EditLabelCubit( context.read>(), ), child: AddLabelFormWidget( pageTitle: pageTitle, label: initialName != null ? fromJsonT({'name': initialName}) : null, additionalFields: additionalFields, fromJsonT: fromJsonT, ), ); } } class AddLabelFormWidget extends StatelessWidget { final T? label; final T Function(Map json) fromJsonT; final List additionalFields; final Widget pageTitle; const AddLabelFormWidget({ super.key, this.label, required this.fromJsonT, required this.additionalFields, required this.pageTitle, }); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: pageTitle, ), body: LabelForm( initialValue: label, fromJsonT: fromJsonT, submitButtonConfig: SubmitButtonConfig( icon: const Icon(Icons.add), label: Text(S.of(context)!.create), onSubmit: context.read>().create, ), additionalFields: additionalFields, ), ); } }