added advertising

This commit is contained in:
SlimusMinus
2026-09-23 23:38:54 +03:00
parent 3661985a6a
commit 4e20315998
33 changed files with 3351 additions and 18 deletions

View File

@@ -0,0 +1,30 @@
import { useEffect, useState } from 'react';
import { useStompClient } from './useStompClient'; // ваш существующий хук из чата
/**
* STOMP/WebSocket-подписка на статус транскодинга медиа.
* @param {number|string} advertisingId — id сущности
* @param {boolean} enabled — включать подписку
* @param {string} [path="ads"] — сегмент пути (например, "ads" или "fullscreen-ads")
* @returns {string} транскодинг-статус
*/
export function useTranscodingStatusSocket(advertisingId, enabled, path = "ads") {
const [status, setStatus] = useState('PROCESSING');
const stompClient = useStompClient();
useEffect(() => {
if (!enabled || !advertisingId || !stompClient?.connected) return;
const subscription = stompClient.subscribe(
`/topic/${path}/${advertisingId}/status`,
(message) => {
const payload = JSON.parse(message.body);
setStatus(payload.transcodingStatus);
}
);
return () => subscription.unsubscribe();
}, [advertisingId, enabled, path, stompClient]);
return status;
}