add disable customer function

This commit is contained in:
Sai Naw Wun
2020-10-17 01:40:24 +06:30
parent 13fa1903bc
commit fa9738f307
28 changed files with 196 additions and 205 deletions

View File

@@ -1,9 +1,11 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/domain/entities/user.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/customer/model/customer_model.dart';
import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/fcs_id_icon.dart';
import 'package:fcs/pages/widgets/local_button.dart';
import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@@ -42,6 +44,13 @@ class _CustomerEditorState extends State<CustomerEditor> {
],
);
final enabled = widget.customer.status != user_disabled_status;
final enableBox = LocalButton(
textKey: enabled ? "customer.disable.btn" : "customer.enable.btn",
iconData: enabled ? Icons.lock : Icons.lock_open,
color: enabled ? primaryColor : Colors.grey,
callBack: () => _enable(!enabled),
);
return LocalProgress(
inAsyncCall: _isLoading,
child: SafeArea(
@@ -52,7 +61,7 @@ class _CustomerEditorState extends State<CustomerEditor> {
centerTitle: true,
leading: new IconButton(
icon: new Icon(
CupertinoIcons.back,
CupertinoIcons.back,
color: primaryColor,
size: 30,
),
@@ -90,6 +99,9 @@ class _CustomerEditorState extends State<CustomerEditor> {
getLocalString(
context, "customer.invitation.request.confirm"),
callack: _add)
: Container(),
widget.customer.joined || widget.customer.disabled
? enableBox
: Container()
],
),
@@ -118,4 +130,23 @@ class _CustomerEditorState extends State<CustomerEditor> {
}
});
}
_enable(bool enabled) async {
setState(() {
_isLoading = true;
});
if (widget.customer == null) return;
CustomerModel customerModel =
Provider.of<CustomerModel>(context, listen: false);
try {
await customerModel.enableUser(widget.customer, enabled);
Navigator.pop(context);
} catch (e) {
showMsgDialog(context, "Error", e.toString());
} finally {
setState(() {
_isLoading = false;
});
}
}
}