Skip to content

Commit 318a9a9

Browse files
Extract page spinner (#1727)
<!-- Ensure the title clearly reflects what was changed. Provide a clear and concise description of the changes made. The PR should only contain the changes related to the issue, and no other unrelated changes. --> Part of OPS-3144
1 parent 26434d1 commit 318a9a9

6 files changed

Lines changed: 24 additions & 44 deletions

File tree

packages/react-ui/src/app/app-bootstrap.tsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { LoadingSpinner } from '@openops/components/ui';
21
import { useEffect, useState } from 'react';
2+
3+
import { FullPageSpinner } from './common/components/full-page-spinner';
34
import { QueryKeys } from './constants/query-keys';
45
import { flagsApi, FlagsMap } from './lib/flags-api';
56
import { initializeInternal } from './lib/initialize-internal';
@@ -51,11 +52,7 @@ export function AppBootstrap({ children }: Readonly<AppBootstrapProps>) {
5152
}, []);
5253

5354
if (state.status === 'loading') {
54-
return (
55-
<div className="flex h-screen w-screen items-center justify-center">
56-
<LoadingSpinner size={50} />
57-
</div>
58-
);
55+
return <FullPageSpinner />;
5956
}
6057

6158
if (state.status === 'error') {
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { LoadingSpinner } from '@openops/components/ui';
2+
3+
type FullPageSpinnerProps = {
4+
size?: number;
5+
};
6+
7+
export const FullPageSpinner = ({ size = 50 }: FullPageSpinnerProps) => (
8+
<div className="bg-background flex h-screen w-screen items-center justify-center">
9+
<LoadingSpinner size={size} />
10+
</div>
11+
);

packages/react-ui/src/app/common/guards/allow-logged-in-user-only-guard.tsx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { LoadingSpinner } from '@openops/components/ui';
21
import dayjs from 'dayjs';
32
import { jwtDecode } from 'jwt-decode';
43
import { Suspense, useEffect } from 'react';
54
import { Navigate, useLocation, useNavigate } from 'react-router-dom';
65

76
import { getFederatedUrlBasedOnFlags } from '@/app/common/auth/lib/utils';
7+
import { FullPageSpinner } from '@/app/common/components/full-page-spinner';
88
import { flagsHooks } from '@/app/common/hooks/flags-hooks';
99
import { platformHooks } from '@/app/common/hooks/platform-hooks';
1010
import { projectHooks } from '@/app/common/hooks/project-hooks';
@@ -46,13 +46,7 @@ const LoggedIn = ({ children }: { children: React.ReactNode }) => {
4646
appConnectionsHooks.useConnectionsMetadata();
4747

4848
return (
49-
<Suspense
50-
fallback={
51-
<div className=" flex h-screen w-screen items-center justify-center ">
52-
<LoadingSpinner size={50}></LoadingSpinner>
53-
</div>
54-
}
55-
>
49+
<Suspense fallback={<FullPageSpinner />}>
5650
<SocketProvider>{children}</SocketProvider>
5751
</Suspense>
5852
);

packages/react-ui/src/app/common/guards/intial-data-guard.tsx

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { LoadingSpinner } from '@openops/components/ui';
21
import { Suspense, useEffect, useState } from 'react';
32

3+
import { FullPageSpinner } from '@/app/common/components/full-page-spinner';
44
import { flagsHooks } from '@/app/common/hooks/flags-hooks';
55
import {
66
setupRequestInterceptor,
@@ -32,22 +32,8 @@ export const InitialDataGuard = ({
3232
}, [flags]);
3333

3434
if (!interceptorsReady) {
35-
return (
36-
<div className="bg-background flex h-screen w-screen items-center justify-center ">
37-
<LoadingSpinner size={50}></LoadingSpinner>
38-
</div>
39-
);
35+
return <FullPageSpinner />;
4036
}
4137

42-
return (
43-
<Suspense
44-
fallback={
45-
<div className="bg-background flex h-screen w-screen items-center justify-center ">
46-
<LoadingSpinner size={50}></LoadingSpinner>
47-
</div>
48-
}
49-
>
50-
{children}
51-
</Suspense>
52-
);
38+
return <Suspense fallback={<FullPageSpinner />}>{children}</Suspense>;
5339
};

packages/react-ui/src/app/routes/flows/id/index.tsx

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
import { FlowDetailsPanel } from '@/app/features/flows/components/flow-details-panel';
2-
import { LoadingSpinner } from '@openops/components/ui';
31
import { PopulatedFlow } from '@openops/shared';
42
import { useQuery } from '@tanstack/react-query';
53
import { useEffect } from 'react';
64
import { Navigate, useParams, useSearchParams } from 'react-router-dom';
75

6+
import { FullPageSpinner } from '@/app/common/components/full-page-spinner';
87
import { QueryKeys } from '@/app/constants/query-keys';
98
import { SEARCH_PARAMS } from '@/app/constants/search-params';
109
import { BuilderPage } from '@/app/features/builder';
1110
import { BuilderHeader } from '@/app/features/builder/builder-header/builder-header';
1211
import { BuilderPublishButton } from '@/app/features/builder/builder-header/builder-publish-button';
1312
import { BuilderStateProvider } from '@/app/features/builder/builder-state-provider';
13+
import { FlowDetailsPanel } from '@/app/features/flows/components/flow-details-panel';
1414
import { flowsApi } from '@/app/features/flows/lib/flows-api';
1515
import { AxiosError } from 'axios';
1616

@@ -59,11 +59,7 @@ const FlowBuilderPage = () => {
5959
}
6060

6161
if (isLoading) {
62-
return (
63-
<div className="bg-background flex h-screen w-screen items-center justify-center ">
64-
<LoadingSpinner size={50}></LoadingSpinner>
65-
</div>
66-
);
62+
return <FullPageSpinner />;
6763
}
6864

6965
return (

packages/react-ui/src/app/routes/runs/id/index.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { LoadingSpinner } from '@openops/components/ui';
21
import { useQuery } from '@tanstack/react-query';
32
import { useParams } from 'react-router-dom';
43

4+
import { FullPageSpinner } from '@/app/common/components/full-page-spinner';
55
import { QueryKeys } from '@/app/constants/query-keys';
66
import { BuilderPage } from '@/app/features/builder';
77
import { BuilderHeader } from '@/app/features/builder/builder-header/builder-header';
@@ -38,11 +38,7 @@ const FlowRunPage = () => {
3838
});
3939

4040
if (isLoading) {
41-
return (
42-
<div className="bg-background flex h-screen w-screen items-center justify-center ">
43-
<LoadingSpinner size={50}></LoadingSpinner>
44-
</div>
45-
);
41+
return <FullPageSpinner />;
4642
}
4743

4844
return (

0 commit comments

Comments
 (0)