Inline animated tv static image
This commit is contained in:
parent
ae99eeb32b
commit
2f4e4854b6
@ -1,16 +1,37 @@
|
||||
import Image from "next/image";
|
||||
import { useState } from 'react';
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { widget } = service;
|
||||
const { stream, fit = "contain" } = widget;
|
||||
const [src, setImgSrc] = useState(stream);
|
||||
|
||||
return (
|
||||
<div>
|
||||
<style>{`
|
||||
.tv-static img {
|
||||
display: none !important;
|
||||
}
|
||||
.tv-static {
|
||||
margin: auto;
|
||||
background-image: repeating-radial-gradient(circle at 17% 32%, white, black 0.00085px);
|
||||
animation: tv-static 5s linear infinite;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
@keyframes tv-static {
|
||||
from {
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
to {
|
||||
background-size: 200% 200%;
|
||||
}
|
||||
}
|
||||
`}</style>
|
||||
<div className="absolute top-0 bottom-0 right-0 left-0">
|
||||
<Image layout="fill" objectFit="fill" className="blur-md" src={src} alt="stream" onError={() => setImgSrc('https://images.unsplash.com/photo-1610337673044-720471f83677?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1972&q=80')} />
|
||||
<Image layout="fill" objectFit={fit} className="drop-shadow-2xl" src={src} alt="stream" onError={() => setImgSrc('https://images.unsplash.com/photo-1610337673044-720471f83677?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1972&q=80')} />
|
||||
<Image layout="fill" objectFit="fill" className="blur-md" src={stream} alt="stream" onError={(e) => {e.target.parentElement.parentElement.className='tv-static'}} />
|
||||
<Image layout="fill" objectFit={fit} className="drop-shadow-2xl" src={stream} alt="stream" />
|
||||
</div>
|
||||
<div className="absolute top-0 right-0 bottom-0 left-0 overflow-clip shadow-[inset_0_0_200px_#000] shadow-theme-700/10 dark:shadow-theme-900/10" />
|
||||
<div className="h-[68px] overflow-clip" />
|
||||
|
||||
Loading…
Reference in New Issue
Block a user