Skip to content

Commit b881199

Browse files
committed
controllers/crate.version: Split documentationLink into multiple properties
1 parent d01c5f1 commit b881199

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

app/models/version.js

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -70,24 +70,35 @@ export default class Version extends Model {
7070
})
7171
loadDocsBuildsTask;
7272

73-
@computed('crate.{documentation,name}', 'num', 'loadDocsBuildsTask.lastSuccessful.value')
73+
@computed('loadDocsBuildsTask.lastSuccessful.value')
74+
get hasDocsRsLink() {
75+
let docsBuilds = this.loadDocsBuildsTask.lastSuccessful?.value;
76+
return docsBuilds && docsBuilds.length !== 0 && docsBuilds[0].build_status === true;
77+
}
78+
79+
get docsRsLink() {
80+
if (this.hasDocsRsLink) {
81+
return `https://docs.rs/${this.crateName}/${this.num}`;
82+
}
83+
}
84+
7485
get documentationLink() {
86+
let crateDocsLink = this.crate.documentation;
87+
7588
// if this is *not* a docs.rs link we'll return it directly
76-
if (this.crate.documentation && !this.crate.documentation.startsWith('https://docs.rs/')) {
77-
return this.crate.documentation;
89+
if (crateDocsLink && !crateDocsLink.startsWith('https://docs.rs/')) {
90+
return crateDocsLink;
7891
}
7992

8093
// if we know about a successful docs.rs build, we'll return a link to that
81-
if (this.loadDocsBuildsTask.lastSuccessful) {
82-
let docsBuilds = this.loadDocsBuildsTask.lastSuccessful.value;
83-
if (docsBuilds.length !== 0 && docsBuilds[0].build_status === true) {
84-
return `https://docs.rs/${this.crateName}/${this.num}`;
85-
}
94+
let { docsRsLink } = this;
95+
if (docsRsLink) {
96+
return docsRsLink;
8697
}
8798

8899
// finally, we'll return the specified documentation link, whatever it is
89-
if (this.crate.documentation) {
90-
return this.crate.documentation;
100+
if (crateDocsLink) {
101+
return crateDocsLink;
91102
}
92103

93104
return null;

0 commit comments

Comments
 (0)