import React, { useRef } from 'react' import { FormGroup, FormSelect } from 'react-bootstrap' import type { SpotlightFocusRid } from 'sora-js-sdk' import { requestSpotlightRid } from '@/api' import { setAPIErrorAlertMessage, setAPIInfoAlertMessage } from '@/app/actions' import { useAppDispatch, useAppSelector } from '@/app/hooks' import { SPOTLIGHT_FOCUS_RIDS } from '@/constants' type Props = { sendConnectionId: string } export const RequestSpotlightRidBySendConnectionIdButton: React.FC = (props) => { const focusRidRef = useRef(null) const unfocusRidRef = useRef(null) const sora = useAppSelector((state) => state.soraContents.sora) const channelId = useAppSelector((state) => state.channelId) const apiUrl = useAppSelector((state) => state.apiUrl) const dispatch = useAppDispatch() if (!sora?.connectionId) { return null } const onClick = async (): Promise => { if (!sora?.connectionId) { return } if (focusRidRef.current === null || unfocusRidRef.current === null) { return } const focusRid = focusRidRef.current.value as SpotlightFocusRid const unfocusRid = unfocusRidRef.current.value as SpotlightFocusRid try { const response = await requestSpotlightRid( apiUrl, channelId, sora.connectionId, focusRid, unfocusRid, props.sendConnectionId, ) dispatch(setAPIInfoAlertMessage(`POST successed. response: ${JSON.stringify(response)}`)) } catch (error) { if (error instanceof Error) { dispatch(setAPIErrorAlertMessage(error.message)) } } } return (
{SPOTLIGHT_FOCUS_RIDS.map((value) => { if (value === '') { return null } return ( ) })} {SPOTLIGHT_FOCUS_RIDS.map((value) => { if (value === '') { return null } return ( ) })}
) }