Skip to content

Commit f3a6317

Browse files
committed
🚧 Add progress to loading popup.
- Added asset download progress to loading popup.
1 parent d03c2b6 commit f3a6317

File tree

4 files changed

+47
-4
lines changed

4 files changed

+47
-4
lines changed

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,13 @@
9898
},
9999
"dependencies": {
100100
"deepslate": "^0.19.2",
101+
"easydl": "^1.2.0",
101102
"fflate": "^0.8.2",
102103
"generic-stream": "^1.2.6",
103104
"marked": "^4.3.0",
104105
"marked-gfm-heading-id": "^3.0.0",
105106
"mc-build": "3.3.12",
107+
"request-progress": "^3.0.0",
106108
"svelte-ace": "^1.0.21",
107109
"svelte-dnd-action": "^0.9.38"
108110
}

src/components/animatedJavaLoadingPopup.svelte

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<script lang="ts" context="module">
2+
import { onMount } from 'svelte'
23
import RunningArmorStand from '../assets/armor_stand_running.webp'
34
import { type Valuable } from '../util/stores'
45
</script>
@@ -8,6 +9,8 @@
89
910
export let loaded: Valuable<boolean>
1011
export let offline: Valuable<boolean>
12+
export let progress: Valuable<number>
13+
export let progressLabel: Valuable<string>
1114
</script>
1215

1316
<div class={`floating ${$offline ? 'red-border' : 'blue-border'}`}>
@@ -21,8 +24,14 @@
2124
{:else if $loaded}
2225
<div>{translate('popup.loading.success')}</div>
2326
{:else}
24-
<div class="text">{translate('popup.loading.loading')}</div>
25-
<img src={RunningArmorStand} alt="Running Armor Stand" />
27+
<div style="display: flex; flex-direction:row;">
28+
<div class="text">{translate('popup.loading.loading')}</div>
29+
<img src={RunningArmorStand} alt="Running Armor Stand" />
30+
</div>
31+
{#if $progressLabel !== '' || $progress !== 0}
32+
<div>{$progressLabel}</div>
33+
<progress value={$progress} max="100"></progress>
34+
{/if}
2635
{/if}
2736
</div>
2837

@@ -35,7 +44,7 @@
3544
padding: 8px 16px;
3645
display: flex;
3746
align-items: center;
38-
flex-direction: row;
47+
flex-direction: column;
3948
}
4049
.blue-border {
4150
border: 1px solid var(--color-accent);
@@ -49,6 +58,9 @@
4958
img {
5059
width: 32px;
5160
height: 32px;
52-
margin: -16px -10px;
61+
margin: -4px -10px;
62+
}
63+
progress {
64+
width: 100%;
5365
}
5466
</style>

src/interface/animatedJavaLoadingPopup.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import { Valuable } from '../util/stores'
55

66
const LOADED = new Valuable(false)
77
const OFFLINE = new Valuable(false)
8+
const PROGRESS = new Valuable(0)
9+
const PROGRESS_LABEL = new Valuable('')
810
let activeComponent: SvelteComponent | undefined
911

1012
export async function showLoadingPopup() {
@@ -14,6 +16,8 @@ export async function showLoadingPopup() {
1416
props: {
1517
loaded: LOADED,
1618
offline: OFFLINE,
19+
progress: PROGRESS,
20+
progressLabel: PROGRESS_LABEL,
1721
},
1822
elementSelector() {
1923
return document.body
@@ -41,3 +45,11 @@ export function showOfflineError() {
4145
activeComponent = undefined
4246
}, 10000)
4347
}
48+
49+
export function updateLoadingProgress(progress: number) {
50+
PROGRESS.set(progress)
51+
}
52+
53+
export function updateLoadingProgressLabel(label: string) {
54+
PROGRESS_LABEL.set(label)
55+
}

yarn.lock

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1522,6 +1522,11 @@ dompurify@^3.0.1:
15221522
resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.1.3.tgz#cfe3ce4232c216d923832f68f2aa18b2fb9bd223"
15231523
integrity sha512-5sOWYSNPaxz6o2MUPvtyxTTqR4D3L77pr5rUQoWgD5ROQtVIZQgJkXbo1DLlK3vj11YGw5+LnF4SYti4gZmwng==
15241524

1525+
easydl@^1.2.0:
1526+
version "1.2.0"
1527+
resolved "https://registry.yarnpkg.com/easydl/-/easydl-1.2.0.tgz#b2d8bd7e72c055fedc367db4b7b9585eed55c245"
1528+
integrity sha512-v0PnU1HGqWd6VAiJY6wwzjsznNVTeFV0YgJcv52qLexR9f5ndsPgwu9Dmf9bGC5j2ZKrO9wqORpulDM7WUBNKA==
1529+
15251530
electron@^30.0.2:
15261531
version "30.0.6"
15271532
resolved "https://registry.yarnpkg.com/electron/-/electron-30.0.6.tgz#9ddea5f68396ecca88ad7c2c466a30fc9c16144b"
@@ -2696,6 +2701,13 @@ quick-lru@^5.1.1:
26962701
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
26972702
integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
26982703

2704+
request-progress@^3.0.0:
2705+
version "3.0.0"
2706+
resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe"
2707+
integrity sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==
2708+
dependencies:
2709+
throttleit "^1.0.0"
2710+
26992711
require-directory@^2.1.1:
27002712
version "2.1.1"
27012713
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
@@ -2969,6 +2981,11 @@ three@^0.134.0:
29692981
resolved "https://registry.yarnpkg.com/three/-/three-0.134.0.tgz#d7ad4d85d050da0861bf39749b06ddfb5f17157f"
29702982
integrity sha512-LbBerg7GaSPjYtTOnu41AMp7tV6efUNR3p4Wk5NzkSsNTBuA5mDGOfwwZL1jhhVMLx9V20HolIUo0+U3AXehbg==
29712983

2984+
throttleit@^1.0.0:
2985+
version "1.0.1"
2986+
resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.1.tgz#304ec51631c3b770c65c6c6f76938b384000f4d5"
2987+
integrity sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==
2988+
29722989
tinycolor2@^1.4.2, tinycolor2@^1.6.0:
29732990
version "1.6.0"
29742991
resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.6.0.tgz#f98007460169b0263b97072c5ae92484ce02d09e"

0 commit comments

Comments
 (0)