Skip to content

Commit d920fba

Browse files
committed
versions: Improve the loading indicator
This shows a loading indicator for the initial load, and a loading button when loading more.
1 parent 73413fb commit d920fba

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

app/styles/crate/versions.module.css

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,13 @@
2525
> * + * {
2626
margin-top: var(--space-2xs);
2727
}
28+
29+
&:global(.is-empty) {
30+
min-height: calc(2 * var(--space-s) + var(--space-xl));
31+
}
2832
}
2933

30-
.load-more {
34+
.load-more, .loading {
3135
--shadow: 0 1px 3px light-dark(hsla(51, 90%, 42%, .35), #232321);
3236

3337
/* TODO: move to shared */
@@ -36,13 +40,18 @@
3640
border: 0;
3741
padding: 0 var(--space-m);
3842

39-
button {
43+
:not(:global(.is-empty)) + & button {
4044
border-radius: var(--space-3xs);
4145
box-shadow: var(--shadow);
4246
cursor: pointer;
4347
position: relative;
4448
}
4549

50+
:global(.is-empty) + & button {
51+
background-color: transparent;
52+
position: relative;
53+
}
54+
4655
.loading-spinner {
4756
display: inline-flex;
4857
align-items: center;

app/templates/crate/versions.hbs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,27 @@
1616
</div>
1717
</div>
1818

19-
<ul local-class="list">
19+
<ul local-class="list" class="{{unless this.sortedVersions 'is-empty'}}">
2020
{{#each this.sortedVersions as |version|}}
2121
<li>
2222
<VersionList::Row @version={{version}} local-class="row" data-test-version={{version.num}} />
2323
</li>
2424
{{/each}}
2525
</ul>
26-
{{#if this.next_page}}
26+
{{#if this.loadMoreTask.isRunning}}
27+
<div local-class="loading">
28+
<button type="button" data-test-id="loading" disabled={{this.loadMoreTask.isRunning}}
29+
{{on "click" (perform this.loadMoreTask)}}
30+
>
31+
Loading...<LoadingSpinner local-class="loading-spinner" />
32+
</button>
33+
</div>
34+
{{else if this.next_page}}
2735
<div local-class="load-more">
2836
<button type="button" data-test-id="load-more" disabled={{this.loadMoreTask.isRunning}}
2937
{{on "click" (perform this.loadMoreTask)}}
3038
>
3139
Load More
32-
{{#if this.loadMoreTask.isRunning}}
33-
<LoadingSpinner local-class="loading-spinner" />
34-
{{/if}}
3540
</button>
3641
</div>
37-
{{/if}}
42+
{{/if}}

0 commit comments

Comments
 (0)