Skip to content

Commit

Permalink
explicit load image with abortable
Browse files Browse the repository at this point in the history
  • Loading branch information
sgratzl committed May 28, 2019
1 parent 35aca23 commit 6562298
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 13 deletions.
24 changes: 23 additions & 1 deletion src/renderer/ImageCellRenderer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@ import {Column, IDataRow, LinkColumn} from '../model';
import {ERenderMode, ICellRendererFactory} from './interfaces';
import {renderMissingDOM} from './missing';
import {noRenderer} from './utils';
import {abortAble} from 'lineupengine';

function loadImage(src: string) {
return new Promise<HTMLImageElement>((resolve) => {
const image = new Image();
image.onload = () => resolve(image);
image.src = src;
});
}

/** @internal */
export default class ImageCellRenderer implements ICellRendererFactory {
Expand All @@ -16,9 +25,22 @@ export default class ImageCellRenderer implements ICellRendererFactory {
template: `<div></div>`,
update: (n: HTMLElement, d: IDataRow) => {
const missing = renderMissingDOM(n, col, d);
n.style.backgroundImage = null;
if (missing) {
n.title = '';
return;
}
const v = col.getLink(d);
n.title = v ? v.alt : '';
n.style.backgroundImage = missing || !v ? null : `url('${v.href}')`;
if (!v) {
return;
}
return abortAble(loadImage(v.href)).then((image) => {
if (typeof image === 'symbol') {
return;
}
n.style.backgroundImage = missing || !v ? null : `url('${image.src}')`;
})
}
};
}
Expand Down
12 changes: 0 additions & 12 deletions src/styles/renderer/_image.scss
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,4 @@
background-size: contain;
background-position: center;
background-repeat: no-repeat;

&:not(.#{$lu_css_prefix}-missing)::before {
content: '';
position: absolute;
width: 100%;
height: 100%;
background: $engine_loading_image;
background-position: center;
background-repeat: no-repeat;
background-blend-mode: overlay;
z-index: -1;
}
}

0 comments on commit 6562298

Please sign in to comment.