1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2025-06-19 08:15:16 +00:00

Start to build groups page

This commit is contained in:
2020-04-15 18:06:20 +02:00
parent c7d8843f06
commit b10163575f
9 changed files with 347 additions and 12 deletions

View File

@ -13,11 +13,11 @@ import 'package:flutter/material.dart';
class GroupMembershipWidget extends StatefulWidget {
final Group group;
final Function() onUpdated;
final Function() onError;
const GroupMembershipWidget({
@required this.group,
this.onUpdated,
}) : assert(group != null);
const GroupMembershipWidget(
{@required this.group, this.onUpdated, this.onError})
: assert(group != null);
@override
_GroupMembershipWidgetState createState() => _GroupMembershipWidgetState();
@ -50,6 +50,9 @@ class _GroupMembershipWidgetState extends SafeState<GroupMembershipWidget> {
case GroupMembershipLevel.VISITOR:
return _buildVisitorState();
default:
throw Exception("Unkonwn grou pmembership level state: $_level");
}
}
@ -84,9 +87,10 @@ class _GroupMembershipWidgetState extends SafeState<GroupMembershipWidget> {
message: tr("Do you really want to reject this invitation?")))
return;
if (!await GroupsHelper().respondInvitation(_id, accept))
if (!await GroupsHelper().respondInvitation(_id, accept)) {
showSimpleSnack(context, tr("Could not respond to your invitation!"));
else {
if (this.widget.onError != null) this.widget.onError();
} else {
// Refresh state
group.membershipLevel =
accept ? GroupMembershipLevel.MEMBER : GroupMembershipLevel.VISITOR;
@ -114,9 +118,10 @@ class _GroupMembershipWidgetState extends SafeState<GroupMembershipWidget> {
/// Cancel group membership request
void _cancelRequest() async {
if (!await GroupsHelper().cancelRequest(_id))
if (!await GroupsHelper().cancelRequest(_id)) {
showSimpleSnack(context, tr("Could not cancel your membership request!"));
else {
if (this.widget.onError != null) this.widget.onError();
} else {
// Refresh state
group.membershipLevel = GroupMembershipLevel.VISITOR;
this.setState(() {});
@ -138,9 +143,10 @@ class _GroupMembershipWidgetState extends SafeState<GroupMembershipWidget> {
/// Create new membership request
void _requestMembership() async {
if (!await GroupsHelper().sendRequest(_id))
if (!await GroupsHelper().sendRequest(_id)) {
showSimpleSnack(context, tr("Could not send your membership request!"));
else {
if (this.widget.onError != null) this.widget.onError();
} else {
// Refresh state
group.membershipLevel = GroupMembershipLevel.PENDING;
this.setState(() {});

View File

@ -16,6 +16,7 @@ enum BarCallbackActions {
OPEN_FRIENDS,
OPEN_MY_PAGE,
OPEN_GROUPS,
OPEN_GROUP_PAGE,
OPEN_APP_SETTINGS,
NONE,
ACTION_LOGOUT