mirror of
https://github.com/Qortal/Qortal-Hub.git
synced 2025-05-15 22:26:58 +00:00
Add translations
This commit is contained in:
parent
5f602442e4
commit
88c7aed59a
@ -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.",
|
||||
|
@ -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.",
|
||||
|
@ -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 = ({
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
width: '325px',
|
||||
height: '250px',
|
||||
alignItems: 'center',
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
alignItems: 'center',
|
||||
gap: '10px',
|
||||
height: '250px',
|
||||
padding: '10px',
|
||||
width: '325px',
|
||||
}}
|
||||
>
|
||||
{isOwner && (
|
||||
@ -307,48 +325,49 @@ const ListOfMembers = ({
|
||||
variant="contained"
|
||||
onClick={() => handleKick(member?.member)}
|
||||
>
|
||||
Kick member from group
|
||||
{t('group:action.kick_member', {
|
||||
postProcess: 'capitalize',
|
||||
})}
|
||||
</LoadingButton>
|
||||
|
||||
<LoadingButton
|
||||
loading={isLoadingBan}
|
||||
loadingPosition="start"
|
||||
variant="contained"
|
||||
onClick={() => handleBan(member?.member)}
|
||||
>
|
||||
Ban member from group
|
||||
{t('group:action.ban', {
|
||||
postProcess: 'capitalize',
|
||||
})}
|
||||
</LoadingButton>
|
||||
|
||||
<LoadingButton
|
||||
loading={isLoadingMakeAdmin}
|
||||
loadingPosition="start"
|
||||
variant="contained"
|
||||
onClick={() => makeAdmin(member?.member)}
|
||||
>
|
||||
Make an admin
|
||||
{t('group:action.make_admin', {
|
||||
postProcess: 'capitalize',
|
||||
})}
|
||||
</LoadingButton>
|
||||
|
||||
<LoadingButton
|
||||
loading={isLoadingRemoveAdmin}
|
||||
loadingPosition="start"
|
||||
variant="contained"
|
||||
onClick={() => removeAdmin(member?.member)}
|
||||
>
|
||||
Remove as admin
|
||||
{t('group:action.remove_admin', {
|
||||
postProcess: 'capitalize',
|
||||
})}
|
||||
</LoadingButton>
|
||||
</>
|
||||
)}
|
||||
</Box>
|
||||
</Popover>
|
||||
<ListItem
|
||||
key={member?.member}
|
||||
// secondaryAction={
|
||||
// <Checkbox
|
||||
// edge="end"
|
||||
// onChange={handleToggle(value)}
|
||||
// checked={checked.indexOf(value) !== -1}
|
||||
// inputProps={{ 'aria-labelledby': labelId }}
|
||||
// />
|
||||
// }
|
||||
disablePadding
|
||||
>
|
||||
|
||||
<ListItem key={member?.member} disablePadding>
|
||||
<ListItemButton
|
||||
onClick={(event) => handlePopoverOpen(event, index)}
|
||||
>
|
||||
@ -362,6 +381,7 @@ const ListOfMembers = ({
|
||||
}
|
||||
/>
|
||||
</ListItemAvatar>
|
||||
|
||||
<ListItemText
|
||||
id={''}
|
||||
primary={member?.name || member?.member}
|
||||
@ -373,7 +393,9 @@ const ListOfMembers = ({
|
||||
marginLeft: 'auto',
|
||||
}}
|
||||
>
|
||||
Admin
|
||||
{t('core:admin', {
|
||||
postProcess: 'capitalize',
|
||||
})}
|
||||
</Typography>
|
||||
)}
|
||||
</ListItemButton>
|
||||
@ -386,28 +408,31 @@ const ListOfMembers = ({
|
||||
|
||||
return (
|
||||
<div>
|
||||
<p>Member list</p>
|
||||
<p>
|
||||
{t('core:list.member', {
|
||||
postProcess: 'capitalize',
|
||||
})}
|
||||
</p>
|
||||
<div
|
||||
style={{
|
||||
position: 'relative',
|
||||
height: '500px',
|
||||
width: '100%',
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
flexShrink: 1,
|
||||
height: '500px',
|
||||
position: 'relative',
|
||||
width: '100%',
|
||||
}}
|
||||
>
|
||||
<AutoSizer>
|
||||
{({ height, width }) => (
|
||||
<List
|
||||
ref={listRef}
|
||||
width={width}
|
||||
deferredMeasurementCache={cache}
|
||||
height={height}
|
||||
ref={listRef}
|
||||
rowCount={members.length}
|
||||
rowHeight={cache.rowHeight}
|
||||
rowRenderer={rowRenderer}
|
||||
// onScroll={handleScroll}
|
||||
deferredMeasurementCache={cache}
|
||||
width={width}
|
||||
/>
|
||||
)}
|
||||
</AutoSizer>
|
||||
|
Loading…
x
Reference in New Issue
Block a user