mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
* envs and feature setup * home page layout * cross-chain txs page * cross-chain transfers page * cross-chain transfers on tx page * cross-chain messages on tx page * cross-chain tx page * cross-chain tx details token transfers * stats and counters for lists * migrate to new API version * add swagger * mobile lists * placeholder views on address page * tests * fix adaptive tabs initial state when there is only one tab in the list * tweaks * bug fixes * fix tests * update screenshots * migrate to new api version * add chain label tooltip, copy button to txs in lists and same address highlight * list views on address page * fix tests * fix links to current address in the list views * update tooltips * update tables layout * review fixes * fix spelling * update screenshots * update screenshot
63 lines
1.4 KiB
TypeScript
63 lines
1.4 KiB
TypeScript
import { Box, Text, chakra } from '@chakra-ui/react';
|
|
import React from 'react';
|
|
|
|
import type { EmptyStateProps } from 'toolkit/chakra/empty-state';
|
|
import { EmptyState } from 'toolkit/chakra/empty-state';
|
|
|
|
import DataFetchAlert from './DataFetchAlert';
|
|
|
|
export type Props = {
|
|
isError: boolean;
|
|
itemsNum?: number;
|
|
emptyText?: React.ReactNode;
|
|
actionBar?: React.ReactNode;
|
|
showActionBarIfEmpty?: boolean;
|
|
showActionBarIfError?: boolean;
|
|
children: React.ReactNode;
|
|
className?: string;
|
|
hasActiveFilters?: boolean;
|
|
emptyStateProps?: EmptyStateProps;
|
|
};
|
|
|
|
const DataListDisplay = (props: Props) => {
|
|
if (props.isError) {
|
|
if (props.showActionBarIfError) {
|
|
return (
|
|
<Box className={ props.className }>
|
|
{ props.actionBar }
|
|
<DataFetchAlert/>
|
|
</Box>
|
|
);
|
|
}
|
|
|
|
return <DataFetchAlert className={ props.className }/>;
|
|
}
|
|
|
|
if (props.hasActiveFilters && !props.itemsNum) {
|
|
return (
|
|
<Box className={ props.className }>
|
|
{ props.actionBar }
|
|
<EmptyState { ...props.emptyStateProps }/>
|
|
</Box>
|
|
);
|
|
}
|
|
|
|
if (!props.itemsNum) {
|
|
return (
|
|
<>
|
|
{ props.showActionBarIfEmpty && props.actionBar }
|
|
{ props.emptyText && <Text className={ props.className }>{ props.emptyText }</Text> }
|
|
</>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<Box className={ props.className }>
|
|
{ props.actionBar }
|
|
{ props.children }
|
|
</Box>
|
|
);
|
|
};
|
|
|
|
export default chakra(DataListDisplay);
|