PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.3.3
Presto Player v4.3.3
4.3.3 4.3.2 4.3.1 4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / src / admin / dashboard / lib / bsf-learn / components / learn-how / Image.js
presto-player / src / admin / dashboard / lib / bsf-learn / components / learn-how Last commit date
Button.js 2 months ago Checklist.js 2 months ago Image.js 2 months ago Link.js 2 months ago List.js 2 months ago Paragraph.js 2 months ago RenderContent.js 2 months ago Video.js 2 months ago
Image.js
24 lines
1 import { useState } from 'react';
2 import { Skeleton } from '@bsf/force-ui';
3
4 const Image = ( { src, alt } ) => {
5 const [ isLoaded, setIsLoaded ] = useState( false );
6
7 return (
8 <div className="relative w-full shadow-sm rounded-lg overflow-hidden">
9 { ! isLoaded && (
10 <Skeleton className="w-full h-64" />
11 ) }
12 <img
13 src={ src }
14 alt={ alt || '' }
15 decoding="async"
16 className={ `w-full h-auto border-0.5 border-solid border-border-subtle ${ isLoaded ? 'block' : 'hidden' }` }
17 onLoad={ () => setIsLoaded( true ) }
18 />
19 </div>
20 );
21 };
22
23 export default Image;
24