feat: 增加容器级别的Loading

pull/81/head
moonrailgun 3 years ago
parent eb3afdc19c
commit 90d45bbd9f

@ -5,7 +5,13 @@ import {
openModal, openModal,
closeModal, closeModal,
} from '@capital/common'; } from '@capital/common';
import { LoadingSpinner, Space, Table, Button } from '@capital/component'; import {
LoadingSpinner,
Space,
Table,
Button,
Loading,
} from '@capital/component';
import { OpenApp } from './types'; import { OpenApp } from './types';
import AppInfo from './AppInfo'; import AppInfo from './AppInfo';
import { OpenAppInfoProvider } from './context'; import { OpenAppInfoProvider } from './context';
@ -56,29 +62,27 @@ const OpenApiMainPanel: React.FC = React.memo(() => {
); );
}; };
if (loading) {
return <LoadingSpinner />;
}
return ( return (
<div className="plugin-openapi-main-panel"> <Loading spinning={loading}>
{appInfo ? ( <div className="plugin-openapi-main-panel">
<OpenAppInfoProvider appInfo={appInfo} refresh={refresh}> {appInfo ? (
<AppInfo /> <OpenAppInfoProvider appInfo={appInfo} refresh={refresh}>
</OpenAppInfoProvider> <AppInfo />
) : ( </OpenAppInfoProvider>
<> ) : (
<Button <>
style={{ marginBottom: 4 }} <Button
type="primary" style={{ marginBottom: 4 }}
onClick={handleCreateOpenApp} type="primary"
> onClick={handleCreateOpenApp}
>
</Button>
<Table columns={columns} dataSource={allApps} pagination={false} /> </Button>
</> <Table columns={columns} dataSource={allApps} pagination={false} />
)} </>
</div> )}
</div>
</Loading>
); );
}); });
OpenApiMainPanel.displayName = 'OpenApiMainPanel'; OpenApiMainPanel.displayName = 'OpenApiMainPanel';

@ -0,0 +1,22 @@
import React from 'react';
import { LoadingSpinner } from './LoadingSpinner';
interface LoadingProps {
spinning: boolean;
}
export const Loading: React.FC<LoadingProps> = React.memo((props) => {
const { spinning = false } = props;
return (
<div className="relative">
{spinning && (
<div className="absolute inset-0 z-10 bg-white bg-opacity-20 flex justify-center items-center">
<LoadingSpinner />
</div>
)}
{props.children}
</div>
);
});
Loading.displayName = 'Loading';

@ -17,3 +17,4 @@ export { PillTabs, PillTabPane } from '@/components/PillTabs';
export { LoadingSpinner } from '@/components/LoadingSpinner'; export { LoadingSpinner } from '@/components/LoadingSpinner';
export { WebFastForm } from '@/components/WebFastForm'; export { WebFastForm } from '@/components/WebFastForm';
export { FullModalField } from '@/components/FullModal/Field'; export { FullModalField } from '@/components/FullModal/Field';
export { Loading } from '@/components/Loading';

Loading…
Cancel
Save