mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
24 lines
555 B
TypeScript
24 lines
555 B
TypeScript
import {Fragment} from 'react';
|
|
|
|
export function DataStateSwitch(props: {
|
|
dataComponents: JSX.Element[];
|
|
emptyComponent: JSX.Element;
|
|
errorComponent: JSX.Element;
|
|
|
|
hasData: boolean;
|
|
isErrored: boolean;
|
|
isLoading: boolean;
|
|
loadingComponent?: JSX.Element;
|
|
}): JSX.Element {
|
|
if (props.isErrored) {
|
|
return props.errorComponent;
|
|
}
|
|
if (props.isLoading && props.loadingComponent) {
|
|
return props.loadingComponent;
|
|
}
|
|
if (!props.hasData) {
|
|
return props.emptyComponent;
|
|
}
|
|
return <Fragment>{props.dataComponents}</Fragment>;
|
|
}
|