import React, { useEffect, useRef, useState } from 'react'; import { flushSync } from 'react-dom'; import { api } from '../api.js'; import { connectionAction, connectionDurationParts, copyText, localProxyUrls, subscriptionDomain, subscriptionDaysLeft, subscriptionUsage, } from '../utils/clientControls.js'; import { formatBytes } from '../utils/format.js'; import { instructionBlocks } from '../instructions.js'; const SUBSCRIPTION_REVEAL_DELAY_MS = 1350; const DURATION_MODE_STORAGE_KEY = 'harbor-duration-mode'; function CloudTooltip({ children }) { return {children}; } function InstructionStep({ step }) { if (typeof step === 'string') return step; return ( <> {step.before} {step.link[0]} {step.after} ); } function InstructionBlock({ block, open, onToggle }) { return (