45 lines
1.6 KiB
JavaScript
45 lines
1.6 KiB
JavaScript
const fs = require('fs');
|
|
let tile = fs.readFileSync('src/components/MediaTile.tsx', 'utf8');
|
|
|
|
const oldRender = `) : (
|
|
/* eslint-disable-next-line @next/next/no-img-element */
|
|
<img
|
|
src={isVideo ? \`/api/media/\${item.relativePath}?type=poster\` : \`/api/media/\${item.relativePath}?type=thumb\`}
|
|
alt={item.filename}
|
|
loading="lazy"
|
|
onLoad={(e) => {
|
|
const target = e.target as HTMLImageElement;
|
|
target.parentElement?.classList.remove('loading-skeleton');
|
|
}}
|
|
/>
|
|
)}`;
|
|
|
|
const newRender = `) : isVideo ? (
|
|
<video
|
|
src={\`/api/media/\${item.relativePath}?type=preview\`}
|
|
poster={\`/api/media/\${item.relativePath}?type=poster\`}
|
|
autoPlay
|
|
muted
|
|
loop
|
|
playsInline
|
|
onLoadedData={(e) => {
|
|
const target = e.target as HTMLVideoElement;
|
|
target.parentElement?.classList.remove('loading-skeleton');
|
|
}}
|
|
/>
|
|
) : (
|
|
/* eslint-disable-next-line @next/next/no-img-element */
|
|
<img
|
|
src={\`/api/media/\${item.relativePath}?type=thumb\`}
|
|
alt={item.filename}
|
|
loading="lazy"
|
|
onLoad={(e) => {
|
|
const target = e.target as HTMLImageElement;
|
|
target.parentElement?.classList.remove('loading-skeleton');
|
|
}}
|
|
/>
|
|
)}`;
|
|
|
|
tile = tile.replace(oldRender, newRender);
|
|
fs.writeFileSync('src/components/MediaTile.tsx', tile, 'utf8');
|