import type { GrpcRequest, HttpRequest } from '@yaakapp-internal/models'; import React, { useCallback } from 'react'; import { useHttpAuthentication } from '../hooks/useHttpAuthentication'; import { useUpdateAnyGrpcRequest } from '../hooks/useUpdateAnyGrpcRequest'; import { useUpdateAnyHttpRequest } from '../hooks/useUpdateAnyHttpRequest'; import { DynamicForm } from './DynamicForm'; import { EmptyStateText } from './EmptyStateText'; interface Props { request: HttpRequest | GrpcRequest; } export function HttpAuthenticationEditor({ request }: Props) { const updateHttpRequest = useUpdateAnyHttpRequest(); const updateGrpcRequest = useUpdateAnyGrpcRequest(); const auths = useHttpAuthentication(); const auth = auths.find((a) => a.name === request.authenticationType); const handleChange = useCallback( (authentication: Record) => { if (request.model === 'http_request') { updateHttpRequest.mutate({ id: request.id, update: (r) => ({ ...r, authentication }), }); } else { updateGrpcRequest.mutate({ id: request.id, update: (r) => ({ ...r, authentication }), }); } }, [request.id, request.model, updateGrpcRequest, updateHttpRequest], ); if (auth == null) { return No Authentication {request.authenticationType}; } return ( ); }