import React, { useMemo } from 'react'; import get from 'lodash/get'; import AwsV4Auth from './AwsV4Auth'; import BearerAuth from './BearerAuth'; import BasicAuth from './BasicAuth'; import DigestAuth from './DigestAuth'; import WsseAuth from './WsseAuth'; import NTLMAuth from './NTLMAuth'; import OAuth1 from './OAuth1'; import { updateAuth } from 'providers/ReduxStore/slices/collections'; import { saveRequest } from 'providers/ReduxStore/slices/collections/actions'; import { useDispatch } from 'react-redux'; import ApiKeyAuth from './ApiKeyAuth'; import EdgeGridAuth from './EdgeGridAuth'; import StyledWrapper from './StyledWrapper'; import { humanizeRequestAuthMode } from 'utils/collections'; import OAuth2 from './OAuth2/index'; import { getEffectiveAuthSource } from 'utils/auth'; const Auth = ({ item, collection }) => { const dispatch = useDispatch(); const authMode = item.draft ? get(item, 'draft.request.auth.mode') : get(item, 'request.auth.mode'); // Create a request object to pass to the auth components const request = item.draft ? get(item, 'draft.request', {}) : get(item, 'request', {}); // Save function for request level const save = () => { return dispatch(saveRequest(item.uid, collection.uid)); }; const inheritedSource = useMemo( () => (authMode === 'inherit' ? getEffectiveAuthSource(collection, item) : null), [authMode, item, collection] ); const getAuthView = () => { switch (authMode) { case 'none': { return