mirror of
https://github.com/Qortal/Qortal-Hub.git
synced 2025-06-07 08:56:58 +00:00
Add translations
This commit is contained in:
parent
d00265d878
commit
ab1e36fd4e
@ -138,6 +138,7 @@ export const BlockedUsersModal = () => {
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
setOpenSnackGlobal(true);
|
setOpenSnackGlobal(true);
|
||||||
setInfoSnackCustom({
|
setInfoSnackCustom({
|
||||||
|
//TODO translate
|
||||||
type: 'error',
|
type: 'error',
|
||||||
message: error?.message || 'Unable to block user',
|
message: error?.message || 'Unable to block user',
|
||||||
});
|
});
|
||||||
|
@ -2388,6 +2388,7 @@ export const Group = ({
|
|||||||
: 'flex',
|
: 'flex',
|
||||||
}}
|
}}
|
||||||
></AuthenticatedContainerInnerRight>
|
></AuthenticatedContainerInnerRight>
|
||||||
|
|
||||||
<LoadingSnackbar
|
<LoadingSnackbar
|
||||||
open={isLoadingGroup}
|
open={isLoadingGroup}
|
||||||
info={{
|
info={{
|
||||||
|
@ -17,8 +17,9 @@ import { useTranslation } from 'react-i18next';
|
|||||||
export const GroupInvites = ({ myAddress, setOpenAddGroup }) => {
|
export const GroupInvites = ({ myAddress, setOpenAddGroup }) => {
|
||||||
const [groupsWithJoinRequests, setGroupsWithJoinRequests] = useState([]);
|
const [groupsWithJoinRequests, setGroupsWithJoinRequests] = useState([]);
|
||||||
const [isExpanded, setIsExpanded] = useState(false);
|
const [isExpanded, setIsExpanded] = useState(false);
|
||||||
|
|
||||||
const [loading, setLoading] = useState(true);
|
const [loading, setLoading] = useState(true);
|
||||||
|
const { t } = useTranslation(['auth', 'core', 'group']);
|
||||||
|
const theme = useTheme();
|
||||||
|
|
||||||
const getJoinRequests = async () => {
|
const getJoinRequests = async () => {
|
||||||
try {
|
try {
|
||||||
@ -37,9 +38,6 @@ export const GroupInvites = ({ myAddress, setOpenAddGroup }) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const { t } = useTranslation(['auth', 'core', 'group']);
|
|
||||||
const theme = useTheme();
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (myAddress) {
|
if (myAddress) {
|
||||||
getJoinRequests();
|
getJoinRequests();
|
||||||
@ -75,6 +73,7 @@ export const GroupInvites = ({ myAddress, setOpenAddGroup }) => {
|
|||||||
{groupsWithJoinRequests?.length > 0 &&
|
{groupsWithJoinRequests?.length > 0 &&
|
||||||
` (${groupsWithJoinRequests?.length})`}
|
` (${groupsWithJoinRequests?.length})`}
|
||||||
</Typography>
|
</Typography>
|
||||||
|
|
||||||
{isExpanded ? (
|
{isExpanded ? (
|
||||||
<ExpandLessIcon
|
<ExpandLessIcon
|
||||||
sx={{
|
sx={{
|
||||||
@ -113,6 +112,7 @@ export const GroupInvites = ({ myAddress, setOpenAddGroup }) => {
|
|||||||
<CustomLoader />
|
<CustomLoader />
|
||||||
</Box>
|
</Box>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{!loading && groupsWithJoinRequests.length === 0 && (
|
{!loading && groupsWithJoinRequests.length === 0 && (
|
||||||
<Box
|
<Box
|
||||||
sx={{
|
sx={{
|
||||||
@ -136,6 +136,7 @@ export const GroupInvites = ({ myAddress, setOpenAddGroup }) => {
|
|||||||
</Typography>
|
</Typography>
|
||||||
</Box>
|
</Box>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<List
|
<List
|
||||||
sx={{
|
sx={{
|
||||||
width: '100%',
|
width: '100%',
|
||||||
|
@ -149,6 +149,7 @@ export const GroupJoinRequests = ({
|
|||||||
?.length > 0 &&
|
?.length > 0 &&
|
||||||
` (${filteredJoinRequests?.filter((group) => group?.data?.length > 0)?.length})`}
|
` (${filteredJoinRequests?.filter((group) => group?.data?.length > 0)?.length})`}
|
||||||
</Typography>
|
</Typography>
|
||||||
|
|
||||||
{isExpanded ? (
|
{isExpanded ? (
|
||||||
<ExpandLessIcon
|
<ExpandLessIcon
|
||||||
sx={{
|
sx={{
|
||||||
@ -163,6 +164,7 @@ export const GroupJoinRequests = ({
|
|||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
|
|
||||||
<Collapse in={isExpanded} timeout="auto" unmountOnExit>
|
<Collapse in={isExpanded} timeout="auto" unmountOnExit>
|
||||||
<Box
|
<Box
|
||||||
sx={{
|
sx={{
|
||||||
@ -186,6 +188,7 @@ export const GroupJoinRequests = ({
|
|||||||
<CustomLoader />
|
<CustomLoader />
|
||||||
</Box>
|
</Box>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{!loading &&
|
{!loading &&
|
||||||
(filteredJoinRequests.length === 0 ||
|
(filteredJoinRequests.length === 0 ||
|
||||||
filteredJoinRequests?.filter((group) => group?.data?.length > 0)
|
filteredJoinRequests?.filter((group) => group?.data?.length > 0)
|
||||||
@ -212,6 +215,7 @@ export const GroupJoinRequests = ({
|
|||||||
</Typography>
|
</Typography>
|
||||||
</Box>
|
</Box>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<List
|
<List
|
||||||
className="scrollable-container"
|
className="scrollable-container"
|
||||||
sx={{
|
sx={{
|
||||||
@ -267,7 +271,7 @@ export const GroupJoinRequests = ({
|
|||||||
fontSize: '13px',
|
fontSize: '13px',
|
||||||
fontWeight: 400,
|
fontWeight: 400,
|
||||||
},
|
},
|
||||||
}}
|
}} // TODO translate
|
||||||
primary={`${group?.group?.groupName} has ${group?.data?.length} pending join requests.`}
|
primary={`${group?.group?.groupName} has ${group?.data?.length} pending join requests.`}
|
||||||
/>
|
/>
|
||||||
</ListItemButton>
|
</ListItemButton>
|
||||||
|
@ -29,7 +29,6 @@ import {
|
|||||||
isRunningPublicNodeAtom,
|
isRunningPublicNodeAtom,
|
||||||
timestampEnterDataSelector,
|
timestampEnterDataSelector,
|
||||||
} from '../../atoms/global';
|
} from '../../atoms/global';
|
||||||
|
|
||||||
import { timeDifferenceForNotificationChats } from './Group';
|
import { timeDifferenceForNotificationChats } from './Group';
|
||||||
import { useAtom, useAtomValue } from 'jotai';
|
import { useAtom, useAtomValue } from 'jotai';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
@ -56,23 +55,23 @@ export const GroupList = ({
|
|||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
display: 'flex',
|
|
||||||
width: '380px',
|
|
||||||
flexDirection: 'column',
|
|
||||||
alignItems: 'flex-start',
|
alignItems: 'flex-start',
|
||||||
height: '100%',
|
|
||||||
background: theme.palette.background.surface,
|
background: theme.palette.background.surface,
|
||||||
borderRadius: '0px 15px 15px 0px',
|
borderRadius: '0px 15px 15px 0px',
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'column',
|
||||||
|
height: '100%',
|
||||||
padding: '0px 2px',
|
padding: '0px 2px',
|
||||||
|
width: '380px',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Box
|
<Box
|
||||||
sx={{
|
sx={{
|
||||||
width: '100%',
|
|
||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
justifyContent: 'center',
|
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
gap: '10px',
|
gap: '10px',
|
||||||
|
justifyContent: 'center',
|
||||||
|
width: '100%',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<ButtonBase
|
<ButtonBase
|
||||||
@ -252,7 +251,7 @@ const GroupItem = React.memo(
|
|||||||
padding: '10px',
|
padding: '10px',
|
||||||
width: '100%',
|
width: '100%',
|
||||||
'&:hover': {
|
'&:hover': {
|
||||||
backgroundColor: 'action.hover', // background on hover
|
backgroundColor: 'action.hover',
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@ -296,7 +295,7 @@ const GroupItem = React.memo(
|
|||||||
theme.palette.text.primary,
|
theme.palette.text.primary,
|
||||||
fontSize: '16px',
|
fontSize: '16px',
|
||||||
},
|
},
|
||||||
}} // Change the color of the primary text
|
}}
|
||||||
secondaryTypographyProps={{
|
secondaryTypographyProps={{
|
||||||
style: {
|
style: {
|
||||||
color:
|
color:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { Box, Divider, Typography, useTheme } from '@mui/material';
|
import { Box, Divider, Typography, useTheme } from '@mui/material';
|
||||||
import React from 'react';
|
import { useEffect, useMemo, useState } from 'react';
|
||||||
import { Spacer } from '../../common/Spacer';
|
import { Spacer } from '../../common/Spacer';
|
||||||
import { ThingsToDoInitial } from './ThingsToDoInitial';
|
import { ThingsToDoInitial } from './ThingsToDoInitial';
|
||||||
import { GroupJoinRequests } from './GroupJoinRequests';
|
import { GroupJoinRequests } from './GroupJoinRequests';
|
||||||
@ -28,28 +28,28 @@ export const HomeDesktop = ({
|
|||||||
setDesktopViewMode,
|
setDesktopViewMode,
|
||||||
desktopViewMode,
|
desktopViewMode,
|
||||||
}) => {
|
}) => {
|
||||||
const [checked1, setChecked1] = React.useState(false);
|
const [checked1, setChecked1] = useState(false);
|
||||||
const [checked2, setChecked2] = React.useState(false);
|
const [checked2, setChecked2] = useState(false);
|
||||||
|
|
||||||
const { t } = useTranslation(['auth', 'core', 'group']);
|
const { t } = useTranslation(['auth', 'core', 'group']);
|
||||||
const theme = useTheme();
|
const theme = useTheme();
|
||||||
|
|
||||||
React.useEffect(() => {
|
useEffect(() => {
|
||||||
if (balance && +balance >= 6) {
|
if (balance && +balance >= 6) {
|
||||||
setChecked1(true);
|
setChecked1(true);
|
||||||
}
|
}
|
||||||
}, [balance]);
|
}, [balance]);
|
||||||
|
|
||||||
React.useEffect(() => {
|
useEffect(() => {
|
||||||
if (name) setChecked2(true);
|
if (name) setChecked2(true);
|
||||||
}, [name]);
|
}, [name]);
|
||||||
|
|
||||||
const isLoaded = React.useMemo(() => {
|
const isLoaded = useMemo(() => {
|
||||||
if (userInfo !== null) return true;
|
if (userInfo !== null) return true;
|
||||||
return false;
|
return false;
|
||||||
}, [userInfo]);
|
}, [userInfo]);
|
||||||
|
|
||||||
const hasDoneNameAndBalanceAndIsLoaded = React.useMemo(() => {
|
const hasDoneNameAndBalanceAndIsLoaded = useMemo(() => {
|
||||||
if (isLoaded && checked1 && checked2) return true;
|
if (isLoaded && checked1 && checked2) return true;
|
||||||
return false;
|
return false;
|
||||||
}, [checked1, isLoaded, checked2]);
|
}, [checked1, isLoaded, checked2]);
|
||||||
@ -136,14 +136,6 @@ export const HomeDesktop = ({
|
|||||||
|
|
||||||
{desktopViewMode === 'home' && (
|
{desktopViewMode === 'home' && (
|
||||||
<>
|
<>
|
||||||
{/* <Box sx={{
|
|
||||||
width: '330px',
|
|
||||||
display: 'flex',
|
|
||||||
alignItems: 'center',
|
|
||||||
justifyContent: 'center'
|
|
||||||
}}>
|
|
||||||
<ListOfThreadPostsWatched />
|
|
||||||
</Box> */}
|
|
||||||
{hasDoneNameAndBalanceAndIsLoaded && (
|
{hasDoneNameAndBalanceAndIsLoaded && (
|
||||||
<>
|
<>
|
||||||
<Box
|
<Box
|
||||||
|
@ -87,6 +87,7 @@ export const ListOfBans = ({ groupId, setInfoSnack, setOpenSnack, show }) => {
|
|||||||
const handleCancelBan = async (address) => {
|
const handleCancelBan = async (address) => {
|
||||||
try {
|
try {
|
||||||
const fee = await getFee('CANCEL_GROUP_BAN');
|
const fee = await getFee('CANCEL_GROUP_BAN');
|
||||||
|
|
||||||
await show({
|
await show({
|
||||||
message: t('core:message.question.perform_transaction', {
|
message: t('core:message.question.perform_transaction', {
|
||||||
action: 'CANCEL_GROUP_BAN',
|
action: 'CANCEL_GROUP_BAN',
|
||||||
@ -94,6 +95,7 @@ export const ListOfBans = ({ groupId, setInfoSnack, setOpenSnack, show }) => {
|
|||||||
}),
|
}),
|
||||||
publishFee: fee.fee + ' QORT',
|
publishFee: fee.fee + ' QORT',
|
||||||
});
|
});
|
||||||
|
|
||||||
setIsLoadingUnban(true);
|
setIsLoadingUnban(true);
|
||||||
new Promise((res, rej) => {
|
new Promise((res, rej) => {
|
||||||
window
|
window
|
||||||
@ -125,7 +127,11 @@ export const ListOfBans = ({ groupId, setInfoSnack, setOpenSnack, show }) => {
|
|||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
setInfoSnack({
|
setInfoSnack({
|
||||||
type: 'error',
|
type: 'error',
|
||||||
message: error.message || 'An error occurred',
|
message:
|
||||||
|
error.message ||
|
||||||
|
t('core:message.error.generic', {
|
||||||
|
postProcess: 'capitalizeFirst',
|
||||||
|
}),
|
||||||
});
|
});
|
||||||
setOpenSnack(true);
|
setOpenSnack(true);
|
||||||
rej(error);
|
rej(error);
|
||||||
|
@ -1,10 +1,4 @@
|
|||||||
import React, {
|
import { useCallback, useContext, useEffect, useRef, useState } from 'react';
|
||||||
useCallback,
|
|
||||||
useContext,
|
|
||||||
useEffect,
|
|
||||||
useRef,
|
|
||||||
useState,
|
|
||||||
} from 'react';
|
|
||||||
import {
|
import {
|
||||||
Avatar,
|
Avatar,
|
||||||
Box,
|
Box,
|
||||||
@ -88,7 +82,7 @@ export const ListOfGroupPromotions = () => {
|
|||||||
const [promotionTimeInterval, setPromotionTimeInterval] = useAtom(
|
const [promotionTimeInterval, setPromotionTimeInterval] = useAtom(
|
||||||
promotionTimeIntervalAtom
|
promotionTimeIntervalAtom
|
||||||
);
|
);
|
||||||
const [isExpanded, setIsExpanded] = React.useState(false);
|
const [isExpanded, setIsExpanded] = useState(false);
|
||||||
const [openSnack, setOpenSnack] = useState(false);
|
const [openSnack, setOpenSnack] = useState(false);
|
||||||
const [infoSnack, setInfoSnack] = useState(null);
|
const [infoSnack, setInfoSnack] = useState(null);
|
||||||
const [fee, setFee] = useState(null);
|
const [fee, setFee] = useState(null);
|
||||||
@ -101,7 +95,7 @@ export const ListOfGroupPromotions = () => {
|
|||||||
const listRef = useRef(null);
|
const listRef = useRef(null);
|
||||||
const rowVirtualizer = useVirtualizer({
|
const rowVirtualizer = useVirtualizer({
|
||||||
count: promotions.length,
|
count: promotions.length,
|
||||||
getItemKey: React.useCallback(
|
getItemKey: useCallback(
|
||||||
(index) => promotions[index]?.identifier,
|
(index) => promotions[index]?.identifier,
|
||||||
[promotions]
|
[promotions]
|
||||||
),
|
),
|
||||||
@ -495,6 +489,7 @@ export const ListOfGroupPromotions = () => {
|
|||||||
<CustomLoader />
|
<CustomLoader />
|
||||||
</Box>
|
</Box>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{!loading && promotions.length === 0 && (
|
{!loading && promotions.length === 0 && (
|
||||||
<Box
|
<Box
|
||||||
sx={{
|
sx={{
|
||||||
@ -518,6 +513,7 @@ export const ListOfGroupPromotions = () => {
|
|||||||
</Typography>
|
</Typography>
|
||||||
</Box>
|
</Box>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
height: '600px',
|
height: '600px',
|
||||||
@ -776,6 +772,7 @@ export const ListOfGroupPromotions = () => {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{promotion?.isOpen === true && (
|
{promotion?.isOpen === true && (
|
||||||
<NoEncryptionGmailerrorredIcon
|
<NoEncryptionGmailerrorredIcon
|
||||||
sx={{
|
sx={{
|
||||||
@ -783,6 +780,7 @@ export const ListOfGroupPromotions = () => {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<Typography
|
<Typography
|
||||||
sx={{
|
sx={{
|
||||||
fontSize: '15px',
|
fontSize: '15px',
|
||||||
|
@ -210,13 +210,13 @@ export const ListOfJoinRequests = ({
|
|||||||
>
|
>
|
||||||
<Box
|
<Box
|
||||||
sx={{
|
sx={{
|
||||||
width: '325px',
|
alignItems: 'center',
|
||||||
height: '250px',
|
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
flexDirection: 'column',
|
flexDirection: 'column',
|
||||||
alignItems: 'center',
|
|
||||||
gap: '10px',
|
gap: '10px',
|
||||||
|
height: '250px',
|
||||||
padding: '10px',
|
padding: '10px',
|
||||||
|
width: '325px',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<LoadingButton
|
<LoadingButton
|
||||||
@ -261,12 +261,12 @@ export const ListOfJoinRequests = ({
|
|||||||
</p>
|
</p>
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
position: 'relative',
|
|
||||||
height: '500px',
|
|
||||||
width: '100%',
|
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
flexDirection: 'column',
|
flexDirection: 'column',
|
||||||
flexShrink: 1,
|
flexShrink: 1,
|
||||||
|
height: '500px',
|
||||||
|
position: 'relative',
|
||||||
|
width: '100%',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<AutoSizer>
|
<AutoSizer>
|
||||||
|
@ -117,6 +117,7 @@ export const ListOfThreadPostsWatched = () => {
|
|||||||
<CustomLoader />
|
<CustomLoader />
|
||||||
</Box>
|
</Box>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{!loading && posts.length === 0 && (
|
{!loading && posts.length === 0 && (
|
||||||
<Box
|
<Box
|
||||||
sx={{
|
sx={{
|
||||||
@ -140,6 +141,7 @@ export const ListOfThreadPostsWatched = () => {
|
|||||||
</Typography>
|
</Typography>
|
||||||
</Box>
|
</Box>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{posts?.length > 0 && (
|
{posts?.length > 0 && (
|
||||||
<List
|
<List
|
||||||
className="scrollable-container"
|
className="scrollable-container"
|
||||||
@ -172,7 +174,7 @@ export const ListOfThreadPostsWatched = () => {
|
|||||||
}
|
}
|
||||||
>
|
>
|
||||||
<ListItemButton disableRipple role={undefined} dense>
|
<ListItemButton disableRipple role={undefined} dense>
|
||||||
<ListItemText
|
<ListItemText //TODO translate
|
||||||
primary={`New post in ${post?.thread?.threadData?.title}`}
|
primary={`New post in ${post?.thread?.threadData?.title}`}
|
||||||
/>
|
/>
|
||||||
</ListItemButton>
|
</ListItemButton>
|
||||||
|
@ -367,9 +367,9 @@ export const ManageMembers = ({
|
|||||||
{value === 0 && (
|
{value === 0 && (
|
||||||
<Box
|
<Box
|
||||||
sx={{
|
sx={{
|
||||||
width: '100%',
|
|
||||||
padding: '25px',
|
|
||||||
maxWidth: '750px',
|
maxWidth: '750px',
|
||||||
|
padding: '25px',
|
||||||
|
width: '100%',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Button
|
<Button
|
||||||
@ -398,9 +398,9 @@ export const ManageMembers = ({
|
|||||||
{value === 1 && (
|
{value === 1 && (
|
||||||
<Box
|
<Box
|
||||||
sx={{
|
sx={{
|
||||||
width: '100%',
|
|
||||||
padding: '25px',
|
|
||||||
maxWidth: '750px',
|
maxWidth: '750px',
|
||||||
|
padding: '25px',
|
||||||
|
width: '100%',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<InviteMember
|
<InviteMember
|
||||||
@ -415,9 +415,9 @@ export const ManageMembers = ({
|
|||||||
{value === 2 && (
|
{value === 2 && (
|
||||||
<Box
|
<Box
|
||||||
sx={{
|
sx={{
|
||||||
width: '100%',
|
|
||||||
padding: '25px',
|
|
||||||
maxWidth: '750px',
|
maxWidth: '750px',
|
||||||
|
padding: '25px',
|
||||||
|
width: '100%',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<ListOfInvites
|
<ListOfInvites
|
||||||
@ -432,8 +432,8 @@ export const ManageMembers = ({
|
|||||||
{value === 3 && (
|
{value === 3 && (
|
||||||
<Box
|
<Box
|
||||||
sx={{
|
sx={{
|
||||||
width: '100%',
|
|
||||||
padding: '25px',
|
padding: '25px',
|
||||||
|
width: '100%',
|
||||||
maxWidth: '750px',
|
maxWidth: '750px',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@ -449,9 +449,9 @@ export const ManageMembers = ({
|
|||||||
{value === 4 && (
|
{value === 4 && (
|
||||||
<Box
|
<Box
|
||||||
sx={{
|
sx={{
|
||||||
width: '100%',
|
|
||||||
padding: '25px',
|
|
||||||
maxWidth: '750px',
|
maxWidth: '750px',
|
||||||
|
padding: '25px',
|
||||||
|
width: '100%',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<ListOfJoinRequests
|
<ListOfJoinRequests
|
||||||
|
@ -210,6 +210,7 @@ export const QMailMessages = ({ userName, userAddress }) => {
|
|||||||
<CustomLoader />
|
<CustomLoader />
|
||||||
</Box>
|
</Box>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{!loading && mails.length === 0 && (
|
{!loading && mails.length === 0 && (
|
||||||
<Box
|
<Box
|
||||||
sx={{
|
sx={{
|
||||||
|
@ -199,6 +199,7 @@ export const Settings = ({ open, setOpen, rawWallet }) => {
|
|||||||
postProcess: 'capitalizeFirstChar',
|
postProcess: 'capitalizeFirstChar',
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{window?.electronAPI && (
|
{window?.electronAPI && (
|
||||||
<FormControlLabel
|
<FormControlLabel
|
||||||
control={
|
control={
|
||||||
@ -320,6 +321,7 @@ const ExportPrivateKey = ({ rawWallet }) => {
|
|||||||
autoComplete="off"
|
autoComplete="off"
|
||||||
onChange={(e) => setPassword(e.target.value)}
|
onChange={(e) => setPassword(e.target.value)}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{privateKey && (
|
{privateKey && (
|
||||||
<Button
|
<Button
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
|
@ -12,8 +12,10 @@ import { AppsNavBarLeft, AppsNavBarParent } from '../Apps/Apps-styles';
|
|||||||
import { NavBack } from '../../assets/Icons/NavBack.tsx';
|
import { NavBack } from '../../assets/Icons/NavBack.tsx';
|
||||||
import RefreshIcon from '@mui/icons-material/Refresh';
|
import RefreshIcon from '@mui/icons-material/Refresh';
|
||||||
import { useAtom } from 'jotai';
|
import { useAtom } from 'jotai';
|
||||||
|
import { useTranslation } from 'react-i18next';
|
||||||
|
|
||||||
export const WalletsAppWrapper = () => {
|
export const WalletsAppWrapper = () => {
|
||||||
|
const { t } = useTranslation(['auth', 'core', 'group']);
|
||||||
const iframeRef = useRef(null);
|
const iframeRef = useRef(null);
|
||||||
const [isOpen, setIsOpen] = useState(false);
|
const [isOpen, setIsOpen] = useState(false);
|
||||||
const [navigationController, setNavigationController] = useAtom(
|
const [navigationController, setNavigationController] = useAtom(
|
||||||
@ -87,7 +89,9 @@ export const WalletsAppWrapper = () => {
|
|||||||
justifyContent: 'space-between',
|
justifyContent: 'space-between',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Typography>Q-Wallets</Typography>
|
<Typography>
|
||||||
|
{t('core:q_apps.q_wallets', { postProcess: 'capitalizeFirst' })}
|
||||||
|
</Typography>
|
||||||
|
|
||||||
<ButtonBase onClick={handleClose}>
|
<ButtonBase onClick={handleClose}>
|
||||||
<CloseIcon
|
<CloseIcon
|
||||||
|
@ -513,7 +513,7 @@ export const UserLookup = ({ isOpenDrawerLookup, setIsOpenDrawerLookup }) => {
|
|||||||
{t('core:amount', { postProcess: 'capitalizeFirst' })}
|
{t('core:amount', { postProcess: 'capitalizeFirst' })}
|
||||||
</TableCell>
|
</TableCell>
|
||||||
<TableCell>
|
<TableCell>
|
||||||
{t('core:time', { postProcess: 'capitalizeFirst' })}
|
{t('core:time.time', { postProcess: 'capitalizeFirst' })}
|
||||||
</TableCell>
|
</TableCell>
|
||||||
</TableRow>
|
</TableRow>
|
||||||
</TableHead>
|
</TableHead>
|
||||||
|
@ -296,7 +296,8 @@
|
|||||||
"about": "about this Q-App",
|
"about": "about this Q-App",
|
||||||
"q_mail": "q-mail",
|
"q_mail": "q-mail",
|
||||||
"q_manager": "q-manager",
|
"q_manager": "q-manager",
|
||||||
"q_sandbox": "q-Sandbox"
|
"q_sandbox": "q-Sandbox",
|
||||||
|
"q_wallets": "q-Wallets"
|
||||||
},
|
},
|
||||||
"receiver": "receiver",
|
"receiver": "receiver",
|
||||||
"sender": "sender",
|
"sender": "sender",
|
||||||
@ -319,9 +320,9 @@
|
|||||||
"hour_one": "{{count}} hour",
|
"hour_one": "{{count}} hour",
|
||||||
"hour_other": "{{count}} hours",
|
"hour_other": "{{count}} hours",
|
||||||
"minute_one": "{{count}} minute",
|
"minute_one": "{{count}} minute",
|
||||||
"minute_other": "{{count}} minutes"
|
"minute_other": "{{count}} minutes",
|
||||||
|
"time": "time"
|
||||||
},
|
},
|
||||||
"time": "time",
|
|
||||||
"title": "title",
|
"title": "title",
|
||||||
"tutorial": "tutorial",
|
"tutorial": "tutorial",
|
||||||
"user_lookup": "user lookup",
|
"user_lookup": "user lookup",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user