mirror of
https://github.com/karl0ss/homepage.git
synced 2025-05-01 13:09:31 +01:00
add mjpeg stream widget
This commit is contained in:
parent
15bf55952b
commit
ba19f77b8f
@ -296,6 +296,7 @@ export function cleanServiceGroups(groups) {
|
|||||||
userEmail, // azuredevops
|
userEmail, // azuredevops
|
||||||
repositoryId,
|
repositoryId,
|
||||||
metric, // glances
|
metric, // glances
|
||||||
|
stream, // mjpeg
|
||||||
} = cleanedService.widget;
|
} = cleanedService.widget;
|
||||||
|
|
||||||
let fieldsList = fields;
|
let fieldsList = fields;
|
||||||
@ -362,6 +363,9 @@ export function cleanServiceGroups(groups) {
|
|||||||
if (type === "glances") {
|
if (type === "glances") {
|
||||||
if (metric) cleanedService.widget.metric = metric;
|
if (metric) cleanedService.widget.metric = metric;
|
||||||
}
|
}
|
||||||
|
if (type === "mjpeg") {
|
||||||
|
if (stream) cleanedService.widget.stream = stream;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return cleanedService;
|
return cleanedService;
|
||||||
|
@ -46,6 +46,7 @@ const components = {
|
|||||||
minecraft: dynamic(() => import("./minecraft/component")),
|
minecraft: dynamic(() => import("./minecraft/component")),
|
||||||
miniflux: dynamic(() => import("./miniflux/component")),
|
miniflux: dynamic(() => import("./miniflux/component")),
|
||||||
mikrotik: dynamic(() => import("./mikrotik/component")),
|
mikrotik: dynamic(() => import("./mikrotik/component")),
|
||||||
|
mjpeg: dynamic(() => import("./mjpeg/component")),
|
||||||
moonraker: dynamic(() => import("./moonraker/component")),
|
moonraker: dynamic(() => import("./moonraker/component")),
|
||||||
mylar: dynamic(() => import("./mylar/component")),
|
mylar: dynamic(() => import("./mylar/component")),
|
||||||
navidrome: dynamic(() => import("./navidrome/component")),
|
navidrome: dynamic(() => import("./navidrome/component")),
|
||||||
|
17
src/widgets/mjpeg/component.jsx
Normal file
17
src/widgets/mjpeg/component.jsx
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import Image from "next/image";
|
||||||
|
|
||||||
|
export default function Component({ service }) {
|
||||||
|
const { widget } = service;
|
||||||
|
const { stream } = widget;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<div className="absolute top-0 bottom-0 right-0 left-0">
|
||||||
|
<Image layout="fill" objectFit="fill" className="blur-md" src={stream} alt="stream" />
|
||||||
|
<Image layout="fill" objectFit="contain" 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" />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
8
src/widgets/mjpeg/widget.js
Normal file
8
src/widgets/mjpeg/widget.js
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import genericProxyHandler from "utils/proxy/handlers/generic";
|
||||||
|
|
||||||
|
const widget = {
|
||||||
|
api: "{url}/{endpoint}",
|
||||||
|
proxyHandler: genericProxyHandler,
|
||||||
|
};
|
||||||
|
|
||||||
|
export default widget;
|
@ -40,6 +40,7 @@ import medusa from "./medusa/widget";
|
|||||||
import minecraft from "./minecraft/widget";
|
import minecraft from "./minecraft/widget";
|
||||||
import miniflux from "./miniflux/widget";
|
import miniflux from "./miniflux/widget";
|
||||||
import mikrotik from "./mikrotik/widget";
|
import mikrotik from "./mikrotik/widget";
|
||||||
|
import mjpeg from "./mjpeg/widget";
|
||||||
import moonraker from "./moonraker/widget";
|
import moonraker from "./moonraker/widget";
|
||||||
import mylar from "./mylar/widget";
|
import mylar from "./mylar/widget";
|
||||||
import navidrome from "./navidrome/widget";
|
import navidrome from "./navidrome/widget";
|
||||||
@ -134,6 +135,7 @@ const widgets = {
|
|||||||
minecraft,
|
minecraft,
|
||||||
miniflux,
|
miniflux,
|
||||||
mikrotik,
|
mikrotik,
|
||||||
|
mjpeg,
|
||||||
moonraker,
|
moonraker,
|
||||||
mylar,
|
mylar,
|
||||||
navidrome,
|
navidrome,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user