/* eslint-disable jsx-a11y/no-static-element-interactions */ /* eslint-disable jsx-a11y/click-events-have-key-events */ import './Integrations.styles.scss'; import { Color } from '@signozhq/design-tokens'; import { Button, List, Typography } from 'antd'; import { useGetAllIntegrations } from 'hooks/Integrations/useGetAllIntegrations'; import { MoveUpRight, RotateCw } from 'lucide-react'; import { Dispatch, SetStateAction, useMemo } from 'react'; import { isCloudUser } from 'utils/app'; import { handleContactSupport } from './utils'; interface IntegrationsListProps { setSelectedIntegration: (id: string) => void; setActiveDetailTab: Dispatch>; searchTerm: string; } function IntegrationsList(props: IntegrationsListProps): JSX.Element { const { setSelectedIntegration, searchTerm, setActiveDetailTab } = props; const { data, isFetching, isLoading, isRefetching, isError, refetch, } = useGetAllIntegrations(); const filteredDataList = useMemo(() => { if (data?.data.data.integrations) { return data?.data.data.integrations.filter((item) => item.title.toLowerCase().includes(searchTerm.toLowerCase()), ); } return []; }, [data?.data.data.integrations, searchTerm]); const loading = isLoading || isFetching || isRefetching; return (
{!loading && isError && (
error-emoji Something went wrong :/ Please retry or contact support.
handleContactSupport(isCloudUser())} > Contact Support
)} {!isError && ( ( { setSelectedIntegration(item.id); setActiveDetailTab('overview'); }} >
{item.title}
{item.title} {item.description}
)} /> )}
); } export default IntegrationsList;