refactor: loading for suspend
This commit is contained in:
@@ -13,13 +13,17 @@ opacity: 1;
|
|||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
const StyledWrapper = styled.div`
|
const StyledWrapper = styled.div`
|
||||||
width: 100vw;
|
width: 100%;
|
||||||
height: 100vh;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 15px;
|
gap: 15px;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
&.fullscreen {
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
.loading {
|
.loading {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -33,14 +37,14 @@ const StyledWrapper = styled.div`
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
export default function Loading({ reload = false }) {
|
export default function Loading({ reload = false, fullscreen = false }) {
|
||||||
const { clearLocalData } = useLogout();
|
const { clearLocalData } = useLogout();
|
||||||
const handleReload = () => {
|
const handleReload = () => {
|
||||||
clearLocalData();
|
clearLocalData();
|
||||||
location.reload(true);
|
location.reload(true);
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
<StyledWrapper>
|
<StyledWrapper className={fullscreen ? "fullscreen" : ""}>
|
||||||
<Ring
|
<Ring
|
||||||
className="loading"
|
className="loading"
|
||||||
size={40}
|
size={40}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ export default function HomePage() {
|
|||||||
const { loading } = usePreload();
|
const { loading } = usePreload();
|
||||||
// console.log("index loading", loading, ready);
|
// console.log("index loading", loading, ready);
|
||||||
if (loading || !ready) {
|
if (loading || !ready) {
|
||||||
return <Loading reload={true} />;
|
return <Loading reload={true} fullscreen={true} />;
|
||||||
}
|
}
|
||||||
const isSettingPage = pathname.startsWith("/setting");
|
const isSettingPage = pathname.startsWith("/setting");
|
||||||
if (isSettingPage) {
|
if (isSettingPage) {
|
||||||
|
|||||||
+62
-9
@@ -45,7 +45,7 @@ const PageRoutes = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<HashRouter>
|
<HashRouter>
|
||||||
<Suspense fallback={<Loading />}>
|
<Suspense fallback={<Loading fullscreen={true} />}>
|
||||||
<Routes>
|
<Routes>
|
||||||
<Route path="/oauth/:token" element={<OAuthPage />} />
|
<Route path="/oauth/:token" element={<OAuthPage />} />
|
||||||
<Route
|
<Route
|
||||||
@@ -97,23 +97,76 @@ const PageRoutes = () => {
|
|||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Route path="setting">
|
<Route path="setting">
|
||||||
<Route index element={<SettingPage />} />
|
<Route
|
||||||
|
index
|
||||||
|
element={
|
||||||
|
<Suspense fallback={<Loading />}>
|
||||||
|
<SettingPage />
|
||||||
|
</Suspense>
|
||||||
|
}
|
||||||
|
/>
|
||||||
<Route path="channel/:cid" element={<SettingChannelPage />} />
|
<Route path="channel/:cid" element={<SettingChannelPage />} />
|
||||||
</Route>
|
</Route>
|
||||||
<Route index element={<ChatPage />} />
|
<Route
|
||||||
|
index
|
||||||
|
element={
|
||||||
|
<Suspense fallback={<Loading />}>
|
||||||
|
<ChatPage />
|
||||||
|
</Suspense>
|
||||||
|
}
|
||||||
|
/>
|
||||||
<Route path="chat">
|
<Route path="chat">
|
||||||
<Route index element={<ChatPage />} />
|
<Route index element={<ChatPage />} />
|
||||||
<Route path="channel/:channel_id" element={<ChatPage />} />
|
<Route
|
||||||
<Route path="dm/:user_id" element={<ChatPage />} />
|
path="channel/:channel_id"
|
||||||
|
element={
|
||||||
|
<Suspense fallback={<Loading />}>
|
||||||
|
<ChatPage />
|
||||||
|
</Suspense>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
<Route
|
||||||
|
path="dm/:user_id"
|
||||||
|
element={
|
||||||
|
<Suspense fallback={<Loading />}>
|
||||||
|
<ChatPage />
|
||||||
|
</Suspense>
|
||||||
|
}
|
||||||
|
/>
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="contacts">
|
<Route path="contacts">
|
||||||
<Route index element={<ContactsPage />} />
|
<Route
|
||||||
<Route path=":user_id" element={<ContactsPage />} />
|
index
|
||||||
|
element={
|
||||||
|
<Suspense fallback={<Loading />}>
|
||||||
|
<ContactsPage />
|
||||||
|
</Suspense>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
<Route
|
||||||
|
path=":user_id"
|
||||||
|
element={
|
||||||
|
<Suspense fallback={<Loading />}>
|
||||||
|
<ContactsPage />
|
||||||
|
</Suspense>
|
||||||
|
}
|
||||||
|
/>
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="favs" element={<FavoritesPage />}></Route>
|
<Route
|
||||||
|
path="favs"
|
||||||
|
element={
|
||||||
|
<Suspense fallback={<Loading />}>
|
||||||
|
<FavoritesPage />
|
||||||
|
</Suspense>
|
||||||
|
}
|
||||||
|
></Route>
|
||||||
<Route
|
<Route
|
||||||
path="files"
|
path="files"
|
||||||
element={<ResourceManagement fileMessages={fileMessages} />}
|
element={
|
||||||
|
<Suspense fallback={<Loading />}>
|
||||||
|
<ResourceManagement fileMessages={fileMessages} />
|
||||||
|
</Suspense>
|
||||||
|
}
|
||||||
></Route>
|
></Route>
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="*" element={<NotFoundPage />} />
|
<Route path="*" element={<NotFoundPage />} />
|
||||||
|
|||||||
Reference in New Issue
Block a user