2024-03-04 09:43:00 +07:00
|
|
|
import 'package:appflowy/generated/locale_keys.g.dart';
|
|
|
|
import 'package:appflowy_backend/protobuf/flowy-user/protobuf.dart';
|
|
|
|
import 'package:easy_localization/easy_localization.dart';
|
|
|
|
|
|
|
|
extension AFRolePBExtension on AFRolePB {
|
|
|
|
bool get isOwner => this == AFRolePB.Owner;
|
|
|
|
|
2024-03-29 19:01:43 +08:00
|
|
|
bool get isMember => this == AFRolePB.Member;
|
|
|
|
|
2024-03-04 09:43:00 +07:00
|
|
|
bool get canInvite => isOwner;
|
|
|
|
|
|
|
|
bool get canDelete => isOwner;
|
|
|
|
|
|
|
|
bool get canUpdate => isOwner;
|
|
|
|
|
2024-03-29 19:01:43 +08:00
|
|
|
bool get canLeave => this != AFRolePB.Owner;
|
|
|
|
|
2024-03-04 09:43:00 +07:00
|
|
|
String get description {
|
|
|
|
switch (this) {
|
|
|
|
case AFRolePB.Owner:
|
|
|
|
return LocaleKeys.settings_appearance_members_owner.tr();
|
|
|
|
case AFRolePB.Member:
|
|
|
|
return LocaleKeys.settings_appearance_members_member.tr();
|
|
|
|
case AFRolePB.Guest:
|
|
|
|
return LocaleKeys.settings_appearance_members_guest.tr();
|
|
|
|
}
|
|
|
|
throw UnimplementedError('Unknown role: $this');
|
|
|
|
}
|
|
|
|
}
|