Skip to content

Commit

Permalink
feat: divide group member role (#559)
Browse files Browse the repository at this point in the history
  • Loading branch information
dawnfire05 authored Feb 12, 2025
1 parent 86cac58 commit 553ac9a
Show file tree
Hide file tree
Showing 7 changed files with 77 additions and 29 deletions.
12 changes: 9 additions & 3 deletions assets/i18n/strings.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@
"manage": {
"header": "Group Management",
"back": "Back",
"deleteConfirmationTitle": "Are you sure you want to delete the group?",
"deleteConfirmationMessage": "This will not affect the notices previously posted under this group name.",
"leaveConfirmationTitle": "Are you sure you want to leave the group?",
"leaveConfirmationMessage": "This will not affect the notices previously posted under this group name.",
"change": "Change",
"profileImage": "Change Group Profile Image",
"name": {
Expand All @@ -79,11 +83,13 @@
"notionLink": {
"header": "Update Notion Page Link",
"hintText": "Enter Notion Link",
"loading": "Loading Notion"
"loading": "Loading Notion",
"error": "Failed Loading Notion Link"
},
"invite": {
"header": "Generate Invite Link",
"invitationLink": "Invitation Link"
"invitationLink": "Invitation Link",
"copy": "Copy invitation link"
},
"member": {
"header": "Manage Members"
Expand All @@ -96,7 +102,7 @@
"role": "Role",
"admin": "Admin",
"manager": "Manager",
"user": "User"
"member": "Member"
},
"banish": "Banish"
},
Expand Down
12 changes: 9 additions & 3 deletions assets/i18n/strings_jp.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@
"manage": {
"header": "グループ管理",
"back": "戻る",
"deleteConfirmationTitle": "グループを削除してもよろしいですか?",
"deleteConfirmationMessage": "このグループ名で投稿された以前の通知には影響しません。",
"leaveConfirmationTitle": "グループを退会してもよろしいですか?",
"leaveConfirmationMessage": "このグループ名で投稿された以前の通知には影響しません。",
"change": "変更",
"profileImage": "グループのプロフィール写真を変更",
"name": {
Expand All @@ -79,11 +83,13 @@
"notionLink": {
"header": "ノーションページリンクを更新",
"hintText": "ノーションリンクを入力してください",
"loading": "ノーションを読み込んでいます"
"loading": "ノーションを読み込んでいます",
"error": "ノーションのリンクの読み込みに失敗しました"
},
"invite": {
"header": "招待リンクを生成",
"invitationLink": "招待リンク"
"invitationLink": "招待リンク",
"copy": "招待リンクをコピー"
},
"member": {
"header": "メンバーを管理"
Expand All @@ -96,7 +102,7 @@
"role": "役割",
"admin": "管理者",
"manager": "マネージャー",
"user": "ユーザー"
"member": "メンバー"
},
"banish": "追放"
},
Expand Down
12 changes: 9 additions & 3 deletions assets/i18n/strings_ko.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@
"manage": {
"header": "그룹 관리",
"back": "돌아가기",
"deleteConfirmationTitle": "정말 그룹을 삭제하시겠습니까?",
"deleteConfirmationMessage": "기존에 본 그룹 명의로 작성된 공지에는 영향을 끼치지 않습니다.",
"leaveConfirmationTitle": "정말 그룹을 나가시겠습니까?",
"leaveConfirmationMessage": "기존에 본 그룹 명의로 작성된 공지에는 영향을 끼치지 않습니다.",
"change": "변경",
"profileImage": "그룹 프로필 사진 변경",
"name": {
Expand All @@ -79,11 +83,13 @@
"notionLink": {
"header": "노션 페이지 링크 변경",
"hintText": "노션 링크 입력",
"loading": "노션 불러오는 중"
"loading": "노션 불러오는 중",
"error": "노션 링크를 불러오는데 실패했습니다"
},
"invite": {
"header": "초대 링크 생성",
"invitationLink": "초대 링크"
"invitationLink": "초대 링크",
"copy": "초대 링크 복사하기"
},
"member": {
"header": "멤버 관리"
Expand All @@ -96,7 +102,7 @@
"role": "역할",
"admin": "관리자",
"manager": "매니저",
"user": "일반"
"member": "멤버"
},
"banish": "추방"
},
Expand Down
12 changes: 9 additions & 3 deletions assets/i18n/strings_ru.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@
"manage": {
"header": "Управление группами",
"back": "Назад",
"deleteConfirmationTitle": "Вы уверены, что хотите удалить группу?",
"deleteConfirmationMessage": "Это не повлияет на ранее опубликованные уведомления под этим именем группы.",
"leaveConfirmationTitle": "Вы уверены, что хотите покинуть группу?",
"leaveConfirmationMessage": "Это не повлияет на ранее опубликованные уведомления под этим именем группы.",
"change": "изменение",
"profileImage": "Изменить изображение профиля группы",
"name": {
Expand All @@ -79,11 +83,13 @@
"notionLink": {
"header": "Обновить ссылку на страницу Notion",
"hintText": "Введите ссылку на Notion",
"loading": "Загрузка Notion"
"loading": "Загрузка Notion",
"error": "Не удалось загрузить ссылку на Notion"
},
"invite": {
"header": "Создать ссылку для приглашения",
"invitationLink": "Ссылка для приглашения"
"invitationLink": "Ссылка для приглашения",
"copy": "Копировать ссылку на приглашение"
},
"member": {
"header": "Управление участниками"
Expand All @@ -96,7 +102,7 @@
"role": "Роль",
"admin": "Администратор",
"manager": "Менеджер",
"user": "Пользователь"
"member": "член"
},
"banish": "Исключить"
},
Expand Down
39 changes: 39 additions & 0 deletions lib/app/modules/groups/data/enums/group_member_role.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import 'package:flutter/material.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:ziggle/gen/strings.g.dart';

@JsonEnum(alwaysCreate: true)
enum GroupMemberRole {
@JsonValue('admin')
admin,

@JsonValue('manager')
manager,

@JsonValue('member')
member;

int toInt() {
switch (this) {
case GroupMemberRole.admin:
return 1;
case GroupMemberRole.manager:
return 2;
case GroupMemberRole.member:
return 3;
}
}
}

extension GroupMemberRoleX on GroupMemberRole {
String toLocalizedString(BuildContext context) {
switch (this) {
case GroupMemberRole.admin:
return context.t.group.memberCard.role.admin;
case GroupMemberRole.manager:
return context.t.group.memberCard.role.manager;
case GroupMemberRole.member:
return context.t.group.memberCard.role.member;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:ziggle/app/modules/common/presentation/widgets/ziggle_app_bar.dart';
import 'package:ziggle/app/modules/common/presentation/widgets/ziggle_button.dart';
import 'package:ziggle/app/modules/core/domain/enums/page_source.dart';
import 'package:ziggle/app/modules/groups/data/enums/group_member_role.dart';
import 'package:ziggle/app/modules/groups/presentation/widgets/group_member_card.dart';
import 'package:ziggle/gen/strings.g.dart';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,10 @@
import 'package:flutter/material.dart';
import 'package:ziggle/app/modules/common/presentation/widgets/ziggle_button.dart';
import 'package:ziggle/app/modules/common/presentation/widgets/ziggle_select.dart';
import 'package:ziggle/app/modules/groups/data/enums/group_member_role.dart';
import 'package:ziggle/app/values/palette.dart';
import 'package:ziggle/gen/strings.g.dart';

enum GroupMemberRole {
admin,
manager,
user;

String toLocalizedString(BuildContext context) {
switch (this) {
case GroupMemberRole.admin:
return context.t.group.memberCard.role.admin;
case GroupMemberRole.manager:
return context.t.group.memberCard.role.manager;
case GroupMemberRole.user:
return context.t.group.memberCard.role.user;
}
}
}

class GroupMemberCard extends StatelessWidget {
final String name;
final String email;
Expand Down

0 comments on commit 553ac9a

Please sign in to comment.