Files
go-service/cmd/server/web/js/camera.js

77 lines
1.5 KiB
JavaScript

// camera.js
import { updateResizerVisibility } from './layout.js';
let rightPanel;
let camImage;
let camClose;
let isOpen = false;
export function initCamera() {
rightPanel = document.getElementById("rightPanel");
camImage = document.getElementById("camImage");
camClose = document.getElementById("camClose");
const btn = document.getElementById("camToggle");
const streamUrl = "/api/cam";
function open() {
if (isOpen) return;
isOpen = true;
rightPanel.classList.remove("hidden");
camImage.src = streamUrl;
if (btn) {
btn.querySelector('.cam-btn-text').textContent = 'Скрыть';
}
console.log("[camera] opened");
updateResizerVisibility();
}
function close() {
if (!isOpen) return;
isOpen = false;
// остановка stream
camImage.src = "";
rightPanel.classList.add("hidden");
if (btn) {
btn.querySelector('.cam-btn-text').textContent = 'Камера';
}
console.log("[camera] closed");
updateResizerVisibility();
}
function toggle() {
if (isOpen) {
close();
} else {
open();
}
}
camImage.onload = () => {
console.log("[camera] stream started");
};
camImage.onerror = (e) => {
console.error("[camera] stream error", e);
};
btn?.addEventListener("click", toggle);
camClose?.addEventListener("click", close);
// автозапуск
open();
}