Skip to content

Commit e4e2eb4

Browse files
authored
Replace loading text with progress bar (#51)
1 parent dda5851 commit e4e2eb4

File tree

5 files changed

+61
-38
lines changed

5 files changed

+61
-38
lines changed

package.json

-3
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@
99
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore"
1010
},
1111
"dependencies": {
12-
"@fortawesome/fontawesome-svg-core": "^6.4.0",
13-
"@fortawesome/free-solid-svg-icons": "^6.4.0",
14-
"@fortawesome/vue-fontawesome": "^3.0.3",
1512
"ansi-to-html": "^0.7.2",
1613
"axios": "^1.4.0",
1714
"lodash": "^4.17.21",

src/App.vue

+13-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
<template>
22
<h1>QMK API Keyboard Status</h1>
33
<div v-if="loading" id="loading">
4-
<font-awesome-icon icon="atom" spin size="6x" fixed-width />
5-
<h2>Loading Data… {{ loadProgress }}%</h2>
4+
<ProgressBar :progress="loadProgress" />
65
</div>
76
<div v-else>
87
<input v-model="filter" id="filter" placeholder="filter keyboards" />
@@ -16,7 +15,12 @@
1615
<BuildList :list="passingKeyboards" :filter="filter" @show-error-pane="showErrors">
1716
Builds Passing
1817
</BuildList>
19-
<ErrorPane :visible="showErrorPane" :error-log="errorLog" :loading="errorLogLoading" @backdrop-clicked="hideErrors" />
18+
<ErrorPane
19+
:visible="showErrorPane"
20+
:error-log="errorLog"
21+
:loading="errorLogLoading"
22+
@backdrop-clicked="hideErrors"
23+
/>
2024
</div>
2125
</template>
2226

@@ -28,6 +32,7 @@ import reduce from 'lodash/reduce'
2832
2933
import BuildList from '@/components/BuildList.vue'
3034
import ErrorPane from '@/components/ErrorPane.vue'
35+
import ProgressBar from '@/components/ProgressBar.vue'
3136
3237
let buildLog = {}
3338
@@ -89,7 +94,7 @@ async function loadBuildLog(keyboard) {
8994
buildLog[keyboard].message = `ERROR: ${e.message}`
9095
}
9196
92-
errorLogLoading.value = false;
97+
errorLogLoading.value = false
9398
errorLog.value = buildLog[keyboard].message
9499
}
95100
@@ -176,6 +181,10 @@ body {
176181
177182
#loading {
178183
margin-top: 1em;
184+
display: flex;
185+
flex-direction: column;
186+
align-items: center;
187+
gap: 32px;
179188
}
180189
181190
@media (max-width: 640px) {

src/components/ProgressBar.vue

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<template>
2+
<div class="progress-bar">
3+
<div class="filled" :style="style"></div>
4+
</div>
5+
</template>
6+
7+
<script setup>
8+
import { computed } from 'vue'
9+
10+
const props = defineProps({
11+
progress: {
12+
type: Number,
13+
required: true
14+
}
15+
})
16+
17+
const style = computed(() => {
18+
return {
19+
width: `${props.progress}%`
20+
}
21+
})
22+
</script>
23+
24+
<style scoped>
25+
.progress-bar {
26+
height: 8px;
27+
width: 400px;
28+
border: 2px solid #2c3e50;
29+
padding: 2px;
30+
border-radius: 16px;
31+
}
32+
33+
.progress-bar .filled {
34+
height: 8px;
35+
background-color: #2c3e50;
36+
transition: width 0.2s;
37+
border-radius: 4px;
38+
}
39+
40+
@media (prefers-color-scheme: dark) {
41+
.progress-bar {
42+
border-color: #ced9e4;
43+
}
44+
.progress-bar .filled {
45+
background-color: #ced9e4;
46+
}
47+
}
48+
</style>

src/main.js

-7
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,5 @@
11
import { createApp } from 'vue'
22
import App from './App.vue'
33

4-
import { library } from '@fortawesome/fontawesome-svg-core'
5-
import { faAtom } from '@fortawesome/free-solid-svg-icons'
6-
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
7-
8-
library.add(faAtom)
9-
104
const app = createApp(App)
11-
app.component('font-awesome-icon', FontAwesomeIcon)
125
app.mount('#app')

yarn.lock

-24
Original file line numberDiff line numberDiff line change
@@ -149,30 +149,6 @@
149149
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.39.0.tgz#58b536bcc843f4cd1e02a7e6171da5c040f4d44b"
150150
integrity sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==
151151

152-
"@fortawesome/[email protected]":
153-
version "6.4.0"
154-
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.0.tgz#88da2b70d6ca18aaa6ed3687832e11f39e80624b"
155-
integrity sha512-HNii132xfomg5QVZw0HwXXpN22s7VBHQBv9CeOu9tfJnhsWQNd2lmTNi8CSrnw5B+5YOmzu1UoPAyxaXsJ6RgQ==
156-
157-
"@fortawesome/fontawesome-svg-core@^6.4.0":
158-
version "6.4.0"
159-
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.0.tgz#3727552eff9179506e9203d72feb5b1063c11a21"
160-
integrity sha512-Bertv8xOiVELz5raB2FlXDPKt+m94MQ3JgDfsVbrqNpLU9+UE2E18GKjLKw+d3XbeYPqg1pzyQKGsrzbw+pPaw==
161-
dependencies:
162-
"@fortawesome/fontawesome-common-types" "6.4.0"
163-
164-
"@fortawesome/free-solid-svg-icons@^6.4.0":
165-
version "6.4.0"
166-
resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.0.tgz#48c0e790847fa56299e2f26b82b39663b8ad7119"
167-
integrity sha512-kutPeRGWm8V5dltFP1zGjQOEAzaLZj4StdQhWVZnfGFCvAPVvHh8qk5bRrU4KXnRRRNni5tKQI9PBAdI6MP8nQ==
168-
dependencies:
169-
"@fortawesome/fontawesome-common-types" "6.4.0"
170-
171-
"@fortawesome/vue-fontawesome@^3.0.3":
172-
version "3.0.3"
173-
resolved "https://registry.yarnpkg.com/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.0.3.tgz#633e2998d11f7d4ed41f0d5ea461a22ec9b9d034"
174-
integrity sha512-KCPHi9QemVXGMrfuwf3nNnNo129resAIQWut9QTAMXmXqL2ErABC6ohd2yY5Ipq0CLWNbKHk8TMdTXL/Zf3ZhA==
175-
176152
"@humanwhocodes/config-array@^0.11.8":
177153
version "0.11.8"
178154
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9"

0 commit comments

Comments
 (0)