import React, { useCallback, useContext } from 'react' import { useIntegration, useDecision, FallbackComponentProps, } from '@consent-manager/core' import clsx from 'clsx' import { Trans } from './trans' import { ButtonProps, Styles, IconProps } from '.' import { IntegrationLabel } from './integration-label' import { ConsentManagerDefaultInterfaceContext } from './context' interface StyleableFallbackComponentProps extends FallbackComponentProps { styles: Styles Button: React.ComponentType ToggleIcon: React.ComponentType } export const FallbackComponent: React.FC = ({ integrationId, Button, styles, ToggleIcon, }) => { const { setFormVisible } = useContext(ConsentManagerDefaultInterfaceContext) const integration = useIntegration(integrationId) const [, setDecision] = useDecision(integrationId) const enableIntegration = useCallback(() => { setDecision(true) }, [setDecision]) if (!integration) { throw new Error(`Integration ${integrationId} could not be found.`) } const { category, title } = integration return (

( ), category, title, }} />
) }