import type React from 'react'; import { useEffect } from 'react'; import { AnimatePresence, m } from 'framer-motion'; import { BLE } from '@components/connection/BLE'; import { HTTP } from '@components/connection/HTTP'; import { Serial } from '@components/connection/Serial'; import { Select } from '@components/generic/form/Select'; import { Modal } from '@components/generic/Modal'; import { connectionUrl, setConnection } from '@core/connection'; import { closeConnectionModal, connType, setConnectionParams, setConnType, } from '@core/slices/appSlice'; import { useAppDispatch } from '@hooks/useAppDispatch'; import { useAppSelector } from '@hooks/useAppSelector'; import { Types } from '@meshtastic/meshtasticjs'; export const Connection = (): JSX.Element => { const dispatch = useAppDispatch(); const meshtasticState = useAppSelector((state) => state.meshtastic); const appState = useAppSelector((state) => state.app); useEffect(() => { if (!import.meta.env.VITE_PUBLIC_HOSTED) { dispatch( setConnectionParams({ type: connType.HTTP, params: { address: connectionUrl, tls: false, receiveBatchRequests: false, fetchInterval: 2000, }, }), ); void setConnection(connType.HTTP); } }, [dispatch]); useEffect(() => { if (meshtasticState.ready) { dispatch(closeConnectionModal()); } }, [meshtasticState.ready, dispatch]); return ( {appState.connectionModalOpen && ( { dispatch(closeConnectionModal()); }} >