Kaynağa Gözat

Merge pull request #2831 from bodnia/fix-2796

fix badge async load
bubble
Anna 7 yıl önce
committed by GitHub
ebeveyn
işleme
af0088ccca
3 değiştirilmiş dosya ile 58 ekleme ve 6 silme
  1. +4
    -4
      dist/swagger-ui.js
  2. +1
    -1
      dist/swagger-ui.js.map
  3. +53
    -1
      src/core/components/online-validator-badge.jsx

+ 4
- 4
dist/swagger-ui.js
Dosya farkı çok büyük olduğundan ihmal edildi
Dosyayı Görüntüle


+ 1
- 1
dist/swagger-ui.js.map Dosyayı Görüntüle

@@ -1 +1 @@
{"version":3,"file":"swagger-ui.js","sources":["webpack:///swagger-ui.js"],"mappings":"AAAA;AAsoGA;AAy4HA;AA+7FA;AA2mCA;AAg+BA;AAyiCA;AAu5BA","sourceRoot":""}
{"version":3,"file":"swagger-ui.js","sources":["webpack:///swagger-ui.js"],"mappings":"AAAA;AAsoGA;AAy4HA;AA+7FA;AA2mCA;AAm/BA;AAgiCA;AA25BA","sourceRoot":""}

+ 53
- 1
src/core/components/online-validator-badge.jsx Dosyayı Görüntüle

@@ -40,8 +40,60 @@ export default class OnlineValidatorBadge extends React.Component {

return (<span style={{ float: "right"}}>
<a target="_blank" href={`${ this.state.validatorUrl }/debug?url=${ this.state.url }`}>
<img alt="Online validator badge" src={`${ this.state.validatorUrl }?url=${ this.state.url }`} />
<ValidatorImage src={`${ this.state.validatorUrl }?url=${ this.state.url }`} alt="Online validator badge"/>
</a>
</span>)
}
}


class ValidatorImage extends React.Component {
constructor(props) {
super(props);
this.state = {
loaded: false,
error: false
};
}

componentDidMount() {
const img = new Image();
img.onload = () => {
this.setState({
loaded: true
});
}
img.onerror = () => {
this.setState({
error: true
});
}
img.src = this.props.src;
}

componentWillReceiveProps(nextProps) {
if (nextProps.src !== this.props.src) {
const img = new Image();
img.onload = () => {
this.setState({
loaded: true
});
}
img.onerror = () => {
this.setState({
error: true
});
}
img.src = nextProps.src;
}
}

render() {
if (this.state.error) {
return <img alt={"Error"} />
} else if (!this.state.loaded) {
return <img alt= {"Loading..."} />
}
return <img src={this.props.src} alt={this.props.alt} />
}
}

Yükleniyor…
İptal
Kaydet