From 88c7aed59a807c6bd84417f3362a43d335a7af37 Mon Sep 17 00:00:00 2001 From: Nicola Benaglia Date: Sat, 10 May 2025 11:39:59 +0200 Subject: [PATCH] Add translations --- public/locales/en/core.json | 4 +- public/locales/en/group.json | 8 ++ src/components/Group/ListOfMembers.tsx | 109 +++++++++++++++---------- 3 files changed, 78 insertions(+), 43 deletions(-) diff --git a/public/locales/en/core.json b/public/locales/en/core.json index 6bb7421..c819a38 100644 --- a/public/locales/en/core.json +++ b/public/locales/en/core.json @@ -29,6 +29,7 @@ "post": "post", "post_message": "post message" }, + "admin": "admin", "core": { "block_height": "block height", "information": "core information", @@ -52,7 +53,8 @@ "last_height": "last height", "list": { "invite": "invite list", - "join_request": "join request list" + "join_request": "join request list", + "member": "member list" }, "loading": "loading...", "loading_posts": "loading posts... please wait.", diff --git a/public/locales/en/group.json b/public/locales/en/group.json index 33c8523..28191ca 100644 --- a/public/locales/en/group.json +++ b/public/locales/en/group.json @@ -1,5 +1,6 @@ { "action": { + "ban": "ban member from group", "cancel_ban": "cancel ban", "copy_private_key": "copy private key", "create_group": "create group", @@ -9,8 +10,11 @@ "export_private_key": "export private key", "find_group": "find group", "join_group": "join group", + "kick_member": "kick member from group", "invite_member": "invite member", + "make_admin": "make an admin", "refetch_page": "refetch page", + "remove_admin": "remove as admin", "return_to_thread": "return to threads" }, "advanced_options": "advanced options", @@ -64,6 +68,7 @@ "thread_id": "unable to locate thread Id" }, "success": { + "group_ban": "successfully banned member from group. It may take a couple of minutes for the changes to propagate", "group_creation": "successfully created group. It may take a couple of minutes for the changes to propagate", "group_creation_name": "created group {{group_name}}: awaiting confirmation", "group_creation_label": "created group {{name}}: success!", @@ -73,6 +78,9 @@ "group_join_label": "joined group {{name}}: success!", "group_join_request": "requested to join Group {{group_name}}: awaiting confirmation", "group_join_outcome": "requested to join Group {{group_name}}: success!", + "group_kick": "successfully kicked member from group. It may take a couple of minutes for the changes to propagate", + "group_member_admin": "successfully made member an admin. It may take a couple of minutes for the changes to propagate", + "group_remove_member": "successfully removed member as an admin. It may take a couple of minutes for the changes to propagate", "invitation_cancellation": "successfully canceled invitation. It may take a couple of minutes for the changes to propagate", "invitation_request": "accepted join request: awaiting confirmation", "loading_threads": "loading threads... please wait.", diff --git a/src/components/Group/ListOfMembers.tsx b/src/components/Group/ListOfMembers.tsx index a46e5e8..e9a1730 100644 --- a/src/components/Group/ListOfMembers.tsx +++ b/src/components/Group/ListOfMembers.tsx @@ -43,7 +43,7 @@ const ListOfMembers = ({ const [isLoadingRemoveAdmin, setIsLoadingRemoveAdmin] = useState(false); const theme = useTheme(); const { t } = useTranslation(['core', 'group']); - const listRef = useRef(); + const listRef = useRef(null); const handlePopoverOpen = (event, index) => { setPopoverAnchor(event.currentTarget); @@ -77,8 +77,9 @@ const ListOfMembers = ({ if (!response?.error) { setInfoSnack({ type: 'success', - message: - 'Successfully kicked member from group. It may take a couple of minutes for the changes to propagate', + message: t('group:message.success.group_kick', { + postProcess: 'capitalize', + }), }); setOpenSnack(true); handlePopoverClose(); @@ -95,7 +96,9 @@ const ListOfMembers = ({ .catch((error) => { setInfoSnack({ type: 'error', - message: error.message || 'An error occurred', + message: + error.message || + t('core:message.error.generic', { postProcess: 'capitalize' }), }); setOpenSnack(true); rej(error); @@ -109,7 +112,8 @@ const ListOfMembers = ({ }; const handleBan = async (address) => { try { - const fee = await getFee('GROUP_BAN'); // TODO translate + const fee = await getFee('GROUP_BAN'); + await show({ message: t('group:question.perform_transaction', { action: 'GROUP_BAN', @@ -117,7 +121,9 @@ const ListOfMembers = ({ }), publishFee: fee.fee + ' QORT', }); + setIsLoadingBan(true); + await new Promise((res, rej) => { window .sendMessage('banFromGroup', { @@ -129,8 +135,9 @@ const ListOfMembers = ({ if (!response?.error) { setInfoSnack({ type: 'success', - message: - 'Successfully banned member from group. It may take a couple of minutes for the changes to propagate', + message: t('group:message.success.group_ban', { + postProcess: 'capitalize', + }), }); setOpenSnack(true); handlePopoverClose(); @@ -147,13 +154,16 @@ const ListOfMembers = ({ .catch((error) => { setInfoSnack({ type: 'error', - message: error.message || 'An error occurred', + message: + error.message || + t('core:message.error.generic', { postProcess: 'capitalize' }), }); setOpenSnack(true); rej(error); }); }); } catch (error) { + console.log(error); } finally { setIsLoadingBan(false); } @@ -180,8 +190,9 @@ const ListOfMembers = ({ if (!response?.error) { setInfoSnack({ type: 'success', - message: - 'Successfully made member an admin. It may take a couple of minutes for the changes to propagate', + message: t('group:message.success.group_member_admin', { + postProcess: 'capitalize', + }), }); setOpenSnack(true); handlePopoverClose(); @@ -198,13 +209,16 @@ const ListOfMembers = ({ .catch((error) => { setInfoSnack({ type: 'error', - message: error.message || 'An error occurred', + message: + error.message || + t('core:message.error.generic', { postProcess: 'capitalize' }), }); setOpenSnack(true); rej(error); }); }); } catch (error) { + console.log(error); } finally { setIsLoadingMakeAdmin(false); } @@ -231,8 +245,9 @@ const ListOfMembers = ({ if (!response?.error) { setInfoSnack({ type: 'success', - message: - 'Successfully removed member as an admin. It may take a couple of minutes for the changes to propagate', + message: t('group:message.success.group_remove_member', { + postProcess: 'capitalize', + }), }); setOpenSnack(true); handlePopoverClose(); @@ -249,13 +264,16 @@ const ListOfMembers = ({ .catch((error) => { setInfoSnack({ type: 'error', - message: error.message || 'An error occurred', + message: + error.message || + t('core:message.error.generic', { postProcess: 'capitalize' }), }); setOpenSnack(true); rej(error); }); }); } catch (error) { + console.log(error); } finally { setIsLoadingRemoveAdmin(false); } @@ -290,13 +308,13 @@ const ListOfMembers = ({ > {isOwner && ( @@ -307,48 +325,49 @@ const ListOfMembers = ({ variant="contained" onClick={() => handleKick(member?.member)} > - Kick member from group + {t('group:action.kick_member', { + postProcess: 'capitalize', + })} + handleBan(member?.member)} > - Ban member from group + {t('group:action.ban', { + postProcess: 'capitalize', + })} + makeAdmin(member?.member)} > - Make an admin + {t('group:action.make_admin', { + postProcess: 'capitalize', + })} + removeAdmin(member?.member)} > - Remove as admin + {t('group:action.remove_admin', { + postProcess: 'capitalize', + })} )} - - // } - disablePadding - > + + handlePopoverOpen(event, index)} > @@ -362,6 +381,7 @@ const ListOfMembers = ({ } /> + - Admin + {t('core:admin', { + postProcess: 'capitalize', + })} )} @@ -386,28 +408,31 @@ const ListOfMembers = ({ return (
-

Member list

+

+ {t('core:list.member', { + postProcess: 'capitalize', + })} +

{({ height, width }) => ( )}