import React, { useRef, forwardRef } from 'react'; import get from 'lodash/get'; import { IconCaretDown } from '@tabler/icons'; import Dropdown from 'components/Dropdown'; import { useDispatch } from 'react-redux'; import { updateCollectionAuthMode } from 'providers/ReduxStore/slices/collections'; import { humanizeRequestAuthMode } from 'utils/collections'; import StyledWrapper from './StyledWrapper'; const AuthMode = ({ collection }) => { const dispatch = useDispatch(); const dropdownTippyRef = useRef(); const onDropdownCreate = (ref) => (dropdownTippyRef.current = ref); const authMode = get(collection, 'root.request.auth.mode'); const Icon = forwardRef((props, ref) => { return (
{humanizeRequestAuthMode(authMode)}
); }); const onModeChange = (value) => { dispatch( updateCollectionAuthMode({ collectionUid: collection.uid, mode: value }) ); }; return (
} placement="bottom-end">
{ dropdownTippyRef.current.hide(); onModeChange('basic'); }} > Basic Auth
{ dropdownTippyRef.current.hide(); onModeChange('bearer'); }} > Bearer Token
{ dropdownTippyRef.current.hide(); onModeChange('none'); }} > No Auth
); }; export default AuthMode;