mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-01-16 14:06:49 +01:00
51 lines
1.6 KiB
TypeScript
51 lines
1.6 KiB
TypeScript
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<string, boolean>) => {
|
|
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 <EmptyStateText>No Authentication {request.authenticationType}</EmptyStateText>;
|
|
}
|
|
|
|
return (
|
|
<DynamicForm
|
|
autocompleteVariables
|
|
useTemplating
|
|
stateKey={`auth.${request.id}.${request.authenticationType}`}
|
|
config={auth.config}
|
|
data={request.authentication}
|
|
onChange={handleChange}
|
|
/>
|
|
);
|
|
}
|