feat: 增加容器级别的Loading

release/desktop
moonrailgun 3 years ago
parent eb3afdc19c
commit 90d45bbd9f

@ -5,7 +5,13 @@ import {
openModal,
closeModal,
} 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 AppInfo from './AppInfo';
import { OpenAppInfoProvider } from './context';
@ -56,29 +62,27 @@ const OpenApiMainPanel: React.FC = React.memo(() => {
);
};
if (loading) {
return <LoadingSpinner />;
}
return (
<div className="plugin-openapi-main-panel">
{appInfo ? (
<OpenAppInfoProvider appInfo={appInfo} refresh={refresh}>
<AppInfo />
</OpenAppInfoProvider>
) : (
<>
<Button
style={{ marginBottom: 4 }}
type="primary"
onClick={handleCreateOpenApp}
>
</Button>
<Table columns={columns} dataSource={allApps} pagination={false} />
</>
)}
</div>
<Loading spinning={loading}>
<div className="plugin-openapi-main-panel">
{appInfo ? (
<OpenAppInfoProvider appInfo={appInfo} refresh={refresh}>
<AppInfo />
</OpenAppInfoProvider>
) : (
<>
<Button
style={{ marginBottom: 4 }}
type="primary"
onClick={handleCreateOpenApp}
>
</Button>
<Table columns={columns} dataSource={allApps} pagination={false} />
</>
)}
</div>
</Loading>
);
});
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 { WebFastForm } from '@/components/WebFastForm';
export { FullModalField } from '@/components/FullModal/Field';
export { Loading } from '@/components/Loading';

Loading…
Cancel
Save