Fix Table

This commit is contained in:
koalasat
2025-05-10 20:22:37 +02:00
parent aa5d9ef7d2
commit 17bc47750d
25 changed files with 96 additions and 126 deletions

View File

@ -1,6 +1,6 @@
import React, { useContext, useState } from 'react'; import React, { useContext, useState } from 'react';
import { useTranslation } from 'react-i18next'; 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 { useNavigate } from 'react-router-dom';
import DepthChart from '../../components/Charts/DepthChart'; import DepthChart from '../../components/Charts/DepthChart';
import BookTable from '../../components/BookTable'; import BookTable from '../../components/BookTable';
@ -17,16 +17,18 @@ import { type PublicOrder } from '../../models';
const BookPage = (): React.JSX.Element => { const BookPage = (): React.JSX.Element => {
const { windowSize } = useContext<UseAppStoreType>(AppContext); const { windowSize } = useContext<UseAppStoreType>(AppContext);
const { federation } = useContext<UseFederationStoreType>(FederationContext); const { federation } = useContext<UseFederationStoreType>(FederationContext);
const theme = useTheme();
const { t } = useTranslation(); const { t } = useTranslation();
const navigate = useNavigate(); const navigate = useNavigate();
const [view, setView] = useState<'list' | 'depth' | 'map'>('list'); const [view, setView] = useState<'list' | 'depth' | 'map'>('list');
const [openVisitThirdParty, setOpenVisitThirdParty] = useState<boolean>(false); const [openVisitThirdParty, setOpenVisitThirdParty] = useState<boolean>(false);
const [thirdPartyOrder, setThirdPartyOrder] = useState<PublicOrder>(); const [thirdPartyOrder, setThirdPartyOrder] = useState<PublicOrder>();
const doubleView = windowSize.width > 115; const doubleView = windowSize.width > 100;
const width = windowSize.width * 0.9; const width = windowSize.width * 0.85;
const maxBookTableWidth = 85; const maxBookTableWidth = width * 0.7;
const chartWidthEm = width - maxBookTableWidth; const chartWidthEm = width * 0.25;
const fontSize = theme.typography.fontSize;
const onOrderClicked = function (id: number, shortAlias: string): void { const onOrderClicked = function (id: number, shortAlias: string): void {
const thirdParty = thirdParties[shortAlias]; const thirdParty = thirdParties[shortAlias];
@ -51,6 +53,8 @@ const BookPage = (): React.JSX.Element => {
) : ( ) : (
<> <>
<Button <Button
color={view === 'list' ? 'primary' : 'inherit'}
variant='contained'
onClick={() => { onClick={() => {
setView('list'); setView('list');
}} }}
@ -58,6 +62,8 @@ const BookPage = (): React.JSX.Element => {
<FormatListBulleted /> {t('List')} <FormatListBulleted /> {t('List')}
</Button> </Button>
<Button <Button
color={view === 'depth' ? 'primary' : 'inherit'}
variant='contained'
onClick={() => { onClick={() => {
setView('depth'); setView('depth');
}} }}
@ -65,6 +71,8 @@ const BookPage = (): React.JSX.Element => {
<BarChart /> {t('Chart')} <BarChart /> {t('Chart')}
</Button> </Button>
<Button <Button
color={view === 'map' ? 'primary' : 'inherit'}
variant='contained'
onClick={() => { onClick={() => {
setView('map'); setView('map');
}} }}
@ -94,12 +102,12 @@ const BookPage = (): React.JSX.Element => {
justifyContent='center' justifyContent='center'
spacing={1} spacing={1}
direction='row' direction='row'
style={{ width: `${windowSize.width}em`, height: `${windowSize.height * 0.875}em` }} style={{ width: `${width}em`, height: `${windowSize.height * 0.875}em` }}
> >
<Grid> <Grid>
<BookTable <BookTable
maxWidth={maxBookTableWidth} // EM units maxWidth={maxBookTableWidth} // EM units
maxHeight={windowSize.height * 0.8} // EM units maxHeight={windowSize.height * 0.78} // EM units
fullWidth={windowSize.width} // EM units fullWidth={windowSize.width} // EM units
fullHeight={windowSize.height} // EM units fullHeight={windowSize.height} // EM units
defaultFullscreen={false} defaultFullscreen={false}
@ -107,17 +115,17 @@ const BookPage = (): React.JSX.Element => {
/> />
</Grid> </Grid>
<Grid> <Grid>
<Grid item style={{ marginBottom: 10 }}> <Grid item style={{ marginBottom: 8 }}>
<DepthChart <DepthChart
maxWidth={chartWidthEm} // EM units maxWidth={chartWidthEm} // EM units
maxHeight={(windowSize.height * 0.82) / 2} // EM units maxHeight={(windowSize.height * 0.78) / 2 - 5 / fontSize} // EM units
onOrderClicked={onOrderClicked} onOrderClicked={onOrderClicked}
/> />
</Grid> </Grid>
<Grid item> <Grid item>
<MapChart <MapChart
maxWidth={chartWidthEm} // EM units maxWidth={chartWidthEm} // EM units
maxHeight={(windowSize.height * 0.82) / 2} // EM units maxHeight={(windowSize.height * 0.78) / 2 - 4 / fontSize} // EM units
onOrderClicked={onOrderClicked} onOrderClicked={onOrderClicked}
/> />
</Grid> </Grid>
@ -126,19 +134,19 @@ const BookPage = (): React.JSX.Element => {
) : view === 'depth' ? ( ) : view === 'depth' ? (
<DepthChart <DepthChart
maxWidth={windowSize.width * 0.8} // EM units maxWidth={windowSize.width * 0.8} // EM units
maxHeight={windowSize.height * 0.835} // EM units maxHeight={windowSize.height * 0.75} // EM units
onOrderClicked={onOrderClicked} onOrderClicked={onOrderClicked}
/> />
) : view === 'map' ? ( ) : view === 'map' ? (
<MapChart <MapChart
maxWidth={windowSize.width * 0.8} // EM units maxWidth={windowSize.width * 0.8} // M units
maxHeight={windowSize.height * 0.82} // EM units maxHeight={windowSize.height * 0.75} // EM units
onOrderClicked={onOrderClicked} onOrderClicked={onOrderClicked}
/> />
) : ( ) : (
<BookTable <BookTable
maxWidth={windowSize.width * 0.97} // EM units maxWidth={windowSize.width * 0.8} // EM units
maxHeight={windowSize.height * 0.825 - 5} // EM units maxHeight={windowSize.height * 0.75} // EM units
fullWidth={windowSize.width} // EM units fullWidth={windowSize.width} // EM units
fullHeight={windowSize.height} // EM units fullHeight={windowSize.height} // EM units
defaultFullscreen={false} defaultFullscreen={false}

View File

@ -1,6 +1,6 @@
import React, { useContext, useEffect, useMemo, useState } from 'react'; import React, { useContext, useEffect, useMemo, useState } from 'react';
import { useTranslation } from 'react-i18next'; 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 currencyDict from '../../../static/assets/currencies.json';
import { useTheme } from '@mui/system'; import { useTheme } from '@mui/system';
import { AutocompletePayments } from '../MakerForm'; import { AutocompletePayments } from '../MakerForm';
@ -118,8 +118,8 @@ const BookControl = ({
alignItems='flex-start' alignItems='flex-start'
direction='row' direction='row'
justifyContent='center' justifyContent='center'
spacing={0.5} spacing={0.8}
sx={{ height: '3.4em', padding: '0.2em' }} sx={{ height: '3.4em', padding: '0.2em', alignContent: 'center' }}
> >
{width > large ? ( {width > large ? (
<Grid item sx={{ position: 'relative', top: '0.5em' }}> <Grid item sx={{ position: 'relative', top: '0.5em' }}>
@ -132,7 +132,7 @@ const BookControl = ({
<Grid item> <Grid item>
<Select <Select
sx={{ sx={{
height: '2.3em', height: '2.6em',
border: '0.5px solid', border: '0.5px solid',
backgroundColor: theme.palette.background.paper, backgroundColor: theme.palette.background.paper,
borderRadius: '4px', borderRadius: '4px',
@ -207,7 +207,7 @@ const BookControl = ({
<Select <Select
autoWidth autoWidth
sx={{ sx={{
height: '2.3em', height: '2.6em',
border: '0.5px solid', border: '0.5px solid',
backgroundColor: theme.palette.background.paper, backgroundColor: theme.palette.background.paper,
borderRadius: '4px', borderRadius: '4px',
@ -288,7 +288,7 @@ const BookControl = ({
<Grid item> <Grid item>
<Select <Select
sx={{ sx={{
height: '2.3em', height: '2.6em',
border: '0.5px solid', border: '0.5px solid',
backgroundColor: theme.palette.background.paper, backgroundColor: theme.palette.background.paper,
borderRadius: '4px', borderRadius: '4px',
@ -374,7 +374,7 @@ const BookControl = ({
<Select <Select
autoWidth autoWidth
sx={{ sx={{
height: '2.3em', height: '2.6em',
border: '0.5px solid', border: '0.5px solid',
backgroundColor: theme.palette.background.paper, backgroundColor: theme.palette.background.paper,
borderRadius: '4px', borderRadius: '4px',
@ -425,7 +425,6 @@ const BookControl = ({
</Select> </Select>
</Grid> </Grid>
</Grid> </Grid>
<Divider />
</Box> </Box>
); );
}; };

View File

@ -11,7 +11,6 @@ import {
ListItemAvatar, ListItemAvatar,
useTheme, useTheme,
CircularProgress, CircularProgress,
LinearProgress,
IconButton, IconButton,
Tooltip, Tooltip,
styled, styled,
@ -68,7 +67,6 @@ interface BookTableProps {
fullHeight?: number; fullHeight?: number;
elevation?: number; elevation?: number;
defaultFullscreen?: boolean; defaultFullscreen?: boolean;
fillContainer?: boolean;
showControls?: boolean; showControls?: boolean;
showFooter?: boolean; showFooter?: boolean;
showNoResults?: boolean; showNoResults?: boolean;
@ -83,7 +81,6 @@ const BookTable = ({
fullHeight = 70, fullHeight = 70,
defaultFullscreen = false, defaultFullscreen = false,
elevation = 6, elevation = 6,
fillContainer = false,
showControls = true, showControls = true,
showFooter = true, showFooter = true,
showNoResults = true, showNoResults = true,
@ -98,37 +95,35 @@ const BookTable = ({
const [paginationModel, setPaginationModel] = useState<GridPaginationModel>({ const [paginationModel, setPaginationModel] = useState<GridPaginationModel>({
pageSize: 0, pageSize: 0,
page: 1, page: 0,
}); });
const [columnVisibilityModel, setColumnVisibilityModel] = useState<GridColumnVisibilityModel>({}); const [columnVisibilityModel, setColumnVisibilityModel] = useState<GridColumnVisibilityModel>({});
const [fullscreen, setFullscreen] = useState(defaultFullscreen); const [fullscreen, setFullscreen] = useState(defaultFullscreen);
const [paymentMethods, setPaymentMethods] = useState<string[]>([]); const [paymentMethods, setPaymentMethods] = useState<string[]>([]);
const [page, setPage] = useState<number>(0);
// all sizes in 'em' // all sizes in 'em'
const [fontSize, defaultPageSize, height] = useMemo(() => { const [fontSize, defaultPageSize, height] = useMemo(() => {
const fontSize = theme.typography.fontSize; const fontSize = theme.typography.fontSize;
const verticalHeightFrame = 3.25 + (showControls ? 3.7 : 0.35) + (showFooter ? 2.35 : 0); const verticalHeightHeader = 55 / fontSize;
const verticalHeightRow = 3.25; const verticalHeightRow = 55 / fontSize;
const height = fullscreen ? fullHeight : maxHeight;
const defaultPageSize = Math.max( const defaultPageSize = Math.max(
Math.floor( Math.floor((height - verticalHeightHeader) / verticalHeightRow),
((fullscreen ? fullHeight * 0.9 : maxHeight) - verticalHeightFrame) / verticalHeightRow,
),
1, 1,
); );
const height = defaultPageSize * verticalHeightRow + verticalHeightFrame;
return [fontSize, defaultPageSize, height]; return [fontSize, defaultPageSize, height];
}, [theme.typography.fontSize, maxHeight, fullscreen, fullHeight, showControls, showFooter]); }, [theme.typography.fontSize, maxHeight, fullscreen, fullHeight, showControls, showFooter]);
useEffect(() => { useEffect(() => {
setPaginationModel({ setPaginationModel({
pageSize: defaultPageSize, pageSize: defaultPageSize,
page: paginationModel.page ?? 1, page: 0,
}); });
}, [defaultPageSize]); }, [defaultPageSize]);
const localeText = useMemo(() => { const localeText = useMemo(() => {
return { return {
MuiTablePagination: { labelRowsPerPage: t('Orders per page:') },
noResultsOverlayLabel: t('No results found.'), noResultsOverlayLabel: t('No results found.'),
errorOverlayDefaultLabel: t('An error occurred.'), errorOverlayDefaultLabel: t('An error occurred.'),
toolbarColumns: t('Columns'), toolbarColumns: t('Columns'),
@ -393,7 +388,7 @@ const BookTable = ({
<div style={{ position: 'relative', top: '0.4em' }}> <div style={{ position: 'relative', top: '0.4em' }}>
<PaymentStringAsIcons <PaymentStringAsIcons
othersText={t('Others')} othersText={t('Others')}
verbose={true} verbose={false}
size={1.7 * fontSize} size={1.7 * fontSize}
text={params.row.payment_method} text={params.row.payment_method}
/> />
@ -427,6 +422,7 @@ const BookTable = ({
<PaymentStringAsIcons <PaymentStringAsIcons
othersText={t('Others')} othersText={t('Others')}
size={1.3 * fontSize} size={1.3 * fontSize}
verbose={false}
text={params.row.payment_method} text={params.row.payment_method}
/> />
</div> </div>
@ -843,7 +839,7 @@ const BookTable = ({
}); });
setColumnVisibilityModel(columnVisibilityModel); setColumnVisibilityModel(columnVisibilityModel);
return { columns, width: width * 0.875 + 0.15 }; return { columns, width: maxWidth };
}; };
const { columns, width } = useMemo(() => { const { columns, width } = useMemo(() => {
@ -915,9 +911,7 @@ const BookTable = ({
}; };
const gridComponents = useMemo(() => { const gridComponents = useMemo(() => {
const components: GridSlotsComponent = { const components: GridSlotsComponent = {};
loadingOverlay: LinearProgress,
};
if (showNoResults) { if (showNoResults) {
components.noResultsOverlay = NoResultsOverlay; components.noResultsOverlay = NoResultsOverlay;
@ -926,11 +920,8 @@ const BookTable = ({
if (showFooter) { if (showFooter) {
components.footer = Footer; components.footer = Footer;
} }
if (showControls) {
components.toolbar = BookControl;
}
return components; return components;
}, [showNoResults, showFooter, showControls, fullscreen]); }, [showNoResults, showFooter, fullscreen]);
const filteredOrders = useMemo(() => { const filteredOrders = useMemo(() => {
return showControls return showControls
@ -946,17 +937,25 @@ const BookTable = ({
return ( return (
<Paper <Paper
elevation={elevation} elevation={elevation}
style={ style={{
fillContainer width: `${width}em`,
? { width: '100%', height: '100%' } height: `${height}em`,
: { width: `${width}em`, height: `${height}em`, overflow: 'auto' } overflow: 'auto',
} display: 'flex',
flexDirection: 'column',
}}
> >
{showControls && (
<BookControl
width={width}
paymentMethod={paymentMethods}
setPaymentMethods={setPaymentMethods}
/>
)}
<ClickThroughDataGrid <ClickThroughDataGrid
autoHeight
sx={headerStyleFix} sx={headerStyleFix}
localeText={localeText} localeText={localeText}
rowHeight={3.714 * theme.typography.fontSize}
headerHeight={3.25 * theme.typography.fontSize}
rows={filteredOrders} rows={filteredOrders}
getRowId={(params: PublicOrder) => `${String(params.coordinatorShortAlias)}/${params.id}`} getRowId={(params: PublicOrder) => `${String(params.coordinatorShortAlias)}/${params.id}`}
loading={federation.loading} loading={federation.loading}
@ -965,19 +964,10 @@ const BookTable = ({
onColumnVisibilityModelChange={(newColumnVisibilityModel) => { onColumnVisibilityModelChange={(newColumnVisibilityModel) => {
setColumnVisibilityModel(newColumnVisibilityModel); setColumnVisibilityModel(newColumnVisibilityModel);
}} }}
page={page}
onPageChange={setPage}
hideFooter={!showFooter} hideFooter={!showFooter}
slots={gridComponents} slots={gridComponents}
slotProps={{
toolbar: {
width,
paymentMethod: paymentMethods,
setPaymentMethods,
},
loadingOverlay: {
variant: 'indeterminate',
value: federation.loading ? 0 : 100,
},
}}
paginationModel={paginationModel} paginationModel={paginationModel}
pageSizeOptions={width < 22 ? [] : [0, defaultPageSize, defaultPageSize * 2, 50, 100]} pageSizeOptions={width < 22 ? [] : [0, defaultPageSize, defaultPageSize * 2, 50, 100]}
onPaginationModelChange={(newPaginationModel) => { onPaginationModelChange={(newPaginationModel) => {
@ -989,8 +979,24 @@ const BookTable = ({
} else { } else {
return ( return (
<Dialog open={fullscreen} fullScreen={true}> <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 <ClickThroughDataGrid
autoHeight
sx={headerStyleFix} sx={headerStyleFix}
localeText={localeText} localeText={localeText}
rowHeight={3.714 * theme.typography.fontSize} rowHeight={3.714 * theme.typography.fontSize}
@ -1004,13 +1010,8 @@ const BookTable = ({
onColumnVisibilityModelChange={(newColumnVisibilityModel) => { onColumnVisibilityModelChange={(newColumnVisibilityModel) => {
setColumnVisibilityModel(newColumnVisibilityModel); setColumnVisibilityModel(newColumnVisibilityModel);
}} }}
slotProps={{ page={page}
toolbar: { onPageChange={setPage}
width,
paymentMethod: paymentMethods,
setPaymentMethods,
},
}}
paginationModel={paginationModel} paginationModel={paginationModel}
pageSizeOptions={width < 22 ? [] : [0, defaultPageSize, defaultPageSize * 2, 50, 100]} pageSizeOptions={width < 22 ? [] : [0, defaultPageSize, defaultPageSize * 2, 50, 100]}
onPaginationModelChange={(newPaginationModel) => { onPaginationModelChange={(newPaginationModel) => {

View File

@ -34,7 +34,6 @@ import {
interface DepthChartProps { interface DepthChartProps {
maxWidth: number; maxWidth: number;
maxHeight: number; maxHeight: number;
fillContainer?: boolean;
elevation?: number; elevation?: number;
onOrderClicked?: (id: number, shortAlias: string) => void; onOrderClicked?: (id: number, shortAlias: string) => void;
} }
@ -42,7 +41,6 @@ interface DepthChartProps {
const DepthChart: React.FC<DepthChartProps> = ({ const DepthChart: React.FC<DepthChartProps> = ({
maxWidth, maxWidth,
maxHeight, maxHeight,
fillContainer = false,
elevation = 6, elevation = 6,
onOrderClicked = () => null, onOrderClicked = () => null,
}) => { }) => {
@ -276,26 +274,27 @@ const DepthChart: React.FC<DepthChartProps> = ({
return ( return (
<Paper <Paper
elevation={elevation} elevation={elevation}
style={ style={{
fillContainer width: `${width}em`,
? { width: '100%', maxHeight: '100%', height: '100%' } height: `${height}em`,
: { width: `${width}em`, maxHeight: `${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 ? ( {center === undefined || enrichedOrders.length < 1 ? (
<div <div
style={{ style={{
display: 'flex', display: 'flex',
justifyContent: 'center', justifyContent: 'center',
paddingTop: `${(height - 3) / 2 - 1}em`, paddingTop: `${height / 2}em`,
height: `${height}em`,
}} }}
> >
<CircularProgress /> <CircularProgress />
</div> </div>
) : ( ) : (
<Grid container> <Grid container alignItems='center' direction='column'>
<Grid <Grid
container container
direction='row' direction='row'

View File

@ -22,7 +22,6 @@ import {
interface MapChartProps { interface MapChartProps {
maxWidth: number; maxWidth: number;
maxHeight: number; maxHeight: number;
fillContainer?: boolean;
elevation?: number; elevation?: number;
onOrderClicked?: (id: number, shortAlias: string) => void; onOrderClicked?: (id: number, shortAlias: string) => void;
} }
@ -30,7 +29,6 @@ interface MapChartProps {
const MapChart: React.FC<MapChartProps> = ({ const MapChart: React.FC<MapChartProps> = ({
maxWidth, maxWidth,
maxHeight, maxHeight,
fillContainer = false,
elevation = 6, elevation = 6,
onOrderClicked = () => {}, onOrderClicked = () => {},
}) => { }) => {
@ -46,11 +44,13 @@ const MapChart: React.FC<MapChartProps> = ({
return ( return (
<Paper <Paper
elevation={elevation} elevation={elevation}
style={ style={{
fillContainer width: `${width}em`,
? { width: '100%', maxHeight: '100%', height: '100%' } height: `${height}em`,
: { width: `${width}em`, maxHeight: `${height}em` } overflow: 'auto',
} display: 'flex',
flexDirection: 'column',
}}
> >
<Dialog <Dialog
open={openWarningDialog} open={openWarningDialog}
@ -130,7 +130,7 @@ const MapChart: React.FC<MapChartProps> = ({
</div> </div>
</Tooltip> </Tooltip>
</Grid> </Grid>
<div style={{ height: `${height * 0.825}em` }}> <div style={{ height: `${height - 3.2}em` }}>
<Map <Map
useTiles={useTiles} useTiles={useTiles}
orders={Object.values(federation.book)} orders={Object.values(federation.book)}

View File

@ -79,7 +79,6 @@ const FederationTable = ({
}; };
const localeText = { const localeText = {
MuiTablePagination: { labelRowsPerPage: t('Coordinators per page:') },
noResultsOverlayLabel: t('No coordinators found.'), noResultsOverlayLabel: t('No coordinators found.'),
}; };

View File

@ -27,7 +27,6 @@ const BookWidget = React.forwardRef(function Component({
<Paper elevation={3} style={{ width: '100%', height: '100%' }}> <Paper elevation={3} style={{ width: '100%', height: '100%' }}>
<BookTable <BookTable
elevation={0} elevation={0}
fillContainer={true}
maxWidth={layout.w * gridCellSize} // EM units maxWidth={layout.w * gridCellSize} // EM units
maxHeight={layout.h * gridCellSize} // EM units maxHeight={layout.h * gridCellSize} // EM units
fullWidth={windowSize.width} // EM units fullWidth={windowSize.width} // EM units

View File

@ -29,7 +29,6 @@ const DepthChartWidget = React.forwardRef(function Component({
elevation={0} elevation={0}
maxWidth={layout.w * gridCellSize} // EM units maxWidth={layout.w * gridCellSize} // EM units
maxHeight={layout.h * gridCellSize} // EM units maxHeight={layout.h * gridCellSize} // EM units
fillContainer={true}
/> />
</Paper> </Paper>
); );

View File

@ -119,7 +119,6 @@
"No results found.": "No s'han trobat resultats.", "No results found.": "No s'han trobat resultats.",
"Operator": "Operador", "Operator": "Operador",
"Or": "O", "Or": "O",
"Orders per page:": "Ordres per vista:",
"Others": "Altres", "Others": "Altres",
"Pay": "Pagar", "Pay": "Pagar",
"Payment Method": "Mètode de pagament", "Payment Method": "Mètode de pagament",
@ -345,7 +344,6 @@
"I understand": "Ho entenc", "I understand": "Ho entenc",
"Warning": "Avís", "Warning": "Avís",
"#36": "Phrases in components/FederationTable/index.tsx", "#36": "Phrases in components/FederationTable/index.tsx",
"Coordinators per page:": "Coordinadors per pàgina:",
"Enabled": "Habilitat", "Enabled": "Habilitat",
"No coordinators found.": "No s'han trobat coordinadors.", "No coordinators found.": "No s'han trobat coordinadors.",
"Rating": "Rating", "Rating": "Rating",

View File

@ -119,7 +119,6 @@
"No results found.": "Nebyly nalezeny žádné výsledky.", "No results found.": "Nebyly nalezeny žádné výsledky.",
"Operator": "Operátor", "Operator": "Operátor",
"Or": "Nebo", "Or": "Nebo",
"Orders per page:": "Nabídky na stránku:",
"Others": "Ostatní", "Others": "Ostatní",
"Pay": "Platba", "Pay": "Platba",
"Payment Method": "Platební metoda", "Payment Method": "Platební metoda",
@ -345,7 +344,6 @@
"I understand": "I understand", "I understand": "I understand",
"Warning": "Warning", "Warning": "Warning",
"#36": "Phrases in components/FederationTable/index.tsx", "#36": "Phrases in components/FederationTable/index.tsx",
"Coordinators per page:": "Coordinators per page:",
"Enabled": "Enabled", "Enabled": "Enabled",
"No coordinators found.": "No coordinators found.", "No coordinators found.": "No coordinators found.",
"Rating": "Rating", "Rating": "Rating",

View File

@ -119,7 +119,6 @@
"No results found.": "No results found.", "No results found.": "No results found.",
"Operator": "Operator", "Operator": "Operator",
"Or": "Or", "Or": "Or",
"Orders per page:": "Orders per page:",
"Others": "Weitere", "Others": "Weitere",
"Pay": "Bezahlung", "Pay": "Bezahlung",
"Payment Method": "Zahlungsweise", "Payment Method": "Zahlungsweise",
@ -345,7 +344,6 @@
"I understand": "I understand", "I understand": "I understand",
"Warning": "Warning", "Warning": "Warning",
"#36": "Phrases in components/FederationTable/index.tsx", "#36": "Phrases in components/FederationTable/index.tsx",
"Coordinators per page:": "Coordinators per page:",
"Enabled": "Enabled", "Enabled": "Enabled",
"No coordinators found.": "No coordinators found.", "No coordinators found.": "No coordinators found.",
"Rating": "Rating", "Rating": "Rating",

View File

@ -119,7 +119,6 @@
"No results found.": "No results found.", "No results found.": "No results found.",
"Operator": "Operator", "Operator": "Operator",
"Or": "Or", "Or": "Or",
"Orders per page:": "Orders per page:",
"Others": "Others", "Others": "Others",
"Pay": "Pay", "Pay": "Pay",
"Payment Method": "Payment Method", "Payment Method": "Payment Method",
@ -345,7 +344,6 @@
"I understand": "I understand", "I understand": "I understand",
"Warning": "Warning", "Warning": "Warning",
"#36": "Phrases in components/FederationTable/index.tsx", "#36": "Phrases in components/FederationTable/index.tsx",
"Coordinators per page:": "Coordinators per page:",
"Enabled": "Enabled", "Enabled": "Enabled",
"No coordinators found.": "No coordinators found.", "No coordinators found.": "No coordinators found.",
"Rating": "Rating", "Rating": "Rating",

View File

@ -119,7 +119,6 @@
"No results found.": "No se han encontrado resultados.", "No results found.": "No se han encontrado resultados.",
"Operator": "Operador", "Operator": "Operador",
"Or": "O", "Or": "O",
"Orders per page:": "Órdenes por página:",
"Others": "Otros", "Others": "Otros",
"Pay": "Pagar", "Pay": "Pagar",
"Payment Method": "Método de pago", "Payment Method": "Método de pago",
@ -345,7 +344,6 @@
"I understand": "I understand", "I understand": "I understand",
"Warning": "Warning", "Warning": "Warning",
"#36": "Phrases in components/FederationTable/index.tsx", "#36": "Phrases in components/FederationTable/index.tsx",
"Coordinators per page:": "Coordinators per page:",
"Enabled": "Enabled", "Enabled": "Enabled",
"No coordinators found.": "No coordinators found.", "No coordinators found.": "No coordinators found.",
"Rating": "Rating", "Rating": "Rating",

View File

@ -119,7 +119,6 @@
"No results found.": "Ez da emaitzarik aurkitu.", "No results found.": "Ez da emaitzarik aurkitu.",
"Operator": "Operadore", "Operator": "Operadore",
"Or": "Edo", "Or": "Edo",
"Orders per page:": "Orrialde bakoitzeko eskaerak:",
"Others": "Besteak", "Others": "Besteak",
"Pay": "Ordaindu", "Pay": "Ordaindu",
"Payment Method": "Ordainketa Modua", "Payment Method": "Ordainketa Modua",
@ -345,7 +344,6 @@
"I understand": "I understand", "I understand": "I understand",
"Warning": "Warning", "Warning": "Warning",
"#36": "Phrases in components/FederationTable/index.tsx", "#36": "Phrases in components/FederationTable/index.tsx",
"Coordinators per page:": "Coordinators per page:",
"Enabled": "Enabled", "Enabled": "Enabled",
"No coordinators found.": "No coordinators found.", "No coordinators found.": "No coordinators found.",
"Rating": "Rating", "Rating": "Rating",

View File

@ -119,7 +119,6 @@
"No results found.": "No results found.", "No results found.": "No results found.",
"Operator": "Opérateur", "Operator": "Opérateur",
"Or": "Ou", "Or": "Ou",
"Orders per page:": "Ordres par page :",
"Others": "Autres", "Others": "Autres",
"Pay": "Payer", "Pay": "Payer",
"Payment Method": "Mode de paiement", "Payment Method": "Mode de paiement",
@ -345,7 +344,6 @@
"I understand": "I understand", "I understand": "I understand",
"Warning": "Warning", "Warning": "Warning",
"#36": "Phrases in components/FederationTable/index.tsx", "#36": "Phrases in components/FederationTable/index.tsx",
"Coordinators per page:": "Coordinators per page:",
"Enabled": "Enabled", "Enabled": "Enabled",
"No coordinators found.": "No coordinators found.", "No coordinators found.": "No coordinators found.",
"Rating": "Rating", "Rating": "Rating",

View File

@ -119,7 +119,6 @@
"No results found.": "Nessun risultato trovato.", "No results found.": "Nessun risultato trovato.",
"Operator": "Operatore", "Operator": "Operatore",
"Or": "E", "Or": "E",
"Orders per page:": "Ordini per pagina:",
"Others": "Altro", "Others": "Altro",
"Pay": "Paga", "Pay": "Paga",
"Payment Method": "Metodo di pagamento", "Payment Method": "Metodo di pagamento",
@ -345,7 +344,6 @@
"I understand": "I understand", "I understand": "I understand",
"Warning": "Warning", "Warning": "Warning",
"#36": "Phrases in components/FederationTable/index.tsx", "#36": "Phrases in components/FederationTable/index.tsx",
"Coordinators per page:": "Coordinators per page:",
"Enabled": "Enabled", "Enabled": "Enabled",
"No coordinators found.": "No coordinators found.", "No coordinators found.": "No coordinators found.",
"Rating": "Rating", "Rating": "Rating",

View File

@ -119,7 +119,6 @@
"No results found.": "結果が見つかりません。", "No results found.": "結果が見つかりません。",
"Operator": "オペレーター", "Operator": "オペレーター",
"Or": "または", "Or": "または",
"Orders per page:": "ページあたりの注文数:",
"Others": "その他", "Others": "その他",
"Pay": "支払う", "Pay": "支払う",
"Payment Method": "支払い方法", "Payment Method": "支払い方法",
@ -345,7 +344,6 @@
"I understand": "I understand", "I understand": "I understand",
"Warning": "Warning", "Warning": "Warning",
"#36": "Phrases in components/FederationTable/index.tsx", "#36": "Phrases in components/FederationTable/index.tsx",
"Coordinators per page:": "Coordinators per page:",
"Enabled": "Enabled", "Enabled": "Enabled",
"No coordinators found.": "No coordinators found.", "No coordinators found.": "No coordinators found.",
"Rating": "Rating", "Rating": "Rating",

View File

@ -119,7 +119,6 @@
"No results found.": "No results found.", "No results found.": "No results found.",
"Operator": "Operator", "Operator": "Operator",
"Or": "Or", "Or": "Or",
"Orders per page:": "Orders per page:",
"Others": "Inni", "Others": "Inni",
"Pay": "Płacić", "Pay": "Płacić",
"Payment Method": "Metoda płatności", "Payment Method": "Metoda płatności",
@ -345,7 +344,6 @@
"I understand": "I understand", "I understand": "I understand",
"Warning": "Warning", "Warning": "Warning",
"#36": "Phrases in components/FederationTable/index.tsx", "#36": "Phrases in components/FederationTable/index.tsx",
"Coordinators per page:": "Coordinators per page:",
"Enabled": "Enabled", "Enabled": "Enabled",
"No coordinators found.": "No coordinators found.", "No coordinators found.": "No coordinators found.",
"Rating": "Rating", "Rating": "Rating",

View File

@ -119,7 +119,6 @@
"No results found.": "Nenhum resultado encontrado.", "No results found.": "Nenhum resultado encontrado.",
"Operator": "Operator", "Operator": "Operator",
"Or": "Ou", "Or": "Ou",
"Orders per page:": "Ordens por página:",
"Others": "Outros", "Others": "Outros",
"Pay": "Pagar", "Pay": "Pagar",
"Payment Method": "método de pagamento", "Payment Method": "método de pagamento",
@ -345,7 +344,6 @@
"I understand": "I understand", "I understand": "I understand",
"Warning": "Warning", "Warning": "Warning",
"#36": "Phrases in components/FederationTable/index.tsx", "#36": "Phrases in components/FederationTable/index.tsx",
"Coordinators per page:": "Coordinators per page:",
"Enabled": "Enabled", "Enabled": "Enabled",
"No coordinators found.": "No coordinators found.", "No coordinators found.": "No coordinators found.",
"Rating": "Rating", "Rating": "Rating",

View File

@ -119,7 +119,6 @@
"No results found.": "Результаты не найдены.", "No results found.": "Результаты не найдены.",
"Operator": "Оператор", "Operator": "Оператор",
"Or": "Или", "Or": "Или",
"Orders per page:": "Заказов на страницу:",
"Others": "Другие", "Others": "Другие",
"Pay": "Платить", "Pay": "Платить",
"Payment Method": "Метод оплаты", "Payment Method": "Метод оплаты",
@ -345,7 +344,6 @@
"I understand": "I understand", "I understand": "I understand",
"Warning": "Warning", "Warning": "Warning",
"#36": "Phrases in components/FederationTable/index.tsx", "#36": "Phrases in components/FederationTable/index.tsx",
"Coordinators per page:": "Coordinators per page:",
"Enabled": "Enabled", "Enabled": "Enabled",
"No coordinators found.": "No coordinators found.", "No coordinators found.": "No coordinators found.",
"Rating": "Rating", "Rating": "Rating",

View File

@ -119,7 +119,6 @@
"No results found.": "No results found.", "No results found.": "No results found.",
"Operator": "Operator", "Operator": "Operator",
"Or": "Or", "Or": "Or",
"Orders per page:": "Orders per page:",
"Others": "Andra", "Others": "Andra",
"Pay": "Betala", "Pay": "Betala",
"Payment Method": "Betalningsmetod", "Payment Method": "Betalningsmetod",
@ -345,7 +344,6 @@
"I understand": "I understand", "I understand": "I understand",
"Warning": "Warning", "Warning": "Warning",
"#36": "Phrases in components/FederationTable/index.tsx", "#36": "Phrases in components/FederationTable/index.tsx",
"Coordinators per page:": "Coordinators per page:",
"Enabled": "Enabled", "Enabled": "Enabled",
"No coordinators found.": "No coordinators found.", "No coordinators found.": "No coordinators found.",
"Rating": "Rating", "Rating": "Rating",

View File

@ -119,7 +119,6 @@
"No results found.": "Hakuna matokeo yaliyopatikana.", "No results found.": "Hakuna matokeo yaliyopatikana.",
"Operator": "Msimamizi", "Operator": "Msimamizi",
"Or": "Au", "Or": "Au",
"Orders per page:": "Amri kwa ukurasa:",
"Others": "Wengine", "Others": "Wengine",
"Pay": "Lipia", "Pay": "Lipia",
"Payment Method": "Njia ya Malipo", "Payment Method": "Njia ya Malipo",
@ -345,7 +344,6 @@
"I understand": "I understand", "I understand": "I understand",
"Warning": "Warning", "Warning": "Warning",
"#36": "Phrases in components/FederationTable/index.tsx", "#36": "Phrases in components/FederationTable/index.tsx",
"Coordinators per page:": "Coordinators per page:",
"Enabled": "Enabled", "Enabled": "Enabled",
"No coordinators found.": "No coordinators found.", "No coordinators found.": "No coordinators found.",
"Rating": "Rating", "Rating": "Rating",

View File

@ -119,7 +119,6 @@
"No results found.": "ไม่พบผลลัพธ์", "No results found.": "ไม่พบผลลัพธ์",
"Operator": "ตัวดำเนินการ", "Operator": "ตัวดำเนินการ",
"Or": "หรือ", "Or": "หรือ",
"Orders per page:": "รายการต่อหน้า:",
"Others": "อื่นๆ", "Others": "อื่นๆ",
"Pay": "จ่าย", "Pay": "จ่าย",
"Payment Method": "วิธีการชำระเงิน", "Payment Method": "วิธีการชำระเงิน",
@ -345,7 +344,6 @@
"I understand": "I understand", "I understand": "I understand",
"Warning": "Warning", "Warning": "Warning",
"#36": "Phrases in components/FederationTable/index.tsx", "#36": "Phrases in components/FederationTable/index.tsx",
"Coordinators per page:": "Coordinators per page:",
"Enabled": "Enabled", "Enabled": "Enabled",
"No coordinators found.": "No coordinators found.", "No coordinators found.": "No coordinators found.",
"Rating": "Rating", "Rating": "Rating",

View File

@ -119,7 +119,6 @@
"No results found.": "未找到结果。", "No results found.": "未找到结果。",
"Operator": "运算符", "Operator": "运算符",
"Or": "或", "Or": "或",
"Orders per page:": "每页上的订单数量:",
"Others": "其他", "Others": "其他",
"Pay": "支付", "Pay": "支付",
"Payment Method": "付款方式", "Payment Method": "付款方式",
@ -345,7 +344,6 @@
"I understand": "I understand", "I understand": "I understand",
"Warning": "Warning", "Warning": "Warning",
"#36": "Phrases in components/FederationTable/index.tsx", "#36": "Phrases in components/FederationTable/index.tsx",
"Coordinators per page:": "Coordinators per page:",
"Enabled": "Enabled", "Enabled": "Enabled",
"No coordinators found.": "No coordinators found.", "No coordinators found.": "No coordinators found.",
"Rating": "Rating", "Rating": "Rating",

View File

@ -119,7 +119,6 @@
"No results found.": "未找到結果。", "No results found.": "未找到結果。",
"Operator": "運算符", "Operator": "運算符",
"Or": "或", "Or": "或",
"Orders per page:": "每頁上的訂單數量:",
"Others": "其他", "Others": "其他",
"Pay": "支付", "Pay": "支付",
"Payment Method": "付款方法", "Payment Method": "付款方法",
@ -345,7 +344,6 @@
"I understand": "I understand", "I understand": "I understand",
"Warning": "Warning", "Warning": "Warning",
"#36": "Phrases in components/FederationTable/index.tsx", "#36": "Phrases in components/FederationTable/index.tsx",
"Coordinators per page:": "Coordinators per page:",
"Enabled": "Enabled", "Enabled": "Enabled",
"No coordinators found.": "No coordinators found.", "No coordinators found.": "No coordinators found.",
"Rating": "Rating", "Rating": "Rating",