mirror of
https://github.com/RoboSats/robosats.git
synced 2025-07-18 08:43:14 +00:00
Fix Table
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
import React, { useContext, useState } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { Button, Grid, ButtonGroup } from '@mui/material';
|
||||
import { Button, Grid, ButtonGroup, useTheme } from '@mui/material';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import DepthChart from '../../components/Charts/DepthChart';
|
||||
import BookTable from '../../components/BookTable';
|
||||
@ -17,16 +17,18 @@ import { type PublicOrder } from '../../models';
|
||||
const BookPage = (): React.JSX.Element => {
|
||||
const { windowSize } = useContext<UseAppStoreType>(AppContext);
|
||||
const { federation } = useContext<UseFederationStoreType>(FederationContext);
|
||||
const theme = useTheme();
|
||||
const { t } = useTranslation();
|
||||
const navigate = useNavigate();
|
||||
const [view, setView] = useState<'list' | 'depth' | 'map'>('list');
|
||||
const [openVisitThirdParty, setOpenVisitThirdParty] = useState<boolean>(false);
|
||||
const [thirdPartyOrder, setThirdPartyOrder] = useState<PublicOrder>();
|
||||
|
||||
const doubleView = windowSize.width > 115;
|
||||
const width = windowSize.width * 0.9;
|
||||
const maxBookTableWidth = 85;
|
||||
const chartWidthEm = width - maxBookTableWidth;
|
||||
const doubleView = windowSize.width > 100;
|
||||
const width = windowSize.width * 0.85;
|
||||
const maxBookTableWidth = width * 0.7;
|
||||
const chartWidthEm = width * 0.25;
|
||||
const fontSize = theme.typography.fontSize;
|
||||
|
||||
const onOrderClicked = function (id: number, shortAlias: string): void {
|
||||
const thirdParty = thirdParties[shortAlias];
|
||||
@ -51,6 +53,8 @@ const BookPage = (): React.JSX.Element => {
|
||||
) : (
|
||||
<>
|
||||
<Button
|
||||
color={view === 'list' ? 'primary' : 'inherit'}
|
||||
variant='contained'
|
||||
onClick={() => {
|
||||
setView('list');
|
||||
}}
|
||||
@ -58,6 +62,8 @@ const BookPage = (): React.JSX.Element => {
|
||||
<FormatListBulleted /> {t('List')}
|
||||
</Button>
|
||||
<Button
|
||||
color={view === 'depth' ? 'primary' : 'inherit'}
|
||||
variant='contained'
|
||||
onClick={() => {
|
||||
setView('depth');
|
||||
}}
|
||||
@ -65,6 +71,8 @@ const BookPage = (): React.JSX.Element => {
|
||||
<BarChart /> {t('Chart')}
|
||||
</Button>
|
||||
<Button
|
||||
color={view === 'map' ? 'primary' : 'inherit'}
|
||||
variant='contained'
|
||||
onClick={() => {
|
||||
setView('map');
|
||||
}}
|
||||
@ -94,12 +102,12 @@ const BookPage = (): React.JSX.Element => {
|
||||
justifyContent='center'
|
||||
spacing={1}
|
||||
direction='row'
|
||||
style={{ width: `${windowSize.width}em`, height: `${windowSize.height * 0.875}em` }}
|
||||
style={{ width: `${width}em`, height: `${windowSize.height * 0.875}em` }}
|
||||
>
|
||||
<Grid>
|
||||
<BookTable
|
||||
maxWidth={maxBookTableWidth} // EM units
|
||||
maxHeight={windowSize.height * 0.8} // EM units
|
||||
maxHeight={windowSize.height * 0.78} // EM units
|
||||
fullWidth={windowSize.width} // EM units
|
||||
fullHeight={windowSize.height} // EM units
|
||||
defaultFullscreen={false}
|
||||
@ -107,17 +115,17 @@ const BookPage = (): React.JSX.Element => {
|
||||
/>
|
||||
</Grid>
|
||||
<Grid>
|
||||
<Grid item style={{ marginBottom: 10 }}>
|
||||
<Grid item style={{ marginBottom: 8 }}>
|
||||
<DepthChart
|
||||
maxWidth={chartWidthEm} // EM units
|
||||
maxHeight={(windowSize.height * 0.82) / 2} // EM units
|
||||
maxHeight={(windowSize.height * 0.78) / 2 - 5 / fontSize} // EM units
|
||||
onOrderClicked={onOrderClicked}
|
||||
/>
|
||||
</Grid>
|
||||
<Grid item>
|
||||
<MapChart
|
||||
maxWidth={chartWidthEm} // EM units
|
||||
maxHeight={(windowSize.height * 0.82) / 2} // EM units
|
||||
maxHeight={(windowSize.height * 0.78) / 2 - 4 / fontSize} // EM units
|
||||
onOrderClicked={onOrderClicked}
|
||||
/>
|
||||
</Grid>
|
||||
@ -126,19 +134,19 @@ const BookPage = (): React.JSX.Element => {
|
||||
) : view === 'depth' ? (
|
||||
<DepthChart
|
||||
maxWidth={windowSize.width * 0.8} // EM units
|
||||
maxHeight={windowSize.height * 0.835} // EM units
|
||||
maxHeight={windowSize.height * 0.75} // EM units
|
||||
onOrderClicked={onOrderClicked}
|
||||
/>
|
||||
) : view === 'map' ? (
|
||||
<MapChart
|
||||
maxWidth={windowSize.width * 0.8} // EM units
|
||||
maxHeight={windowSize.height * 0.82} // EM units
|
||||
maxWidth={windowSize.width * 0.8} // M units
|
||||
maxHeight={windowSize.height * 0.75} // EM units
|
||||
onOrderClicked={onOrderClicked}
|
||||
/>
|
||||
) : (
|
||||
<BookTable
|
||||
maxWidth={windowSize.width * 0.97} // EM units
|
||||
maxHeight={windowSize.height * 0.825 - 5} // EM units
|
||||
maxWidth={windowSize.width * 0.8} // EM units
|
||||
maxHeight={windowSize.height * 0.75} // EM units
|
||||
fullWidth={windowSize.width} // EM units
|
||||
fullHeight={windowSize.height} // EM units
|
||||
defaultFullscreen={false}
|
||||
|
@ -1,6 +1,6 @@
|
||||
import React, { useContext, useEffect, useMemo, useState } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { Typography, Grid, Select, Divider, MenuItem, Box } from '@mui/material';
|
||||
import { Typography, Grid, Select, MenuItem, Box } from '@mui/material';
|
||||
import currencyDict from '../../../static/assets/currencies.json';
|
||||
import { useTheme } from '@mui/system';
|
||||
import { AutocompletePayments } from '../MakerForm';
|
||||
@ -118,8 +118,8 @@ const BookControl = ({
|
||||
alignItems='flex-start'
|
||||
direction='row'
|
||||
justifyContent='center'
|
||||
spacing={0.5}
|
||||
sx={{ height: '3.4em', padding: '0.2em' }}
|
||||
spacing={0.8}
|
||||
sx={{ height: '3.4em', padding: '0.2em', alignContent: 'center' }}
|
||||
>
|
||||
{width > large ? (
|
||||
<Grid item sx={{ position: 'relative', top: '0.5em' }}>
|
||||
@ -132,7 +132,7 @@ const BookControl = ({
|
||||
<Grid item>
|
||||
<Select
|
||||
sx={{
|
||||
height: '2.3em',
|
||||
height: '2.6em',
|
||||
border: '0.5px solid',
|
||||
backgroundColor: theme.palette.background.paper,
|
||||
borderRadius: '4px',
|
||||
@ -207,7 +207,7 @@ const BookControl = ({
|
||||
<Select
|
||||
autoWidth
|
||||
sx={{
|
||||
height: '2.3em',
|
||||
height: '2.6em',
|
||||
border: '0.5px solid',
|
||||
backgroundColor: theme.palette.background.paper,
|
||||
borderRadius: '4px',
|
||||
@ -288,7 +288,7 @@ const BookControl = ({
|
||||
<Grid item>
|
||||
<Select
|
||||
sx={{
|
||||
height: '2.3em',
|
||||
height: '2.6em',
|
||||
border: '0.5px solid',
|
||||
backgroundColor: theme.palette.background.paper,
|
||||
borderRadius: '4px',
|
||||
@ -374,7 +374,7 @@ const BookControl = ({
|
||||
<Select
|
||||
autoWidth
|
||||
sx={{
|
||||
height: '2.3em',
|
||||
height: '2.6em',
|
||||
border: '0.5px solid',
|
||||
backgroundColor: theme.palette.background.paper,
|
||||
borderRadius: '4px',
|
||||
@ -425,7 +425,6 @@ const BookControl = ({
|
||||
</Select>
|
||||
</Grid>
|
||||
</Grid>
|
||||
<Divider />
|
||||
</Box>
|
||||
);
|
||||
};
|
||||
|
@ -11,7 +11,6 @@ import {
|
||||
ListItemAvatar,
|
||||
useTheme,
|
||||
CircularProgress,
|
||||
LinearProgress,
|
||||
IconButton,
|
||||
Tooltip,
|
||||
styled,
|
||||
@ -68,7 +67,6 @@ interface BookTableProps {
|
||||
fullHeight?: number;
|
||||
elevation?: number;
|
||||
defaultFullscreen?: boolean;
|
||||
fillContainer?: boolean;
|
||||
showControls?: boolean;
|
||||
showFooter?: boolean;
|
||||
showNoResults?: boolean;
|
||||
@ -83,7 +81,6 @@ const BookTable = ({
|
||||
fullHeight = 70,
|
||||
defaultFullscreen = false,
|
||||
elevation = 6,
|
||||
fillContainer = false,
|
||||
showControls = true,
|
||||
showFooter = true,
|
||||
showNoResults = true,
|
||||
@ -98,37 +95,35 @@ const BookTable = ({
|
||||
|
||||
const [paginationModel, setPaginationModel] = useState<GridPaginationModel>({
|
||||
pageSize: 0,
|
||||
page: 1,
|
||||
page: 0,
|
||||
});
|
||||
const [columnVisibilityModel, setColumnVisibilityModel] = useState<GridColumnVisibilityModel>({});
|
||||
const [fullscreen, setFullscreen] = useState(defaultFullscreen);
|
||||
const [paymentMethods, setPaymentMethods] = useState<string[]>([]);
|
||||
const [page, setPage] = useState<number>(0);
|
||||
|
||||
// all sizes in 'em'
|
||||
const [fontSize, defaultPageSize, height] = useMemo(() => {
|
||||
const fontSize = theme.typography.fontSize;
|
||||
const verticalHeightFrame = 3.25 + (showControls ? 3.7 : 0.35) + (showFooter ? 2.35 : 0);
|
||||
const verticalHeightRow = 3.25;
|
||||
const verticalHeightHeader = 55 / fontSize;
|
||||
const verticalHeightRow = 55 / fontSize;
|
||||
const height = fullscreen ? fullHeight : maxHeight;
|
||||
const defaultPageSize = Math.max(
|
||||
Math.floor(
|
||||
((fullscreen ? fullHeight * 0.9 : maxHeight) - verticalHeightFrame) / verticalHeightRow,
|
||||
),
|
||||
Math.floor((height - verticalHeightHeader) / verticalHeightRow),
|
||||
1,
|
||||
);
|
||||
const height = defaultPageSize * verticalHeightRow + verticalHeightFrame;
|
||||
return [fontSize, defaultPageSize, height];
|
||||
}, [theme.typography.fontSize, maxHeight, fullscreen, fullHeight, showControls, showFooter]);
|
||||
|
||||
useEffect(() => {
|
||||
setPaginationModel({
|
||||
pageSize: defaultPageSize,
|
||||
page: paginationModel.page ?? 1,
|
||||
page: 0,
|
||||
});
|
||||
}, [defaultPageSize]);
|
||||
|
||||
const localeText = useMemo(() => {
|
||||
return {
|
||||
MuiTablePagination: { labelRowsPerPage: t('Orders per page:') },
|
||||
noResultsOverlayLabel: t('No results found.'),
|
||||
errorOverlayDefaultLabel: t('An error occurred.'),
|
||||
toolbarColumns: t('Columns'),
|
||||
@ -393,7 +388,7 @@ const BookTable = ({
|
||||
<div style={{ position: 'relative', top: '0.4em' }}>
|
||||
<PaymentStringAsIcons
|
||||
othersText={t('Others')}
|
||||
verbose={true}
|
||||
verbose={false}
|
||||
size={1.7 * fontSize}
|
||||
text={params.row.payment_method}
|
||||
/>
|
||||
@ -427,6 +422,7 @@ const BookTable = ({
|
||||
<PaymentStringAsIcons
|
||||
othersText={t('Others')}
|
||||
size={1.3 * fontSize}
|
||||
verbose={false}
|
||||
text={params.row.payment_method}
|
||||
/>
|
||||
</div>
|
||||
@ -843,7 +839,7 @@ const BookTable = ({
|
||||
});
|
||||
|
||||
setColumnVisibilityModel(columnVisibilityModel);
|
||||
return { columns, width: width * 0.875 + 0.15 };
|
||||
return { columns, width: maxWidth };
|
||||
};
|
||||
|
||||
const { columns, width } = useMemo(() => {
|
||||
@ -915,9 +911,7 @@ const BookTable = ({
|
||||
};
|
||||
|
||||
const gridComponents = useMemo(() => {
|
||||
const components: GridSlotsComponent = {
|
||||
loadingOverlay: LinearProgress,
|
||||
};
|
||||
const components: GridSlotsComponent = {};
|
||||
|
||||
if (showNoResults) {
|
||||
components.noResultsOverlay = NoResultsOverlay;
|
||||
@ -926,11 +920,8 @@ const BookTable = ({
|
||||
if (showFooter) {
|
||||
components.footer = Footer;
|
||||
}
|
||||
if (showControls) {
|
||||
components.toolbar = BookControl;
|
||||
}
|
||||
return components;
|
||||
}, [showNoResults, showFooter, showControls, fullscreen]);
|
||||
}, [showNoResults, showFooter, fullscreen]);
|
||||
|
||||
const filteredOrders = useMemo(() => {
|
||||
return showControls
|
||||
@ -946,17 +937,25 @@ const BookTable = ({
|
||||
return (
|
||||
<Paper
|
||||
elevation={elevation}
|
||||
style={
|
||||
fillContainer
|
||||
? { width: '100%', height: '100%' }
|
||||
: { width: `${width}em`, height: `${height}em`, overflow: 'auto' }
|
||||
}
|
||||
style={{
|
||||
width: `${width}em`,
|
||||
height: `${height}em`,
|
||||
overflow: 'auto',
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
}}
|
||||
>
|
||||
{showControls && (
|
||||
<BookControl
|
||||
width={width}
|
||||
paymentMethod={paymentMethods}
|
||||
setPaymentMethods={setPaymentMethods}
|
||||
/>
|
||||
)}
|
||||
<ClickThroughDataGrid
|
||||
autoHeight
|
||||
sx={headerStyleFix}
|
||||
localeText={localeText}
|
||||
rowHeight={3.714 * theme.typography.fontSize}
|
||||
headerHeight={3.25 * theme.typography.fontSize}
|
||||
rows={filteredOrders}
|
||||
getRowId={(params: PublicOrder) => `${String(params.coordinatorShortAlias)}/${params.id}`}
|
||||
loading={federation.loading}
|
||||
@ -965,19 +964,10 @@ const BookTable = ({
|
||||
onColumnVisibilityModelChange={(newColumnVisibilityModel) => {
|
||||
setColumnVisibilityModel(newColumnVisibilityModel);
|
||||
}}
|
||||
page={page}
|
||||
onPageChange={setPage}
|
||||
hideFooter={!showFooter}
|
||||
slots={gridComponents}
|
||||
slotProps={{
|
||||
toolbar: {
|
||||
width,
|
||||
paymentMethod: paymentMethods,
|
||||
setPaymentMethods,
|
||||
},
|
||||
loadingOverlay: {
|
||||
variant: 'indeterminate',
|
||||
value: federation.loading ? 0 : 100,
|
||||
},
|
||||
}}
|
||||
paginationModel={paginationModel}
|
||||
pageSizeOptions={width < 22 ? [] : [0, defaultPageSize, defaultPageSize * 2, 50, 100]}
|
||||
onPaginationModelChange={(newPaginationModel) => {
|
||||
@ -989,8 +979,24 @@ const BookTable = ({
|
||||
} else {
|
||||
return (
|
||||
<Dialog open={fullscreen} fullScreen={true}>
|
||||
<Paper style={{ width: '100%', height: '100%', overflow: 'auto' }}>
|
||||
<Paper
|
||||
style={{
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
overflow: 'auto',
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
}}
|
||||
>
|
||||
{showControls && (
|
||||
<BookControl
|
||||
width={width}
|
||||
paymentMethod={paymentMethods}
|
||||
setPaymentMethods={setPaymentMethods}
|
||||
/>
|
||||
)}
|
||||
<ClickThroughDataGrid
|
||||
autoHeight
|
||||
sx={headerStyleFix}
|
||||
localeText={localeText}
|
||||
rowHeight={3.714 * theme.typography.fontSize}
|
||||
@ -1004,13 +1010,8 @@ const BookTable = ({
|
||||
onColumnVisibilityModelChange={(newColumnVisibilityModel) => {
|
||||
setColumnVisibilityModel(newColumnVisibilityModel);
|
||||
}}
|
||||
slotProps={{
|
||||
toolbar: {
|
||||
width,
|
||||
paymentMethod: paymentMethods,
|
||||
setPaymentMethods,
|
||||
},
|
||||
}}
|
||||
page={page}
|
||||
onPageChange={setPage}
|
||||
paginationModel={paginationModel}
|
||||
pageSizeOptions={width < 22 ? [] : [0, defaultPageSize, defaultPageSize * 2, 50, 100]}
|
||||
onPaginationModelChange={(newPaginationModel) => {
|
||||
|
@ -34,7 +34,6 @@ import {
|
||||
interface DepthChartProps {
|
||||
maxWidth: number;
|
||||
maxHeight: number;
|
||||
fillContainer?: boolean;
|
||||
elevation?: number;
|
||||
onOrderClicked?: (id: number, shortAlias: string) => void;
|
||||
}
|
||||
@ -42,7 +41,6 @@ interface DepthChartProps {
|
||||
const DepthChart: React.FC<DepthChartProps> = ({
|
||||
maxWidth,
|
||||
maxHeight,
|
||||
fillContainer = false,
|
||||
elevation = 6,
|
||||
onOrderClicked = () => null,
|
||||
}) => {
|
||||
@ -276,26 +274,27 @@ const DepthChart: React.FC<DepthChartProps> = ({
|
||||
return (
|
||||
<Paper
|
||||
elevation={elevation}
|
||||
style={
|
||||
fillContainer
|
||||
? { width: '100%', maxHeight: '100%', height: '100%' }
|
||||
: { width: `${width}em`, maxHeight: `${height}em` }
|
||||
}
|
||||
style={{
|
||||
width: `${width}em`,
|
||||
height: `${height}em`,
|
||||
overflow: 'auto',
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
}}
|
||||
>
|
||||
<Paper variant='outlined' style={{ width: '100%', height: '100%' }}>
|
||||
<Paper variant='outlined' style={{ width: '100%', height: `100%` }}>
|
||||
{center === undefined || enrichedOrders.length < 1 ? (
|
||||
<div
|
||||
style={{
|
||||
display: 'flex',
|
||||
justifyContent: 'center',
|
||||
paddingTop: `${(height - 3) / 2 - 1}em`,
|
||||
height: `${height}em`,
|
||||
paddingTop: `${height / 2}em`,
|
||||
}}
|
||||
>
|
||||
<CircularProgress />
|
||||
</div>
|
||||
) : (
|
||||
<Grid container>
|
||||
<Grid container alignItems='center' direction='column'>
|
||||
<Grid
|
||||
container
|
||||
direction='row'
|
||||
|
@ -22,7 +22,6 @@ import {
|
||||
interface MapChartProps {
|
||||
maxWidth: number;
|
||||
maxHeight: number;
|
||||
fillContainer?: boolean;
|
||||
elevation?: number;
|
||||
onOrderClicked?: (id: number, shortAlias: string) => void;
|
||||
}
|
||||
@ -30,7 +29,6 @@ interface MapChartProps {
|
||||
const MapChart: React.FC<MapChartProps> = ({
|
||||
maxWidth,
|
||||
maxHeight,
|
||||
fillContainer = false,
|
||||
elevation = 6,
|
||||
onOrderClicked = () => {},
|
||||
}) => {
|
||||
@ -46,11 +44,13 @@ const MapChart: React.FC<MapChartProps> = ({
|
||||
return (
|
||||
<Paper
|
||||
elevation={elevation}
|
||||
style={
|
||||
fillContainer
|
||||
? { width: '100%', maxHeight: '100%', height: '100%' }
|
||||
: { width: `${width}em`, maxHeight: `${height}em` }
|
||||
}
|
||||
style={{
|
||||
width: `${width}em`,
|
||||
height: `${height}em`,
|
||||
overflow: 'auto',
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
}}
|
||||
>
|
||||
<Dialog
|
||||
open={openWarningDialog}
|
||||
@ -130,7 +130,7 @@ const MapChart: React.FC<MapChartProps> = ({
|
||||
</div>
|
||||
</Tooltip>
|
||||
</Grid>
|
||||
<div style={{ height: `${height * 0.825}em` }}>
|
||||
<div style={{ height: `${height - 3.2}em` }}>
|
||||
<Map
|
||||
useTiles={useTiles}
|
||||
orders={Object.values(federation.book)}
|
||||
|
@ -79,7 +79,6 @@ const FederationTable = ({
|
||||
};
|
||||
|
||||
const localeText = {
|
||||
MuiTablePagination: { labelRowsPerPage: t('Coordinators per page:') },
|
||||
noResultsOverlayLabel: t('No coordinators found.'),
|
||||
};
|
||||
|
||||
|
@ -27,7 +27,6 @@ const BookWidget = React.forwardRef(function Component({
|
||||
<Paper elevation={3} style={{ width: '100%', height: '100%' }}>
|
||||
<BookTable
|
||||
elevation={0}
|
||||
fillContainer={true}
|
||||
maxWidth={layout.w * gridCellSize} // EM units
|
||||
maxHeight={layout.h * gridCellSize} // EM units
|
||||
fullWidth={windowSize.width} // EM units
|
||||
|
@ -29,7 +29,6 @@ const DepthChartWidget = React.forwardRef(function Component({
|
||||
elevation={0}
|
||||
maxWidth={layout.w * gridCellSize} // EM units
|
||||
maxHeight={layout.h * gridCellSize} // EM units
|
||||
fillContainer={true}
|
||||
/>
|
||||
</Paper>
|
||||
);
|
||||
|
@ -119,7 +119,6 @@
|
||||
"No results found.": "No s'han trobat resultats.",
|
||||
"Operator": "Operador",
|
||||
"Or": "O",
|
||||
"Orders per page:": "Ordres per vista:",
|
||||
"Others": "Altres",
|
||||
"Pay": "Pagar",
|
||||
"Payment Method": "Mètode de pagament",
|
||||
@ -345,7 +344,6 @@
|
||||
"I understand": "Ho entenc",
|
||||
"Warning": "Avís",
|
||||
"#36": "Phrases in components/FederationTable/index.tsx",
|
||||
"Coordinators per page:": "Coordinadors per pàgina:",
|
||||
"Enabled": "Habilitat",
|
||||
"No coordinators found.": "No s'han trobat coordinadors.",
|
||||
"Rating": "Rating",
|
||||
|
@ -119,7 +119,6 @@
|
||||
"No results found.": "Nebyly nalezeny žádné výsledky.",
|
||||
"Operator": "Operátor",
|
||||
"Or": "Nebo",
|
||||
"Orders per page:": "Nabídky na stránku:",
|
||||
"Others": "Ostatní",
|
||||
"Pay": "Platba",
|
||||
"Payment Method": "Platební metoda",
|
||||
@ -345,7 +344,6 @@
|
||||
"I understand": "I understand",
|
||||
"Warning": "Warning",
|
||||
"#36": "Phrases in components/FederationTable/index.tsx",
|
||||
"Coordinators per page:": "Coordinators per page:",
|
||||
"Enabled": "Enabled",
|
||||
"No coordinators found.": "No coordinators found.",
|
||||
"Rating": "Rating",
|
||||
|
@ -119,7 +119,6 @@
|
||||
"No results found.": "No results found.",
|
||||
"Operator": "Operator",
|
||||
"Or": "Or",
|
||||
"Orders per page:": "Orders per page:",
|
||||
"Others": "Weitere",
|
||||
"Pay": "Bezahlung",
|
||||
"Payment Method": "Zahlungsweise",
|
||||
@ -345,7 +344,6 @@
|
||||
"I understand": "I understand",
|
||||
"Warning": "Warning",
|
||||
"#36": "Phrases in components/FederationTable/index.tsx",
|
||||
"Coordinators per page:": "Coordinators per page:",
|
||||
"Enabled": "Enabled",
|
||||
"No coordinators found.": "No coordinators found.",
|
||||
"Rating": "Rating",
|
||||
|
@ -119,7 +119,6 @@
|
||||
"No results found.": "No results found.",
|
||||
"Operator": "Operator",
|
||||
"Or": "Or",
|
||||
"Orders per page:": "Orders per page:",
|
||||
"Others": "Others",
|
||||
"Pay": "Pay",
|
||||
"Payment Method": "Payment Method",
|
||||
@ -345,7 +344,6 @@
|
||||
"I understand": "I understand",
|
||||
"Warning": "Warning",
|
||||
"#36": "Phrases in components/FederationTable/index.tsx",
|
||||
"Coordinators per page:": "Coordinators per page:",
|
||||
"Enabled": "Enabled",
|
||||
"No coordinators found.": "No coordinators found.",
|
||||
"Rating": "Rating",
|
||||
|
@ -119,7 +119,6 @@
|
||||
"No results found.": "No se han encontrado resultados.",
|
||||
"Operator": "Operador",
|
||||
"Or": "O",
|
||||
"Orders per page:": "Órdenes por página:",
|
||||
"Others": "Otros",
|
||||
"Pay": "Pagar",
|
||||
"Payment Method": "Método de pago",
|
||||
@ -345,7 +344,6 @@
|
||||
"I understand": "I understand",
|
||||
"Warning": "Warning",
|
||||
"#36": "Phrases in components/FederationTable/index.tsx",
|
||||
"Coordinators per page:": "Coordinators per page:",
|
||||
"Enabled": "Enabled",
|
||||
"No coordinators found.": "No coordinators found.",
|
||||
"Rating": "Rating",
|
||||
|
@ -119,7 +119,6 @@
|
||||
"No results found.": "Ez da emaitzarik aurkitu.",
|
||||
"Operator": "Operadore",
|
||||
"Or": "Edo",
|
||||
"Orders per page:": "Orrialde bakoitzeko eskaerak:",
|
||||
"Others": "Besteak",
|
||||
"Pay": "Ordaindu",
|
||||
"Payment Method": "Ordainketa Modua",
|
||||
@ -345,7 +344,6 @@
|
||||
"I understand": "I understand",
|
||||
"Warning": "Warning",
|
||||
"#36": "Phrases in components/FederationTable/index.tsx",
|
||||
"Coordinators per page:": "Coordinators per page:",
|
||||
"Enabled": "Enabled",
|
||||
"No coordinators found.": "No coordinators found.",
|
||||
"Rating": "Rating",
|
||||
|
@ -119,7 +119,6 @@
|
||||
"No results found.": "No results found.",
|
||||
"Operator": "Opérateur",
|
||||
"Or": "Ou",
|
||||
"Orders per page:": "Ordres par page :",
|
||||
"Others": "Autres",
|
||||
"Pay": "Payer",
|
||||
"Payment Method": "Mode de paiement",
|
||||
@ -345,7 +344,6 @@
|
||||
"I understand": "I understand",
|
||||
"Warning": "Warning",
|
||||
"#36": "Phrases in components/FederationTable/index.tsx",
|
||||
"Coordinators per page:": "Coordinators per page:",
|
||||
"Enabled": "Enabled",
|
||||
"No coordinators found.": "No coordinators found.",
|
||||
"Rating": "Rating",
|
||||
|
@ -119,7 +119,6 @@
|
||||
"No results found.": "Nessun risultato trovato.",
|
||||
"Operator": "Operatore",
|
||||
"Or": "E",
|
||||
"Orders per page:": "Ordini per pagina:",
|
||||
"Others": "Altro",
|
||||
"Pay": "Paga",
|
||||
"Payment Method": "Metodo di pagamento",
|
||||
@ -345,7 +344,6 @@
|
||||
"I understand": "I understand",
|
||||
"Warning": "Warning",
|
||||
"#36": "Phrases in components/FederationTable/index.tsx",
|
||||
"Coordinators per page:": "Coordinators per page:",
|
||||
"Enabled": "Enabled",
|
||||
"No coordinators found.": "No coordinators found.",
|
||||
"Rating": "Rating",
|
||||
|
@ -119,7 +119,6 @@
|
||||
"No results found.": "結果が見つかりません。",
|
||||
"Operator": "オペレーター",
|
||||
"Or": "または",
|
||||
"Orders per page:": "ページあたりの注文数:",
|
||||
"Others": "その他",
|
||||
"Pay": "支払う",
|
||||
"Payment Method": "支払い方法",
|
||||
@ -345,7 +344,6 @@
|
||||
"I understand": "I understand",
|
||||
"Warning": "Warning",
|
||||
"#36": "Phrases in components/FederationTable/index.tsx",
|
||||
"Coordinators per page:": "Coordinators per page:",
|
||||
"Enabled": "Enabled",
|
||||
"No coordinators found.": "No coordinators found.",
|
||||
"Rating": "Rating",
|
||||
|
@ -119,7 +119,6 @@
|
||||
"No results found.": "No results found.",
|
||||
"Operator": "Operator",
|
||||
"Or": "Or",
|
||||
"Orders per page:": "Orders per page:",
|
||||
"Others": "Inni",
|
||||
"Pay": "Płacić",
|
||||
"Payment Method": "Metoda płatności",
|
||||
@ -345,7 +344,6 @@
|
||||
"I understand": "I understand",
|
||||
"Warning": "Warning",
|
||||
"#36": "Phrases in components/FederationTable/index.tsx",
|
||||
"Coordinators per page:": "Coordinators per page:",
|
||||
"Enabled": "Enabled",
|
||||
"No coordinators found.": "No coordinators found.",
|
||||
"Rating": "Rating",
|
||||
|
@ -119,7 +119,6 @@
|
||||
"No results found.": "Nenhum resultado encontrado.",
|
||||
"Operator": "Operator",
|
||||
"Or": "Ou",
|
||||
"Orders per page:": "Ordens por página:",
|
||||
"Others": "Outros",
|
||||
"Pay": "Pagar",
|
||||
"Payment Method": "método de pagamento",
|
||||
@ -345,7 +344,6 @@
|
||||
"I understand": "I understand",
|
||||
"Warning": "Warning",
|
||||
"#36": "Phrases in components/FederationTable/index.tsx",
|
||||
"Coordinators per page:": "Coordinators per page:",
|
||||
"Enabled": "Enabled",
|
||||
"No coordinators found.": "No coordinators found.",
|
||||
"Rating": "Rating",
|
||||
|
@ -119,7 +119,6 @@
|
||||
"No results found.": "Результаты не найдены.",
|
||||
"Operator": "Оператор",
|
||||
"Or": "Или",
|
||||
"Orders per page:": "Заказов на страницу:",
|
||||
"Others": "Другие",
|
||||
"Pay": "Платить",
|
||||
"Payment Method": "Метод оплаты",
|
||||
@ -345,7 +344,6 @@
|
||||
"I understand": "I understand",
|
||||
"Warning": "Warning",
|
||||
"#36": "Phrases in components/FederationTable/index.tsx",
|
||||
"Coordinators per page:": "Coordinators per page:",
|
||||
"Enabled": "Enabled",
|
||||
"No coordinators found.": "No coordinators found.",
|
||||
"Rating": "Rating",
|
||||
|
@ -119,7 +119,6 @@
|
||||
"No results found.": "No results found.",
|
||||
"Operator": "Operator",
|
||||
"Or": "Or",
|
||||
"Orders per page:": "Orders per page:",
|
||||
"Others": "Andra",
|
||||
"Pay": "Betala",
|
||||
"Payment Method": "Betalningsmetod",
|
||||
@ -345,7 +344,6 @@
|
||||
"I understand": "I understand",
|
||||
"Warning": "Warning",
|
||||
"#36": "Phrases in components/FederationTable/index.tsx",
|
||||
"Coordinators per page:": "Coordinators per page:",
|
||||
"Enabled": "Enabled",
|
||||
"No coordinators found.": "No coordinators found.",
|
||||
"Rating": "Rating",
|
||||
|
@ -119,7 +119,6 @@
|
||||
"No results found.": "Hakuna matokeo yaliyopatikana.",
|
||||
"Operator": "Msimamizi",
|
||||
"Or": "Au",
|
||||
"Orders per page:": "Amri kwa ukurasa:",
|
||||
"Others": "Wengine",
|
||||
"Pay": "Lipia",
|
||||
"Payment Method": "Njia ya Malipo",
|
||||
@ -345,7 +344,6 @@
|
||||
"I understand": "I understand",
|
||||
"Warning": "Warning",
|
||||
"#36": "Phrases in components/FederationTable/index.tsx",
|
||||
"Coordinators per page:": "Coordinators per page:",
|
||||
"Enabled": "Enabled",
|
||||
"No coordinators found.": "No coordinators found.",
|
||||
"Rating": "Rating",
|
||||
|
@ -119,7 +119,6 @@
|
||||
"No results found.": "ไม่พบผลลัพธ์",
|
||||
"Operator": "ตัวดำเนินการ",
|
||||
"Or": "หรือ",
|
||||
"Orders per page:": "รายการต่อหน้า:",
|
||||
"Others": "อื่นๆ",
|
||||
"Pay": "จ่าย",
|
||||
"Payment Method": "วิธีการชำระเงิน",
|
||||
@ -345,7 +344,6 @@
|
||||
"I understand": "I understand",
|
||||
"Warning": "Warning",
|
||||
"#36": "Phrases in components/FederationTable/index.tsx",
|
||||
"Coordinators per page:": "Coordinators per page:",
|
||||
"Enabled": "Enabled",
|
||||
"No coordinators found.": "No coordinators found.",
|
||||
"Rating": "Rating",
|
||||
|
@ -119,7 +119,6 @@
|
||||
"No results found.": "未找到结果。",
|
||||
"Operator": "运算符",
|
||||
"Or": "或",
|
||||
"Orders per page:": "每页上的订单数量:",
|
||||
"Others": "其他",
|
||||
"Pay": "支付",
|
||||
"Payment Method": "付款方式",
|
||||
@ -345,7 +344,6 @@
|
||||
"I understand": "I understand",
|
||||
"Warning": "Warning",
|
||||
"#36": "Phrases in components/FederationTable/index.tsx",
|
||||
"Coordinators per page:": "Coordinators per page:",
|
||||
"Enabled": "Enabled",
|
||||
"No coordinators found.": "No coordinators found.",
|
||||
"Rating": "Rating",
|
||||
|
@ -119,7 +119,6 @@
|
||||
"No results found.": "未找到結果。",
|
||||
"Operator": "運算符",
|
||||
"Or": "或",
|
||||
"Orders per page:": "每頁上的訂單數量:",
|
||||
"Others": "其他",
|
||||
"Pay": "支付",
|
||||
"Payment Method": "付款方法",
|
||||
@ -345,7 +344,6 @@
|
||||
"I understand": "I understand",
|
||||
"Warning": "Warning",
|
||||
"#36": "Phrases in components/FederationTable/index.tsx",
|
||||
"Coordinators per page:": "Coordinators per page:",
|
||||
"Enabled": "Enabled",
|
||||
"No coordinators found.": "No coordinators found.",
|
||||
"Rating": "Rating",
|
||||
|
Reference in New Issue
Block a user