Skip to content

Commit f0d073b

Browse files
authored
CrateSidebar: Hide "Install" section for yanked versions (#6424)
Yanked versions are only available if a lockfile is still referencing them. We shouldn't show installation instructions for these versions.
1 parent c7c0ae8 commit f0d073b

File tree

2 files changed

+40
-33
lines changed

2 files changed

+40
-33
lines changed

app/components/crate-sidebar.hbs

Lines changed: 35 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -44,41 +44,43 @@
4444
{{/if}}
4545
</div>
4646

47-
<div>
48-
<h2 local-class="heading">Install</h2>
47+
{{#unless @version.yanked}}
48+
<div data-test-install>
49+
<h2 local-class="heading">Install</h2>
4950

50-
<p local-class="copy-help">Run the following Cargo command in your project directory:</p>
51-
{{#if (is-clipboard-supported)}}
52-
<CopyButton
53-
@copyText={{this.cargoAddCommand}}
54-
title="Copy command to clipboard"
55-
local-class="copy-button"
56-
>
57-
<span>{{this.cargoAddCommand}}</span>
58-
{{svg-jar "copy" aria-hidden="true" local-class="copy-icon"}}
59-
</CopyButton>
60-
{{else}}
61-
<code local-class="copy-fallback">
62-
{{this.cargoAddCommand}}
63-
</code>
64-
{{/if}}
51+
<p local-class="copy-help">Run the following Cargo command in your project directory:</p>
52+
{{#if (is-clipboard-supported)}}
53+
<CopyButton
54+
@copyText={{this.cargoAddCommand}}
55+
title="Copy command to clipboard"
56+
local-class="copy-button"
57+
>
58+
<span>{{this.cargoAddCommand}}</span>
59+
{{svg-jar "copy" aria-hidden="true" local-class="copy-icon"}}
60+
</CopyButton>
61+
{{else}}
62+
<code local-class="copy-fallback">
63+
{{this.cargoAddCommand}}
64+
</code>
65+
{{/if}}
6566

66-
<p local-class="copy-help">Or add the following line to your Cargo.toml:</p>
67-
{{#if (is-clipboard-supported)}}
68-
<CopyButton
69-
@copyText={{this.tomlSnippet}}
70-
title="Copy Cargo.toml snippet to clipboard"
71-
local-class="copy-button"
72-
>
73-
<span>{{this.tomlSnippet}}</span>
74-
{{svg-jar "copy" aria-hidden="true" local-class="copy-icon"}}
75-
</CopyButton>
76-
{{else}}
77-
<code local-class="copy-fallback">
78-
{{this.tomlSnippet}}
79-
</code>
80-
{{/if}}
81-
</div>
67+
<p local-class="copy-help">Or add the following line to your Cargo.toml:</p>
68+
{{#if (is-clipboard-supported)}}
69+
<CopyButton
70+
@copyText={{this.tomlSnippet}}
71+
title="Copy Cargo.toml snippet to clipboard"
72+
local-class="copy-button"
73+
>
74+
<span>{{this.tomlSnippet}}</span>
75+
{{svg-jar "copy" aria-hidden="true" local-class="copy-icon"}}
76+
</CopyButton>
77+
{{else}}
78+
<code local-class="copy-fallback">
79+
{{this.tomlSnippet}}
80+
</code>
81+
{{/if}}
82+
</div>
83+
{{/unless}}
8284

8385
<div local-class="links">
8486
{{#if this.showHomepage}}

tests/routes/crate/version/model-test.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ module('Route | crate.version | model() hook', function (hooks) {
2121
assert.dom('[data-test-crate-version]').hasText('v1.2.3');
2222
assert.dom('[data-test-yanked]').exists();
2323
assert.dom('[data-test-docs]').exists();
24+
assert.dom('[data-test-install]').doesNotExist();
2425
assert.dom('[data-test-notification-message]').doesNotExist();
2526
});
2627

@@ -53,6 +54,7 @@ module('Route | crate.version | model() hook', function (hooks) {
5354
assert.dom('[data-test-crate-version]').hasText('v2.0.0');
5455
assert.dom('[data-test-yanked]').doesNotExist();
5556
assert.dom('[data-test-docs]').exists();
57+
assert.dom('[data-test-install]').exists();
5658
assert.dom('[data-test-notification-message]').doesNotExist();
5759
});
5860

@@ -68,6 +70,7 @@ module('Route | crate.version | model() hook', function (hooks) {
6870
assert.dom('[data-test-crate-version]').hasText('v1.0.0');
6971
assert.dom('[data-test-yanked]').doesNotExist();
7072
assert.dom('[data-test-docs]').exists();
73+
assert.dom('[data-test-install]').exists();
7174
assert.dom('[data-test-notification-message]').doesNotExist();
7275
});
7376

@@ -85,6 +88,7 @@ module('Route | crate.version | model() hook', function (hooks) {
8588
assert.dom('[data-test-crate-version]').hasText('v2.0.0-beta.2');
8689
assert.dom('[data-test-yanked]').doesNotExist();
8790
assert.dom('[data-test-docs]').exists();
91+
assert.dom('[data-test-install]').exists();
8892
assert.dom('[data-test-notification-message]').doesNotExist();
8993
});
9094

@@ -100,6 +104,7 @@ module('Route | crate.version | model() hook', function (hooks) {
100104
assert.dom('[data-test-crate-version]').hasText('v2.0.0-beta.1');
101105
assert.dom('[data-test-yanked]').exists();
102106
assert.dom('[data-test-docs]').exists();
107+
assert.dom('[data-test-install]').doesNotExist();
103108
assert.dom('[data-test-notification-message]').doesNotExist();
104109
});
105110
});

0 commit comments

Comments
 (0)