Skip to content

Commit 8ba400b

Browse files
committed
fix(ImageLoader): fixed issue where fallback image was not being loaded
1 parent f1c510d commit 8ba400b

File tree

5 files changed

+30
-13
lines changed

5 files changed

+30
-13
lines changed

src/app/app.component.html

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,22 @@ <h3>Top image</h3>
44
[sizes]="sizes"
55
imgClass="img img--top"
66
alt="lorem ipsum"
7-
class="sn-image-loader sn-image-loader--top"
8-
></sn-image-loader>
7+
class="sn-image-loader sn-image-loader--top">
8+
</sn-image-loader>
99

1010
<h1>Scroll down for bottom image ↓</h1>
1111
<h3>Bottom placeholder loaded: <span class="placeholder-boolean">{{ placeholderLoaded }}</span></h3>
1212
<div class="spacer"></div>
1313

1414
<h3>Bottom image</h3>
1515
<sn-image-loader
16-
[image]="image"
17-
[sizes]="sizes"
18-
imgClass="img img--bottom"
19-
alt="lorem ipsum"
20-
(placeholderLoaded)="onPlaceholderLoad($event)"
21-
(imageLoaded)="onImageLoad($event)"
22-
class="sn-image-loader sn-image-loader--bottom"
23-
></sn-image-loader>
16+
[image]="image"
17+
[sizes]="sizes"
18+
imgClass="img img--bottom"
19+
alt="lorem ipsum"
20+
(placeholderLoaded)="onPlaceholderLoad($event)"
21+
(imageLoaded)="onImageLoad($event)"
22+
class="sn-image-loader sn-image-loader--bottom">
23+
</sn-image-loader>
2424
<h3>Bottom image imageLoaded event count: <span class="full-res-count">{{ imageLoadedEventCount }}</span></h3>
2525
<div class="spacer"></div>

src/app/app.component.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import { ImageLoadedEvent } from './image-loader/shared';
99
})
1010
export class AppComponent {
1111
sizes: Breakpoint[] = [
12-
{ size: 'xs', width: 0},
13-
{ size: 'md', width: 768},
14-
{ size: 'lg', width: 992},
12+
{ size: 'xs', width: 0 },
13+
{ size: 'md', width: 768 },
14+
{ size: 'lg', width: 992 },
1515
];
1616

1717
image: ResponsiveImage = {

src/app/image-loader/image-loader.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@
1515
[srcset]="preloadSrcset"
1616
[src]="preloadSrc"
1717
(load)="onImagePreload()"
18+
(error)="onImagePreloadError()"
1819
alt="">

src/app/image-loader/image-loader.component.spec.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,4 +192,10 @@ describe('ImageLoaderComponent', () => {
192192
expect(spy).toHaveBeenCalled();
193193
});
194194

195+
it('should load fallback image', () => {
196+
component.src = '';
197+
component.onImagePreloadError();
198+
expect(component.src).toEqual(image.fallback);
199+
});
200+
195201
});

src/app/image-loader/image-loader.component.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,16 @@ export class ImageLoaderComponent implements OnInit, AfterViewInit, OnDestroy {
295295
this.preloadSrc = '';
296296
this.loaded = true;
297297
}
298+
/**
299+
*
300+
* @memberof ImageLoaderComponent
301+
*/
302+
public onImagePreloadError(): void {
303+
this.srcset = '';
304+
this.src = this.image.fallback;
305+
this.preloadSrc = '';
306+
this.loaded = true;
307+
}
298308
/**
299309
* When the main `img` element has loaded
300310
*

0 commit comments

Comments
 (0)