@@ -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