Skip to content

Commit 3f8a70c

Browse files
author
Matthias Rütten
authored
Merge pull request #141 from codecentric/loading-merge-requests-screen
implement loading screen
2 parents 19662fc + fce4a29 commit 3f8a70c

File tree

3 files changed

+23
-14
lines changed

3 files changed

+23
-14
lines changed

src/renderer/components/merge-requests/Alerts.tsx

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,32 @@ import { Box, Heading, Text } from 'rebass'
33

44
import DoneAllIcon from '@material-ui/icons/DoneAll'
55
import ErrorOutlineIcon from '@material-ui/icons/ErrorOutline'
6+
import CloudDownloadOutlinedIcon from '@material-ui/icons/CloudDownloadOutlined'
67

78
export const NoMergeRequests: React.FunctionComponent = () => (
8-
<Box p={3}>
9+
<Box p={3} style={{ textAlign: 'center' }}>
910
<Text my={2} fontSize={4}>
10-
<DoneAllIcon color='action' /> There are no open merge requests
11+
<DoneAllIcon style={{ fontSize: '72px' }} color='action' fontSize='inherit' />
12+
<Heading my={2} fontSize={3}>
13+
There are no open merge requests
14+
</Heading>
1115
</Text>
1216
</Box>
1317
)
1418

19+
export const LoadingMergeRequests: React.FunctionComponent = () => (
20+
<Box p={3} style={{ textAlign: 'center' }}>
21+
<CloudDownloadOutlinedIcon style={{ fontSize: '72px' }} color='action' fontSize='inherit' />
22+
<Heading my={2} fontSize={3}>
23+
Loading your merge requests
24+
</Heading>
25+
</Box>
26+
)
27+
1528
export const CouldNotLoadMergeRequests: React.FunctionComponent = () => (
1629
<Box p={3} style={{ textAlign: 'center' }}>
1730
<ErrorOutlineIcon style={{ fontSize: '72px' }} color='error' fontSize='inherit' />
18-
<Heading my={2} fontSize={4}>
31+
<Heading my={2} fontSize={3}>
1932
Something went wrong
2033
</Heading>
2134
<Text>Could not load your merge requests</Text>

src/renderer/components/merge-requests/MergeRequestsPage.tsx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import { shell } from 'electron'
44

55
import { MergeRequestGroup } from './list/MergeRequestGroup'
66
import { MergeRequestItem } from './list/MergeRequestItem'
7+
import { CouldNotLoadMergeRequests, LoadingMergeRequests, NoMergeRequests } from './Alerts'
78

89
import { useBackend } from '../../hooks/merge-requests/backend'
910
import { MergeRequest } from '../../hooks/merge-requests/types'
10-
import * as Alerts from './Alerts'
1111

1212
const openMergeRequest = (url: string) => (event: React.MouseEvent) => {
1313
event.preventDefault()
@@ -38,12 +38,15 @@ const renderMergeRequest = (mergeRequest: MergeRequest) => {
3838
}
3939

4040
export const MergeRequestsPage: React.FunctionComponent = () => {
41-
const { groupedMergeRequests } = useBackend()
41+
const { groupedMergeRequests, isLoading } = useBackend()
42+
if (isLoading && !groupedMergeRequests) {
43+
return <LoadingMergeRequests />
44+
}
4245
if (!groupedMergeRequests) {
43-
return <Alerts.CouldNotLoadMergeRequests />
46+
return <CouldNotLoadMergeRequests />
4447
}
4548
if (groupedMergeRequests.length === 0) {
46-
return <Alerts.NoMergeRequests />
49+
return <NoMergeRequests />
4750
}
4851

4952
return (

src/renderer/hooks/merge-requests/backend.tsx

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ export const BackendProvider = ({ ...props }) => {
2828
const { config } = useConfig()
2929
const [groupedMergeRequests, setGroupedMergeRequests] = React.useState<GroupedMergeRequest[] | undefined>(undefined)
3030
const [mergeRequestWithProjects, setMergeRequestWithProjects] = React.useState<MergeRequestWithProject[] | undefined>(undefined)
31-
const [loadErrors, setLoadErrors] = React.useState<number>(0)
3231
const [isLoading, setIsLoading] = React.useState<boolean>(false)
3332

3433
const updateData = async (newConfig?: Config) => {
@@ -39,18 +38,12 @@ export const BackendProvider = ({ ...props }) => {
3938
const data = await loadData(configToUse.connectionConfig)
4039
setGroupedMergeRequests(data.groupedMergeRequests)
4140
setMergeRequestWithProjects(data.mergeRequestWithProjects)
42-
setLoadErrors(0)
4341

4442
const numberOfOpenMergeRequest = data.mergeRequestWithProjects.reduce((total, entry) => total + (entry.work_in_progress ? 0 : 1), 0)
4543
ipcRenderer.send('update-open-merge-requests', numberOfOpenMergeRequest)
4644
}
4745
} catch (error) {
4846
log.error('Could not load the merge requests', error)
49-
setLoadErrors(loadErrors + 1)
50-
if (loadErrors > 2) {
51-
setGroupedMergeRequests(undefined)
52-
setMergeRequestWithProjects(undefined)
53-
}
5447
} finally {
5548
setIsLoading(false)
5649
}

0 commit comments

Comments
 (0)