import { AlertCircle, Check, RefreshCwIcon } from 'lucide-react' import { SchemaInstallationStatus } from 'stripe-experiment-sync/supabase' import { hasInstallError, hasUninstallError, isInstalled, isInstalling, isUninstalling, } from './stripe-sync-status' export const StatusDisplay = ({ status, isInstallRequested, isInstallInitiated, isUninstallRequested, isUninstallInitiated, isUpgrade, timedOut, }: { status: SchemaInstallationStatus isInstallRequested: boolean isInstallInitiated: boolean isUninstallRequested: boolean isUninstallInitiated: boolean isUpgrade?: boolean timedOut: boolean }) => { const installed = isInstalled(status) const installError = hasInstallError(status) const uninstallError = hasUninstallError(status) const installInProgress = isInstalling(status) const uninstallInProgress = isUninstalling(status) const installing = (installInProgress || isInstallRequested || isInstallInitiated) && !timedOut const uninstalling = (uninstallInProgress || isUninstallRequested || isUninstallInitiated) && !timedOut if (uninstalling) { return ( Uninstalling... ) } if (uninstallError) { return ( Uninstallation error ) } if (installing) { return ( {isUpgrade ? 'Upgrading...' : 'Installing...'} ) } if (installError) { return ( {isUpgrade ? 'Upgrade error' : 'Installation error'} ) } if (installed) { return ( Installed ) } return ( Not installed ) }