mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-11-25 19:26:31 -05:00
Extract loading screen compontent #69
This commit is contained in:
parent
f185c76c6e
commit
23cfcacd09
2 changed files with 28 additions and 16 deletions
|
@ -1,7 +1,6 @@
|
||||||
import React, {Fragment, useEffect, useState} from "react";
|
import React, {Fragment, useEffect, useState} from "react";
|
||||||
import {FontAwesomeIcon} from "@fortawesome/react-fontawesome";
|
|
||||||
import "./application-loader.scss";
|
import "./application-loader.scss";
|
||||||
import {Alert} from "react-bootstrap";
|
import {LoadingScreen} from "./loading-screen";
|
||||||
|
|
||||||
interface ApplicationLoaderProps {
|
interface ApplicationLoaderProps {
|
||||||
initTasks: Promise<any>[]
|
initTasks: Promise<any>[]
|
||||||
|
@ -28,17 +27,9 @@ export const ApplicationLoader: React.FC<ApplicationLoaderProps> = ({children, i
|
||||||
})
|
})
|
||||||
}, [initTasks]);
|
}, [initTasks]);
|
||||||
|
|
||||||
return (<Fragment>{
|
return (
|
||||||
doneTasks < initTasks.length || initTasks.length === 0 ? (
|
doneTasks < initTasks.length || initTasks.length === 0 ?
|
||||||
<div className="loader middle">
|
<LoadingScreen failed={failed}/> :
|
||||||
<div className="icon">
|
<Fragment>{children}</Fragment>
|
||||||
<FontAwesomeIcon icon="file-alt" size="6x"
|
);
|
||||||
className={failed ? "animation-shake" : "animation-pulse"}/>
|
|
||||||
</div>
|
|
||||||
{
|
|
||||||
failed ? <Alert variant={"danger"}>An error occured while loading the application!</Alert> : null
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
) : children
|
|
||||||
}</Fragment>);
|
|
||||||
}
|
}
|
21
src/components/application-loader/loading-screen.tsx
Normal file
21
src/components/application-loader/loading-screen.tsx
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
import React from "react";
|
||||||
|
import {FontAwesomeIcon} from "@fortawesome/react-fontawesome";
|
||||||
|
import {Alert} from "react-bootstrap";
|
||||||
|
|
||||||
|
export interface LoadingScreenProps {
|
||||||
|
failed: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export const LoadingScreen: React.FC<LoadingScreenProps> = ({failed}) => {
|
||||||
|
return (
|
||||||
|
<div className="loader middle">
|
||||||
|
<div className="icon">
|
||||||
|
<FontAwesomeIcon icon="file-alt" size="6x"
|
||||||
|
className={failed ? "animation-shake" : "animation-pulse"}/>
|
||||||
|
</div>
|
||||||
|
{
|
||||||
|
failed ? <Alert variant={"danger"}>An error occured while loading the application!</Alert> : null
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
Loading…
Reference in a new issue