import { useHistory } from 'react-router-dom'; import { CreateButton } from 'component/common/CreateButton/CreateButton'; import FormTemplate from 'component/common/FormTemplate/FormTemplate'; import { useContextForm } from '../hooks/useContextForm'; import { ContextForm } from '../ContextForm/ContextForm'; import { CREATE_CONTEXT_FIELD } from 'component/providers/AccessProvider/permissions'; import useContextsApi from 'hooks/api/actions/useContextsApi/useContextsApi'; import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig'; import useUnleashContext from 'hooks/api/getters/useUnleashContext/useUnleashContext'; import useToast from 'hooks/useToast'; import { formatUnknownError } from 'utils/format-unknown-error'; export const CreateContext = () => { const { setToastData, setToastApiError } = useToast(); const { uiConfig } = useUiConfig(); const history = useHistory(); const { contextName, contextDesc, legalValues, stickiness, setContextName, setContextDesc, setLegalValues, setStickiness, getContextPayload, validateContext, clearErrors, setErrors, errors, } = useContextForm(); const { createContext, loading } = useContextsApi(); const { refetch } = useUnleashContext(); const handleSubmit = async (e: Event) => { e.preventDefault(); const validName = await validateContext(); if (validName) { const payload = getContextPayload(); try { await createContext(payload); refetch(); history.push('/context'); setToastData({ title: 'Context created', confetti: true, type: 'success', }); } catch (error: unknown) { setToastApiError(formatUnknownError(error)); } } }; const formatApiCode = () => { return `curl --location --request POST '${ uiConfig.unleashUrl }/api/admin/context' \\ --header 'Authorization: INSERT_API_KEY' \\ --header 'Content-Type: application/json' \\ --data-raw '${JSON.stringify(getContextPayload(), undefined, 2)}'`; }; const onCancel = () => { history.goBack(); }; return ( ); };