|
- import 'package:flutter/material.dart';
- import 'package:go_router/go_router.dart';
- import 'package:provider/provider.dart';
- import 'package:qadirneyriz/global/global_state/global_state.dart';
- import 'package:qadirneyriz/utils/enums/status.dart';
- import 'package:qadirneyriz/utils/tools/tools.dart';
- import 'package:qadirneyriz/widgets/custom_button.dart';
- import 'package:qadirneyriz/widgets/custom_textfield.dart';
- import 'package:flutter_gen/gen_l10n/app_localizations.dart';
-
- class AddSubjectDiolog extends StatelessWidget {
- AddSubjectDiolog({
- super.key,
- });
- final TextEditingController farsiSubjectController = TextEditingController();
- final TextEditingController englishSubjectController =
- TextEditingController();
- @override
- Widget build(BuildContext context) {
- return Consumer<GlobalState>(
- builder: (context, value, child) {
- return Dialog(
- child: Padding(
- padding: const EdgeInsets.all(20.0),
- child: Column(
- mainAxisSize: MainAxisSize.min, // برای اندازهگیری درست دیالوگ
- children: [
- Text(
- AppLocalizations.of(context)!.newsubject,
- ),
- CustomTextField(
- label: AppLocalizations.of(context)!.farsi,
- hintText: '',
- textEditingController: farsiSubjectController,
- textInputType: TextInputType.text),
- CustomTextField(
- label: AppLocalizations.of(context)!.english,
- hintText: '',
- textEditingController: englishSubjectController,
- textInputType: TextInputType.text),
- SizedBox(
- height: 20,
- ),
- submit(value, context),
- ],
- ),
- ),
- );
- },
- );
- }
-
- CustomButton submit(GlobalState state, BuildContext context) {
- switch (state.statusAddNewSubject) {
- case Status.loading:
- return CustomButton(
- hieght: 40,
- width: double.infinity,
- text: AppLocalizations.of(context)!.loading,
- fontSize: 13,
- onPressed: null,
- borderRadius: 10,
- );
-
- default:
- return CustomButton(
- hieght: 40,
- width: double.infinity,
- text: AppLocalizations.of(context)!.add,
- fontSize: 13,
- onPressed: () async {
- if (farsiSubjectController.text != '' &&
- englishSubjectController.text != '') {
- // call add new subject
- final status = await state.addNewSubject(
- enSubject: englishSubjectController.text,
- subject: farsiSubjectController.text);
-
- if (status == Status.ready) {
- // call refrresh subjects
- await state.getSubjects();
- Tools.showCustomSnackBar(
- text: AppLocalizations.of(context)!.addedsubject,
- isError: false,
- context,
- );
- context.pop();
- } else {
- Tools.showCustomSnackBar(
- text: state.errorsAddNewSubject == null
- ? state.messageAddNewSubject ??
- AppLocalizations.of(context)!.haserror
- : Tools.combineErrorMessages(
- state.errorsAddNewSubject ?? {}),
- isError: true,
- context,
- );
- }
- } else {
- Tools.showCustomSnackBar(
- text: AppLocalizations.of(context)!.erroraddsubject,
- isError: true,
- context,
- );
- }
- },
- borderRadius: 10,
- );
- }
- }
- }
|