mirror of
https://github.com/RoboSats/robosats.git
synced 2025-09-05 20:44:11 +00:00
Merge pull request #2059 from RoboSats/add-trade-breadcrumb
Add trade breadcrumb
This commit is contained in:
@ -1,6 +1,17 @@
|
||||
import React, { useContext, useEffect, useRef, useState } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { Tab, Tabs, Paper, CircularProgress, Grid, Typography, Box } from '@mui/material';
|
||||
import {
|
||||
Tab,
|
||||
Tabs,
|
||||
Paper,
|
||||
CircularProgress,
|
||||
Grid,
|
||||
Typography,
|
||||
Box,
|
||||
Stepper,
|
||||
Step,
|
||||
StepLabel,
|
||||
} from '@mui/material';
|
||||
import { useNavigate, useParams } from 'react-router-dom';
|
||||
|
||||
import TradeBox from '../../components/TradeBox';
|
||||
@ -29,6 +40,7 @@ const OrderPage = (): React.JSX.Element => {
|
||||
const [tab, setTab] = useState<'order' | 'contract'>('contract');
|
||||
const [currentOrder, setCurrentOrder] = useState<Order | null>(null);
|
||||
const [openNoRobot, setOpenNoRobot] = useState<boolean>(false);
|
||||
const [orderStep, setOrderStep] = useState<number>(0);
|
||||
|
||||
useEffect(() => {
|
||||
paramsRef.current = params;
|
||||
@ -54,6 +66,21 @@ const OrderPage = (): React.JSX.Element => {
|
||||
};
|
||||
}, [params.orderId, openNoRobot]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!currentOrder) return;
|
||||
|
||||
setOrderStep(0);
|
||||
if ([1].includes(currentOrder.status)) {
|
||||
setOrderStep(1);
|
||||
} else if ([6, 7, 8].includes(currentOrder.status)) {
|
||||
setOrderStep(2);
|
||||
} else if ([9, 10, 11, 12, 13].includes(currentOrder.status)) {
|
||||
setOrderStep(3);
|
||||
} else if ([14, 15, 16, 17, 18].includes(currentOrder.status)) {
|
||||
setOrderStep(4);
|
||||
}
|
||||
}, [currentOrder?.status]);
|
||||
|
||||
const updateSlotFromOrder = (updatedOrder: Order, slot: Slot): void => {
|
||||
if (
|
||||
Number(paramsRef.current.orderId) === updatedOrder.id &&
|
||||
@ -93,6 +120,8 @@ const OrderPage = (): React.JSX.Element => {
|
||||
<></>
|
||||
);
|
||||
|
||||
const steps = ['Publish', 'Wait', 'Setup', 'Trade', 'Finished'];
|
||||
|
||||
return (
|
||||
<Box>
|
||||
<WarningDialog
|
||||
@ -120,6 +149,7 @@ const OrderPage = (): React.JSX.Element => {
|
||||
}}
|
||||
/>
|
||||
{!currentOrder?.maker && !currentOrder?.bad_request && <CircularProgress />}
|
||||
|
||||
{currentOrder?.bad_request && currentOrder.status !== 5 ? (
|
||||
<>
|
||||
<Typography align='center' variant='subtitle2' color='secondary'>
|
||||
@ -153,6 +183,15 @@ const OrderPage = (): React.JSX.Element => {
|
||||
spacing={2}
|
||||
style={{ width: '43em' }}
|
||||
>
|
||||
<Grid item xs={12} style={{ width: '42em' }}>
|
||||
<Stepper activeStep={orderStep}>
|
||||
{steps.map((label) => (
|
||||
<Step key={label}>
|
||||
<StepLabel>{t(label)}</StepLabel>
|
||||
</Step>
|
||||
))}
|
||||
</Stepper>
|
||||
</Grid>
|
||||
<Grid item xs={6} style={{ width: '21em' }}>
|
||||
<Paper
|
||||
elevation={12}
|
||||
|
@ -795,7 +795,7 @@ const MakerForm = ({
|
||||
variant={hasCustomPaymentMethod ? 'contained' : 'outlined'}
|
||||
fullWidth
|
||||
sx={{
|
||||
minHeight: '3.2em',
|
||||
minHeight: '3.3em',
|
||||
minWidth: 0,
|
||||
padding: 0,
|
||||
justifyContent: 'center',
|
||||
|
@ -308,9 +308,9 @@ const OrderDetails = ({
|
||||
<ListItemAvatar sx={{ width: '4em', height: '4em' }}>
|
||||
<RobotAvatar
|
||||
statusColor={statusBadgeColor(currentOrder?.maker_status ?? '')}
|
||||
hashId={currentOrder?.maker_hash_id}
|
||||
tooltip={t(currentOrder?.maker_status ?? '')}
|
||||
orderType={currentOrder?.type}
|
||||
hashId={currentOrder.maker_hash_id}
|
||||
tooltip={t(currentOrder.maker_status ?? '')}
|
||||
orderType={currentOrder.type}
|
||||
small={true}
|
||||
/>
|
||||
</ListItemAvatar>
|
||||
|
@ -47,7 +47,6 @@ const RobotAvatar: React.FC<Props> = ({
|
||||
onLoad = () => {},
|
||||
}) => {
|
||||
const { hostUrl, client } = useContext<UseAppStoreType>(AppContext);
|
||||
const backgroundFadeTime = 3000;
|
||||
const defaultAvatarSrc = useMemo(() => {
|
||||
return client !== 'mobile'
|
||||
? `${hostUrl}/static/federation/avatars/${shortAlias}${small ? '.small' : ''}.webp`
|
||||
@ -62,27 +61,22 @@ const RobotAvatar: React.FC<Props> = ({
|
||||
const className = placeholderType === 'loading' ? 'loadingAvatar' : 'generatingAvatar';
|
||||
|
||||
useEffect(() => {
|
||||
if (hashId !== undefined) {
|
||||
if (hashId) {
|
||||
roboidentitiesClient
|
||||
.generateRobohash(hashId, small ? 'small' : 'large')
|
||||
.then((avatar) => {
|
||||
setAvatarSrc(avatar);
|
||||
setActiveBackground(false);
|
||||
})
|
||||
.catch(() => {
|
||||
setAvatarSrc(defaultAvatarSrc);
|
||||
setActiveBackground(true);
|
||||
});
|
||||
setTimeout(() => {
|
||||
setActiveBackground(false);
|
||||
}, backgroundFadeTime);
|
||||
}
|
||||
}, [hashId]);
|
||||
}, [hashId, small]);
|
||||
|
||||
useEffect(() => {
|
||||
if (shortAlias && shortAlias !== '') {
|
||||
setAvatarSrc(defaultAvatarSrc);
|
||||
setTimeout(() => {
|
||||
setActiveBackground(false);
|
||||
}, backgroundFadeTime);
|
||||
} else {
|
||||
setActiveBackground(true);
|
||||
}
|
||||
|
@ -1,9 +1,11 @@
|
||||
import React, { useState } from 'react';
|
||||
import React, { useContext, useState } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { Box, Tooltip } from '@mui/material';
|
||||
import { Box, Grid, Tooltip } from '@mui/material';
|
||||
import { type Order } from '../../models';
|
||||
import { LoadingButton } from '@mui/lab';
|
||||
import CancelOrderDialog from '../Dialogs/CancelOrder';
|
||||
import { UseFederationStoreType, FederationContext } from '../../contexts/FederationContext';
|
||||
import { systemClient } from '../../services/System';
|
||||
|
||||
interface CancelButtonProps {
|
||||
order: Order | null;
|
||||
@ -21,6 +23,7 @@ const CancelButton = ({
|
||||
loading = false,
|
||||
}: CancelButtonProps): React.JSX.Element => {
|
||||
const { t } = useTranslation();
|
||||
const { federation } = useContext<UseFederationStoreType>(FederationContext);
|
||||
const [openCancelWarning, setOpenCancelWarning] = useState<boolean>(false);
|
||||
|
||||
const showCancelButton =
|
||||
@ -35,17 +38,36 @@ const CancelButton = ({
|
||||
Boolean(order?.is_maker && order?.status === 0) ||
|
||||
Boolean(order?.is_taker && order?.status === 3);
|
||||
|
||||
const copyOrderUrl = () => {
|
||||
const coordinator = federation.getCoordinator(order?.shortAlias ?? '');
|
||||
const orderOriginUrl = `${coordinator.url}/order/${coordinator.shortAlias}/${order?.id}`;
|
||||
systemClient.copyToClipboard(orderOriginUrl);
|
||||
};
|
||||
|
||||
return (
|
||||
<Box>
|
||||
{showCancelButton ? (
|
||||
<Tooltip
|
||||
placement='top'
|
||||
enterTouchDelay={500}
|
||||
enterDelay={700}
|
||||
enterNextDelay={2000}
|
||||
title={noConfirmation ? t('Cancel order') : t('Unilateral cancelation (bond at risk!)')}
|
||||
>
|
||||
<div>
|
||||
<Grid item style={{ paddingTop: '8px', display: 'flex', flexDirection: 'row' }}>
|
||||
<Tooltip
|
||||
placement='top'
|
||||
enterTouchDelay={500}
|
||||
enterDelay={700}
|
||||
enterNextDelay={2000}
|
||||
title={t('Copy order URL')}
|
||||
>
|
||||
<div style={{ marginRight: 18 }}>
|
||||
<LoadingButton size='small' variant='outlined' color='primary' onClick={copyOrderUrl}>
|
||||
{t('Copy URL')}
|
||||
</LoadingButton>
|
||||
</div>
|
||||
</Tooltip>
|
||||
<Tooltip
|
||||
placement='top'
|
||||
enterTouchDelay={500}
|
||||
enterDelay={700}
|
||||
enterNextDelay={2000}
|
||||
title={noConfirmation ? t('Cancel order') : t('Unilateral cancelation (bond at risk!)')}
|
||||
>
|
||||
<LoadingButton
|
||||
size='small'
|
||||
loading={loading}
|
||||
@ -63,8 +85,8 @@ const CancelButton = ({
|
||||
>
|
||||
{t('Cancel')}
|
||||
</LoadingButton>
|
||||
</div>
|
||||
</Tooltip>
|
||||
</Tooltip>
|
||||
</Grid>
|
||||
) : (
|
||||
<></>
|
||||
)}
|
||||
|
@ -1,5 +1,5 @@
|
||||
import React, { useState, useEffect, useContext } from 'react';
|
||||
import { Box, Divider, Grid, Tooltip } from '@mui/material';
|
||||
import { Box, Divider, Grid } from '@mui/material';
|
||||
import { getWebln, pn } from '../../utils';
|
||||
import {
|
||||
ConfirmCancelDialog,
|
||||
@ -51,8 +51,6 @@ import { type UseAppStoreType, AppContext } from '../../contexts/AppContext';
|
||||
import { FederationContext, type UseFederationStoreType } from '../../contexts/FederationContext';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { LoadingButton } from '@mui/lab';
|
||||
import { systemClient } from '../../services/System';
|
||||
|
||||
interface loadingButtonsProps {
|
||||
cancel: boolean;
|
||||
@ -290,12 +288,6 @@ const TradeBox = ({ currentOrder, onStartAgain }: TradeBoxProps): React.JSX.Elem
|
||||
}
|
||||
};
|
||||
|
||||
const copyOrderUrl = () => {
|
||||
const coordinator = federation.getCoordinator(currentOrder.shortAlias);
|
||||
const orderOriginUrl = `${coordinator.url}/order/${coordinator.shortAlias}/${currentOrder.id}`;
|
||||
systemClient.copyToClipboard(orderOriginUrl);
|
||||
};
|
||||
|
||||
const pauseOrder = function (): void {
|
||||
setLoadingButtons({ ...noLoadingButtons, pauseOrder: true });
|
||||
submitAction({ action: 'pause' });
|
||||
@ -816,33 +808,17 @@ const TradeBox = ({ currentOrder, onStartAgain }: TradeBoxProps): React.JSX.Elem
|
||||
) : (
|
||||
<></>
|
||||
)}
|
||||
|
||||
<Grid item style={{ paddingTop: '8px', display: 'flex', flexDirection: 'row' }}>
|
||||
<Tooltip
|
||||
placement='top'
|
||||
enterTouchDelay={500}
|
||||
enterDelay={700}
|
||||
enterNextDelay={2000}
|
||||
title={t('Copy order URL')}
|
||||
>
|
||||
<div style={{ marginRight: 18 }}>
|
||||
<LoadingButton size='small' variant='outlined' color='primary' onClick={copyOrderUrl}>
|
||||
{t('Copy URL')}
|
||||
</LoadingButton>
|
||||
</div>
|
||||
</Tooltip>
|
||||
<CancelButton
|
||||
order={currentOrder ?? null}
|
||||
onClickCancel={cancel}
|
||||
openCancelDialog={() => {
|
||||
setOpen({ ...closeAll, confirmCancel: true });
|
||||
}}
|
||||
openCollabCancelDialog={() => {
|
||||
setOpen({ ...closeAll, confirmCollabCancel: true });
|
||||
}}
|
||||
loading={loadingButtons.cancel}
|
||||
/>
|
||||
</Grid>
|
||||
<CancelButton
|
||||
order={currentOrder ?? null}
|
||||
onClickCancel={cancel}
|
||||
openCancelDialog={() => {
|
||||
setOpen({ ...closeAll, confirmCancel: true });
|
||||
}}
|
||||
openCollabCancelDialog={() => {
|
||||
setOpen({ ...closeAll, confirmCollabCancel: true });
|
||||
}}
|
||||
loading={loadingButtons.cancel}
|
||||
/>
|
||||
</Grid>
|
||||
</Box>
|
||||
);
|
||||
|
@ -526,6 +526,8 @@
|
||||
"#51": "Phrases in components/TradeBox/CancelButton.tsx",
|
||||
"Cancel order": "Cancel order",
|
||||
"Collaborative Cancel": "Cancel·lació col·laborativa",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"Unilateral cancelation (bond at risk!)": "Cancel·lació unilateral (Fiança en risc!)",
|
||||
"#52": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
|
||||
"You asked for a collaborative cancellation": "Has sol·licitat cancel·lar col·laborativament",
|
||||
@ -558,8 +560,6 @@
|
||||
"See Compatible Wallets": "Veure bitlleteres compatibles",
|
||||
"#55": "Phrases in components/TradeBox/index.tsx",
|
||||
"A contact method is required": "A contact method is required",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"The statement is too short. Make sure to be thorough.": "The statement is too short. Make sure to be thorough.",
|
||||
"#56": "Phrases in components/TradeBox/Dialogs/ConfirmCancel.tsx",
|
||||
"Confirm Cancel": "Confirmar cancel·lació",
|
||||
|
@ -526,6 +526,8 @@
|
||||
"#51": "Phrases in components/TradeBox/CancelButton.tsx",
|
||||
"Cancel order": "Cancel order",
|
||||
"Collaborative Cancel": "Oboustrané zrušení",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"Unilateral cancelation (bond at risk!)": "Unilateral cancelation (bond at risk!)",
|
||||
"#52": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
|
||||
"You asked for a collaborative cancellation": "Žádaš o oboustarné zrušení obchodu",
|
||||
@ -558,8 +560,6 @@
|
||||
"See Compatible Wallets": "Robrazit kompatibilní peněženky",
|
||||
"#55": "Phrases in components/TradeBox/index.tsx",
|
||||
"A contact method is required": "A contact method is required",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"The statement is too short. Make sure to be thorough.": "The statement is too short. Make sure to be thorough.",
|
||||
"#56": "Phrases in components/TradeBox/Dialogs/ConfirmCancel.tsx",
|
||||
"Confirm Cancel": "Potvrdit zrušení",
|
||||
|
@ -526,6 +526,8 @@
|
||||
"#51": "Phrases in components/TradeBox/CancelButton.tsx",
|
||||
"Cancel order": "Cancel order",
|
||||
"Collaborative Cancel": "Gemeinsamer Abbruch",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"Unilateral cancelation (bond at risk!)": "Unilateral cancelation (bond at risk!)",
|
||||
"#52": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
|
||||
"You asked for a collaborative cancellation": "Du hast um einen gemeinsamen Abbruch gebeten",
|
||||
@ -558,8 +560,6 @@
|
||||
"See Compatible Wallets": "Kompatible Wallets ansehen",
|
||||
"#55": "Phrases in components/TradeBox/index.tsx",
|
||||
"A contact method is required": "A contact method is required",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"The statement is too short. Make sure to be thorough.": "The statement is too short. Make sure to be thorough.",
|
||||
"#56": "Phrases in components/TradeBox/Dialogs/ConfirmCancel.tsx",
|
||||
"Confirm Cancel": "Abbruch bestätigen",
|
||||
|
@ -526,6 +526,8 @@
|
||||
"#51": "Phrases in components/TradeBox/CancelButton.tsx",
|
||||
"Cancel order": "Cancel order",
|
||||
"Collaborative Cancel": "Collaborative Cancel",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"Unilateral cancelation (bond at risk!)": "Unilateral cancelation (bond at risk!)",
|
||||
"#52": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
|
||||
"You asked for a collaborative cancellation": "You asked for a collaborative cancellation",
|
||||
@ -558,8 +560,6 @@
|
||||
"See Compatible Wallets": "See Compatible Wallets",
|
||||
"#55": "Phrases in components/TradeBox/index.tsx",
|
||||
"A contact method is required": "A contact method is required",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"The statement is too short. Make sure to be thorough.": "The statement is too short. Make sure to be thorough.",
|
||||
"#56": "Phrases in components/TradeBox/Dialogs/ConfirmCancel.tsx",
|
||||
"Confirm Cancel": "Confirm Cancel",
|
||||
|
@ -526,6 +526,8 @@
|
||||
"#51": "Phrases in components/TradeBox/CancelButton.tsx",
|
||||
"Cancel order": "Cancel order",
|
||||
"Collaborative Cancel": "Cancelación colaborativa",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"Unilateral cancelation (bond at risk!)": "Cancelación unilateral (¡Perderás el depósito!)",
|
||||
"#52": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
|
||||
"You asked for a collaborative cancellation": "Has solicitado la cancelación colaborativa",
|
||||
@ -558,8 +560,6 @@
|
||||
"See Compatible Wallets": "Ver carteras compatibles",
|
||||
"#55": "Phrases in components/TradeBox/index.tsx",
|
||||
"A contact method is required": "A contact method is required",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"The statement is too short. Make sure to be thorough.": "The statement is too short. Make sure to be thorough.",
|
||||
"#56": "Phrases in components/TradeBox/Dialogs/ConfirmCancel.tsx",
|
||||
"Confirm Cancel": "Confirmar cancelación",
|
||||
|
@ -526,6 +526,8 @@
|
||||
"#51": "Phrases in components/TradeBox/CancelButton.tsx",
|
||||
"Cancel order": "Cancel order",
|
||||
"Collaborative Cancel": "Lankidetza ezeztapena",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"Unilateral cancelation (bond at risk!)": "Unilateral cancelation (bond at risk!)",
|
||||
"#52": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
|
||||
"You asked for a collaborative cancellation": "Lankidetzaz ezeztatzeko eskaera egin duzu",
|
||||
@ -558,8 +560,6 @@
|
||||
"See Compatible Wallets": "Begiratu Kartera Bateragarriak",
|
||||
"#55": "Phrases in components/TradeBox/index.tsx",
|
||||
"A contact method is required": "A contact method is required",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"The statement is too short. Make sure to be thorough.": "The statement is too short. Make sure to be thorough.",
|
||||
"#56": "Phrases in components/TradeBox/Dialogs/ConfirmCancel.tsx",
|
||||
"Confirm Cancel": "Onartu ezeztapena",
|
||||
|
@ -526,6 +526,8 @@
|
||||
"#51": "Phrases in components/TradeBox/CancelButton.tsx",
|
||||
"Cancel order": "Cancel order",
|
||||
"Collaborative Cancel": "Annulation collaborative",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"Unilateral cancelation (bond at risk!)": "Annulation unilatérale (caution à risque !)",
|
||||
"#52": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
|
||||
"You asked for a collaborative cancellation": "Vous avez demandé une annulation collaborative",
|
||||
@ -558,8 +560,6 @@
|
||||
"See Compatible Wallets": "Voir Portefeuilles compatibles",
|
||||
"#55": "Phrases in components/TradeBox/index.tsx",
|
||||
"A contact method is required": "A contact method is required",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"The statement is too short. Make sure to be thorough.": "The statement is too short. Make sure to be thorough.",
|
||||
"#56": "Phrases in components/TradeBox/Dialogs/ConfirmCancel.tsx",
|
||||
"Confirm Cancel": "Confirmer l'annulation",
|
||||
|
@ -526,6 +526,8 @@
|
||||
"#51": "Phrases in components/TradeBox/CancelButton.tsx",
|
||||
"Cancel order": "Cancel order",
|
||||
"Collaborative Cancel": "Annullamento collaborativo",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"Unilateral cancelation (bond at risk!)": "Annullamento unilaterale (cauzione a rischio!)",
|
||||
"#52": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
|
||||
"You asked for a collaborative cancellation": "Hai richiesto per un annullamento collaborativo",
|
||||
@ -558,8 +560,6 @@
|
||||
"See Compatible Wallets": "Vedi wallet compatibili",
|
||||
"#55": "Phrases in components/TradeBox/index.tsx",
|
||||
"A contact method is required": "A contact method is required",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"The statement is too short. Make sure to be thorough.": "The statement is too short. Make sure to be thorough.",
|
||||
"#56": "Phrases in components/TradeBox/Dialogs/ConfirmCancel.tsx",
|
||||
"Confirm Cancel": "Conferma l'annullamento",
|
||||
|
@ -526,6 +526,8 @@
|
||||
"#51": "Phrases in components/TradeBox/CancelButton.tsx",
|
||||
"Cancel order": "Cancel order",
|
||||
"Collaborative Cancel": "共同キャンセル",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"Unilateral cancelation (bond at risk!)": "一方的なキャンセル(担保金が危険に!)",
|
||||
"#52": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
|
||||
"You asked for a collaborative cancellation": "あなたが共同的なキャンセルを求めています",
|
||||
@ -558,8 +560,6 @@
|
||||
"See Compatible Wallets": "互換性のあるウォレットを見る",
|
||||
"#55": "Phrases in components/TradeBox/index.tsx",
|
||||
"A contact method is required": "A contact method is required",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"The statement is too short. Make sure to be thorough.": "The statement is too short. Make sure to be thorough.",
|
||||
"#56": "Phrases in components/TradeBox/Dialogs/ConfirmCancel.tsx",
|
||||
"Confirm Cancel": "キャンセルを確認",
|
||||
|
@ -526,6 +526,8 @@
|
||||
"#51": "Phrases in components/TradeBox/CancelButton.tsx",
|
||||
"Cancel order": "Cancel order",
|
||||
"Collaborative Cancel": "Wspólna Anuluj",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"Unilateral cancelation (bond at risk!)": "Unilateral cancelation (bond at risk!)",
|
||||
"#52": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
|
||||
"You asked for a collaborative cancellation": "Poprosiłeś o wspólne anulowanie",
|
||||
@ -558,8 +560,6 @@
|
||||
"See Compatible Wallets": "See Compatible Wallets",
|
||||
"#55": "Phrases in components/TradeBox/index.tsx",
|
||||
"A contact method is required": "A contact method is required",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"The statement is too short. Make sure to be thorough.": "The statement is too short. Make sure to be thorough.",
|
||||
"#56": "Phrases in components/TradeBox/Dialogs/ConfirmCancel.tsx",
|
||||
"Confirm Cancel": "Potwierdź Anuluj",
|
||||
|
@ -526,6 +526,8 @@
|
||||
"#51": "Phrases in components/TradeBox/CancelButton.tsx",
|
||||
"Cancel order": "Cancel order",
|
||||
"Collaborative Cancel": "Cancelamento colaborativo",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"Unilateral cancelation (bond at risk!)": "Unilateral cancelation (bond at risk!)",
|
||||
"#52": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
|
||||
"You asked for a collaborative cancellation": "Você solicitou um cancelamento colaborativo",
|
||||
@ -558,8 +560,6 @@
|
||||
"See Compatible Wallets": "Ver Carteiras Compatíveis",
|
||||
"#55": "Phrases in components/TradeBox/index.tsx",
|
||||
"A contact method is required": "A contact method is required",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"The statement is too short. Make sure to be thorough.": "The statement is too short. Make sure to be thorough.",
|
||||
"#56": "Phrases in components/TradeBox/Dialogs/ConfirmCancel.tsx",
|
||||
"Confirm Cancel": "Confirmar cancelamento",
|
||||
|
@ -526,6 +526,8 @@
|
||||
"#51": "Phrases in components/TradeBox/CancelButton.tsx",
|
||||
"Cancel order": "Cancel order",
|
||||
"Collaborative Cancel": "Совместная отмена",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"Unilateral cancelation (bond at risk!)": "Одностороннее аннулирование (залог под угрозой!)",
|
||||
"#52": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
|
||||
"You asked for a collaborative cancellation": "Вы запросили совместную отмену",
|
||||
@ -558,8 +560,6 @@
|
||||
"See Compatible Wallets": "Смотреть Совместимые Кошельки",
|
||||
"#55": "Phrases in components/TradeBox/index.tsx",
|
||||
"A contact method is required": "A contact method is required",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"The statement is too short. Make sure to be thorough.": "The statement is too short. Make sure to be thorough.",
|
||||
"#56": "Phrases in components/TradeBox/Dialogs/ConfirmCancel.tsx",
|
||||
"Confirm Cancel": "Подтвердить отмену",
|
||||
|
@ -526,6 +526,8 @@
|
||||
"#51": "Phrases in components/TradeBox/CancelButton.tsx",
|
||||
"Cancel order": "Cancel order",
|
||||
"Collaborative Cancel": "Makulera kollaborativt",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"Unilateral cancelation (bond at risk!)": "Unilateral cancelation (bond at risk!)",
|
||||
"#52": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
|
||||
"You asked for a collaborative cancellation": "Du bad om att kollaborativt avsluta ordern",
|
||||
@ -558,8 +560,6 @@
|
||||
"See Compatible Wallets": "Se kompatibla wallets",
|
||||
"#55": "Phrases in components/TradeBox/index.tsx",
|
||||
"A contact method is required": "A contact method is required",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"The statement is too short. Make sure to be thorough.": "The statement is too short. Make sure to be thorough.",
|
||||
"#56": "Phrases in components/TradeBox/Dialogs/ConfirmCancel.tsx",
|
||||
"Confirm Cancel": "Bekräfta makulering",
|
||||
|
@ -526,6 +526,8 @@
|
||||
"#51": "Phrases in components/TradeBox/CancelButton.tsx",
|
||||
"Cancel order": "Cancel order",
|
||||
"Collaborative Cancel": "Kufuta kwa Ushirikiano",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"Unilateral cancelation (bond at risk!)": "Kufuta kwa upande mmoja (dhamana iko hatarini!)",
|
||||
"#52": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
|
||||
"You asked for a collaborative cancellation": "Uliomba kughairi kwa ushirikiano",
|
||||
@ -558,8 +560,6 @@
|
||||
"See Compatible Wallets": "Tazama Wallets Zinazoendana",
|
||||
"#55": "Phrases in components/TradeBox/index.tsx",
|
||||
"A contact method is required": "A contact method is required",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"The statement is too short. Make sure to be thorough.": "The statement is too short. Make sure to be thorough.",
|
||||
"#56": "Phrases in components/TradeBox/Dialogs/ConfirmCancel.tsx",
|
||||
"Confirm Cancel": "Thibitisha Kughairi",
|
||||
|
@ -526,6 +526,8 @@
|
||||
"#51": "Phrases in components/TradeBox/CancelButton.tsx",
|
||||
"Cancel order": "Cancel order",
|
||||
"Collaborative Cancel": "ร่วมกันยกเลิกการซื้อขาย",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"Unilateral cancelation (bond at risk!)": "Unilateral cancelation (bond at risk!)",
|
||||
"#52": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
|
||||
"You asked for a collaborative cancellation": "คุณขอให้อีกฝ่ายร่วมกันยกเลิกการซื้อขาย",
|
||||
@ -558,8 +560,6 @@
|
||||
"See Compatible Wallets": "ดูกระเป๋าบิทคอยน์ (Wallets) ที่สามารถใช้งานได้",
|
||||
"#55": "Phrases in components/TradeBox/index.tsx",
|
||||
"A contact method is required": "A contact method is required",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"The statement is too short. Make sure to be thorough.": "The statement is too short. Make sure to be thorough.",
|
||||
"#56": "Phrases in components/TradeBox/Dialogs/ConfirmCancel.tsx",
|
||||
"Confirm Cancel": "ยืนยันยกเลิก",
|
||||
|
@ -526,6 +526,8 @@
|
||||
"#51": "Phrases in components/TradeBox/CancelButton.tsx",
|
||||
"Cancel order": "Cancel order",
|
||||
"Collaborative Cancel": "合作取消",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"Unilateral cancelation (bond at risk!)": "单方面取消 (保证金风险!)",
|
||||
"#52": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
|
||||
"You asked for a collaborative cancellation": "你要求了合作取消",
|
||||
@ -558,8 +560,6 @@
|
||||
"See Compatible Wallets": "查看兼容钱包列表",
|
||||
"#55": "Phrases in components/TradeBox/index.tsx",
|
||||
"A contact method is required": "A contact method is required",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"The statement is too short. Make sure to be thorough.": "The statement is too short. Make sure to be thorough.",
|
||||
"#56": "Phrases in components/TradeBox/Dialogs/ConfirmCancel.tsx",
|
||||
"Confirm Cancel": "确认取消",
|
||||
|
@ -526,6 +526,8 @@
|
||||
"#51": "Phrases in components/TradeBox/CancelButton.tsx",
|
||||
"Cancel order": "Cancel order",
|
||||
"Collaborative Cancel": "合作取消",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"Unilateral cancelation (bond at risk!)": "單方面取消(保證金風險!)",
|
||||
"#52": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
|
||||
"You asked for a collaborative cancellation": "你要求了合作取消",
|
||||
@ -558,8 +560,6 @@
|
||||
"See Compatible Wallets": "查看兼容錢包列表",
|
||||
"#55": "Phrases in components/TradeBox/index.tsx",
|
||||
"A contact method is required": "A contact method is required",
|
||||
"Copy URL": "Copy URL",
|
||||
"Copy order URL": "Copy order URL",
|
||||
"The statement is too short. Make sure to be thorough.": "The statement is too short. Make sure to be thorough.",
|
||||
"#56": "Phrases in components/TradeBox/Dialogs/ConfirmCancel.tsx",
|
||||
"Confirm Cancel": "確認取消",
|
||||
|
Reference in New Issue
Block a user