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; }