import { CableIcon, TrashIcon } from "lucide-react"; import { useRef, useState } from "react"; import { CustomPagination } from "src/components/CustomPagination"; import EmptyState from "src/components/EmptyState"; import Loading from "src/components/Loading"; import ResponsiveLinkButton from "src/components/ResponsiveLinkButton"; import AlbyConnectionCard from "src/components/connections/AlbyConnectionCard"; import AppCard from "src/components/connections/AppCard"; import { ALBY_ACCOUNT_APP_NAME, LIST_APPS_LIMIT, SUBWALLET_APPSTORE_APP_ID, } from "src/constants"; import { useApps } from "src/hooks/useApps"; import { useInfo } from "src/hooks/useInfo"; import { useUnusedApps } from "src/hooks/useUnusedApps"; import { ListAppsResponse } from "src/types"; // display previous page while next page is loading let prevAppsData: ListAppsResponse | undefined; function ConnectedApps() { const { data: info } = useInfo(); const [page, setPage] = useState(1); const { data: appsData } = useApps(LIST_APPS_LIMIT, page, { subWallets: false, }); const appsListRef = useRef(null); const handlePageChange = (page: number) => { setPage(page); appsListRef.current?.scrollIntoView({ behavior: "smooth", block: "start", }); }; const unusedApps = useUnusedApps(); if ((!prevAppsData && !appsData) || !unusedApps || !info) { return ; } if (appsData) { // eslint-disable-next-line react-hooks/globals prevAppsData = appsData; } const { apps, totalCount } = appsData || prevAppsData!; const otherApps = apps .filter((app) => app.name !== ALBY_ACCOUNT_APP_NAME) .filter( (app) => app.metadata?.app_store_app_id !== SUBWALLET_APPSTORE_APP_ID ); return ( <>

Connected Apps

<> {!!unusedApps.length && ( )}
{info.albyAccountConnected && (
)}
{!otherApps.length && ( )} {otherApps.length > 0 && (
{otherApps.map((app, index) => ( ))}
)} ); } export default ConnectedApps;