/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import Spinner from 'ink-spinner'; import { type ComponentProps, useEffect } from 'react'; import { debugState } from '../debug.js'; import { useSettings } from '../contexts/SettingsContext.js'; export type SpinnerProps = ComponentProps; export const CliSpinner = (props: SpinnerProps) => { const settings = useSettings(); const shouldShow = settings.merged.ui?.showSpinner !== false; useEffect(() => { if (shouldShow) { debugState.debugNumAnimatedComponents++; return () => { debugState.debugNumAnimatedComponents--; }; } return undefined; }, [shouldShow]); if (!shouldShow) { return null; } return ; };