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:
@ -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(() {});
|
||||
|
@ -16,6 +16,7 @@ enum BarCallbackActions {
|
||||
OPEN_FRIENDS,
|
||||
OPEN_MY_PAGE,
|
||||
OPEN_GROUPS,
|
||||
OPEN_GROUP_PAGE,
|
||||
OPEN_APP_SETTINGS,
|
||||
NONE,
|
||||
ACTION_LOGOUT
|
||||
|
Reference in New Issue
Block a user