import { useEffect, useReducer, useRef } from 'react' import { ReplicationItems } from '../Navigation/NavigationMenu/NavigationMenu.constants' import { IconPanel } from 'ui-patterns/IconPanel' import { Dialog, DialogContent, DialogHeader, DialogSection, Heading } from 'ui' import AirbyteConfig from './tools/AirbyteConfig.mdx' import StitchConfig from './tools/StitchConfig.mdx' import FivetranConfig from './tools/FivetranConfig.mdx' import EstuaryConfig from './tools/EstuaryConfig.mdx' const reducer = (_, action: (typeof ReplicationItems)[number] | undefined) => { const url = new URL(document.location.href) if (action) { url.searchParams.set('showSmsProvider', encodeURIComponent(action.name)) } else { url.searchParams.delete('showSmsProvider') } window.history.replaceState(null, '', url) return action } const AuthSmsProviderConfig = () => { const [selectedProvider, setSelectedProvider] = useReducer(reducer, undefined) useEffect(() => { const providerName = new URLSearchParams(document.location.search ?? '').get('showSmsProvider') if (!providerName) return const provider = ReplicationItems.find((item) => item.name === decodeURIComponent(providerName)) if (provider) setSelectedProvider(provider) }, []) const headingRef = useRef(null) return ( <>

Configuring SMS Providers

{ReplicationItems.map((provider) => ( ))}
!open && setSelectedProvider(undefined)} > {selectedProvider && ( { evt.preventDefault() headingRef.current?.focus() }} > {selectedProvider.name} {selectedProvider.name.toLowerCase().includes('airbyte') && } {selectedProvider.name.toLowerCase().includes('estuary') && } {selectedProvider.name.toLowerCase().includes('fivetran') && } {selectedProvider.name.toLowerCase().includes('stitch') && } )} ) } export default AuthSmsProviderConfig