From 59fbbd95fa643e417c3c9c5bbea8878a24f4e9e2 Mon Sep 17 00:00:00 2001 From: gbpark Date: Wed, 6 May 2026 22:46:42 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=B0=A9=EC=9E=AC=20=EC=8B=9C=EC=8A=A4?= =?UTF-8?q?=ED=85=9C=20=ED=99=94=EC=9E=AC=20=EC=95=8C=EB=9E=8C=20=EB=AA=A8?= =?UTF-8?q?=EB=8B=88=ED=84=B0=EB=A7=81=20=EB=8D=B0=EB=AA=A8=20=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - /fire-alarm 라우트에 invyone 브랜딩 적용된 모니터링 데모 추가 - CCTV 화면은 화재 감지 → 스프링쿨러 작동 2개 영상을 순차 재생 (단일 합본 mp4 의 ended 이벤트 불안정 + 루프 이슈로 분리) - v1 종료 시점에 자동 phase2 전환: 스프링쿨러/방화셔터 상태 활성화 - 정보 패널 스프링쿨러 상태 텍스트에 시안 글로우 펄스로 작동 표시 - 종료 검출 3중 방어 (timeupdate / ended / hard-stop timer) Co-Authored-By: Claude Opus 4.7 (1M context) --- frontend/app/(main)/fire-alarm/page.tsx | 27 + frontend/public/fire-alarm-demo/index.html | 1843 +++++++++++++++++ .../public/fire-alarm-demo/video/concat.txt | 2 + .../fire-alarm-demo/video/fire-1-detected.mp4 | Bin 0 -> 2269327 bytes .../video/fire-2-suppressed.mp4 | Bin 0 -> 2743546 bytes 5 files changed, 1872 insertions(+) create mode 100644 frontend/app/(main)/fire-alarm/page.tsx create mode 100644 frontend/public/fire-alarm-demo/index.html create mode 100644 frontend/public/fire-alarm-demo/video/concat.txt create mode 100644 frontend/public/fire-alarm-demo/video/fire-1-detected.mp4 create mode 100644 frontend/public/fire-alarm-demo/video/fire-2-suppressed.mp4 diff --git a/frontend/app/(main)/fire-alarm/page.tsx b/frontend/app/(main)/fire-alarm/page.tsx new file mode 100644 index 00000000..bba338c7 --- /dev/null +++ b/frontend/app/(main)/fire-alarm/page.tsx @@ -0,0 +1,27 @@ +"use client"; + +import { Suspense } from "react"; + +function FireAlarmIframe() { + return ( +