dashboard: add retention and quick fix loading states

This commit is contained in:
Carl-Gerhard Lindesvärd
2024-05-01 14:15:31 +02:00
parent c3815bf6ab
commit 5e743a3502
52 changed files with 1324 additions and 205 deletions

View File

@@ -0,0 +1,34 @@
import { Suspense } from 'react';
import { ChartLoading } from '@/components/report/chart/ChartLoading';
import { Widget, WidgetHead } from '@/components/widget';
type Props = Record<string, unknown> & {
className?: string;
};
const withLoadingWidget = <P extends Props>(
Component: React.ComponentType<P>
) => {
const WithLoadingWidget: React.ComponentType<P> = (props) => {
return (
<Suspense
fallback={
<Widget className={props.className}>
<WidgetHead>
<span className="title">Loading...</span>
</WidgetHead>
<ChartLoading />
</Widget>
}
>
<Component {...(props as any)} />
</Suspense>
);
};
WithLoadingWidget.displayName = `WithLoadingWidget(${Component.displayName})`;
return WithLoadingWidget;
};
export default withLoadingWidget;