From 40e11e053c1cf304255c21f91e950c520285c6c5 Mon Sep 17 00:00:00 2001 From: Taylor Mullen Date: Fri, 18 Apr 2025 19:09:41 -0400 Subject: Fix remaining tslint errors (YAY). - Also updated ci.yml to ensure that linting failures will break the build. Fully fixes https://b.corp.google.com/issues/411384603 --- packages/cli/src/ui/components/Footer.tsx | 4 +--- packages/cli/src/ui/components/Header.tsx | 4 +--- packages/cli/src/ui/components/HistoryDisplay.tsx | 14 ++++++-------- packages/cli/src/ui/components/InputPrompt.tsx | 4 +--- packages/cli/src/ui/components/LoadingIndicator.tsx | 4 +--- packages/cli/src/ui/components/Tips.tsx | 4 +--- packages/cli/src/ui/components/messages/DiffRenderer.tsx | 7 ++++--- packages/cli/src/ui/components/messages/ErrorMessage.tsx | 4 +--- .../cli/src/ui/components/messages/GeminiMessage.tsx | 4 +--- packages/cli/src/ui/components/messages/InfoMessage.tsx | 4 +--- .../ui/components/messages/ToolConfirmationMessage.tsx | 16 +++++----------- .../cli/src/ui/components/messages/ToolGroupMessage.tsx | 8 +++----- packages/cli/src/ui/components/messages/ToolMessage.tsx | 6 ++---- packages/cli/src/ui/components/messages/UserMessage.tsx | 4 +--- 14 files changed, 29 insertions(+), 58 deletions(-) (limited to 'packages/cli/src/ui/components') diff --git a/packages/cli/src/ui/components/Footer.tsx b/packages/cli/src/ui/components/Footer.tsx index f2afc1bd..e018780c 100644 --- a/packages/cli/src/ui/components/Footer.tsx +++ b/packages/cli/src/ui/components/Footer.tsx @@ -5,7 +5,7 @@ interface FooterProps { queryLength: number; } -const Footer: React.FC = ({ queryLength }) => ( +export const Footer: React.FC = ({ queryLength }) => ( {queryLength === 0 ? '? for shortcuts' : ''} @@ -13,5 +13,3 @@ const Footer: React.FC = ({ queryLength }) => ( Gemini ); - -export default Footer; diff --git a/packages/cli/src/ui/components/Header.tsx b/packages/cli/src/ui/components/Header.tsx index f8f7d27e..640da5a5 100644 --- a/packages/cli/src/ui/components/Header.tsx +++ b/packages/cli/src/ui/components/Header.tsx @@ -7,7 +7,7 @@ interface HeaderProps { cwd: string; } -const Header: React.FC = ({ cwd }) => ( +export const Header: React.FC = ({ cwd }) => ( <> {/* Static Header Art */} @@ -34,5 +34,3 @@ const Header: React.FC = ({ cwd }) => ( ); - -export default Header; diff --git a/packages/cli/src/ui/components/HistoryDisplay.tsx b/packages/cli/src/ui/components/HistoryDisplay.tsx index 7565c5bc..1c43a67b 100644 --- a/packages/cli/src/ui/components/HistoryDisplay.tsx +++ b/packages/cli/src/ui/components/HistoryDisplay.tsx @@ -1,12 +1,11 @@ import React from 'react'; import { Box } from 'ink'; import type { HistoryItem } from '../types.js'; -import { UI_WIDTH } from '../constants.js'; -import UserMessage from './messages/UserMessage.js'; -import GeminiMessage from './messages/GeminiMessage.js'; -import InfoMessage from './messages/InfoMessage.js'; -import ErrorMessage from './messages/ErrorMessage.js'; -import ToolGroupMessage from './messages/ToolGroupMessage.js'; +import { UserMessage } from './messages/UserMessage.js'; +import { GeminiMessage } from './messages/GeminiMessage.js'; +import { InfoMessage } from './messages/InfoMessage.js'; +import { ErrorMessage } from './messages/ErrorMessage.js'; +import { ToolGroupMessage } from './messages/ToolGroupMessage.js'; import { PartListUnion } from '@google/genai'; interface HistoryDisplayProps { @@ -14,7 +13,7 @@ interface HistoryDisplayProps { onSubmit: (value: PartListUnion) => void; } -const HistoryDisplay: React.FC = ({ +export const HistoryDisplay: React.FC = ({ history, onSubmit, }) => ( @@ -36,4 +35,3 @@ const HistoryDisplay: React.FC = ({ ))} ); -export default HistoryDisplay; diff --git a/packages/cli/src/ui/components/InputPrompt.tsx b/packages/cli/src/ui/components/InputPrompt.tsx index 96089eec..74f45b7f 100644 --- a/packages/cli/src/ui/components/InputPrompt.tsx +++ b/packages/cli/src/ui/components/InputPrompt.tsx @@ -10,7 +10,7 @@ interface InputPromptProps { isActive: boolean; } -const InputPrompt: React.FC = ({ +export const InputPrompt: React.FC = ({ query, setQuery, onSubmit, @@ -33,5 +33,3 @@ const InputPrompt: React.FC = ({ ); }; - -export default InputPrompt; diff --git a/packages/cli/src/ui/components/LoadingIndicator.tsx b/packages/cli/src/ui/components/LoadingIndicator.tsx index 442ddf26..defef06c 100644 --- a/packages/cli/src/ui/components/LoadingIndicator.tsx +++ b/packages/cli/src/ui/components/LoadingIndicator.tsx @@ -8,7 +8,7 @@ interface LoadingIndicatorProps { elapsedTime: number; } -const LoadingIndicator: React.FC = ({ +export const LoadingIndicator: React.FC = ({ isLoading, currentLoadingPhrase, elapsedTime, @@ -30,5 +30,3 @@ const LoadingIndicator: React.FC = ({ ); }; - -export default LoadingIndicator; diff --git a/packages/cli/src/ui/components/Tips.tsx b/packages/cli/src/ui/components/Tips.tsx index aa8d39d6..a7112161 100644 --- a/packages/cli/src/ui/components/Tips.tsx +++ b/packages/cli/src/ui/components/Tips.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { Box, Text } from 'ink'; import { UI_WIDTH } from '../constants.js'; -const Tips: React.FC = () => ( +export const Tips: React.FC = () => ( Tips for getting started: @@ -16,5 +16,3 @@ const Tips: React.FC = () => ( 4. Be specific for the best results. ); - -export default Tips; diff --git a/packages/cli/src/ui/components/messages/DiffRenderer.tsx b/packages/cli/src/ui/components/messages/DiffRenderer.tsx index a45efe2a..0e1f7828 100644 --- a/packages/cli/src/ui/components/messages/DiffRenderer.tsx +++ b/packages/cli/src/ui/components/messages/DiffRenderer.tsx @@ -85,7 +85,7 @@ interface DiffRendererProps { const DEFAULT_TAB_WIDTH = 4; // Spaces per tab for normalization -const DiffRenderer: React.FC = ({ +export const DiffRenderer: React.FC = ({ diffContent, tabWidth = DEFAULT_TAB_WIDTH, }) => { @@ -157,6 +157,9 @@ const DiffRenderer: React.FC = ({ dim = true; prefixSymbol = ' '; break; + default: + throw new Error(`Unknown line type: ${line.type}`); + break; } // Render the line content *after* stripping the calculated *minimum* baseIndentation. @@ -179,5 +182,3 @@ const DiffRenderer: React.FC = ({ ); }; - -export default DiffRenderer; diff --git a/packages/cli/src/ui/components/messages/ErrorMessage.tsx b/packages/cli/src/ui/components/messages/ErrorMessage.tsx index fb7f9fa5..325af44f 100644 --- a/packages/cli/src/ui/components/messages/ErrorMessage.tsx +++ b/packages/cli/src/ui/components/messages/ErrorMessage.tsx @@ -5,7 +5,7 @@ interface ErrorMessageProps { text: string; } -const ErrorMessage: React.FC = ({ text }) => { +export const ErrorMessage: React.FC = ({ text }) => { const prefix = '✕ '; const prefixWidth = prefix.length; @@ -22,5 +22,3 @@ const ErrorMessage: React.FC = ({ text }) => { ); }; - -export default ErrorMessage; diff --git a/packages/cli/src/ui/components/messages/GeminiMessage.tsx b/packages/cli/src/ui/components/messages/GeminiMessage.tsx index ccccbfc6..96773358 100644 --- a/packages/cli/src/ui/components/messages/GeminiMessage.tsx +++ b/packages/cli/src/ui/components/messages/GeminiMessage.tsx @@ -6,7 +6,7 @@ interface GeminiMessageProps { text: string; } -const GeminiMessage: React.FC = ({ text }) => { +export const GeminiMessage: React.FC = ({ text }) => { const prefix = '✦ '; const prefixWidth = prefix.length; @@ -40,5 +40,3 @@ const GeminiMessage: React.FC = ({ text }) => { ); }; - -export default GeminiMessage; diff --git a/packages/cli/src/ui/components/messages/InfoMessage.tsx b/packages/cli/src/ui/components/messages/InfoMessage.tsx index e6f24859..a0d0bfb6 100644 --- a/packages/cli/src/ui/components/messages/InfoMessage.tsx +++ b/packages/cli/src/ui/components/messages/InfoMessage.tsx @@ -5,7 +5,7 @@ interface InfoMessageProps { text: string; } -const InfoMessage: React.FC = ({ text }) => { +export const InfoMessage: React.FC = ({ text }) => { const prefix = 'ℹ '; const prefixWidth = prefix.length; @@ -22,5 +22,3 @@ const InfoMessage: React.FC = ({ text }) => { ); }; - -export default InfoMessage; diff --git a/packages/cli/src/ui/components/messages/ToolConfirmationMessage.tsx b/packages/cli/src/ui/components/messages/ToolConfirmationMessage.tsx index 59c2cc42..15c99850 100644 --- a/packages/cli/src/ui/components/messages/ToolConfirmationMessage.tsx +++ b/packages/cli/src/ui/components/messages/ToolConfirmationMessage.tsx @@ -6,9 +6,9 @@ import { ToolEditConfirmationDetails, ToolConfirmationOutcome, ToolExecuteConfirmationDetails, -} from '../../types.js'; // Adjust path as needed +} from '../../types.js'; import { PartListUnion } from '@google/genai'; -import DiffRenderer from './DiffRenderer.js'; +import { DiffRenderer } from './DiffRenderer.js'; import { UI_WIDTH } from '../../constants.js'; export interface ToolConfirmationMessageProps { @@ -27,9 +27,9 @@ interface InternalOption { value: ToolConfirmationOutcome; } -const ToolConfirmationMessage: React.FC = ({ - confirmationDetails, -}) => { +export const ToolConfirmationMessage: React.FC< + ToolConfirmationMessageProps +> = ({ confirmationDetails }) => { const { onConfirm } = confirmationDetails; useInput((_, key) => { @@ -42,14 +42,11 @@ const ToolConfirmationMessage: React.FC = ({ onConfirm(item.value); }; - let title: string; let bodyContent: React.ReactNode | null = null; // Removed contextDisplay here let question: string; const options: InternalOption[] = []; if (isEditDetails(confirmationDetails)) { - title = 'Edit'; // Title for the outer box - // Body content is now the DiffRenderer, passing filename to it // The bordered box is removed from here and handled within DiffRenderer bodyContent = ; @@ -69,7 +66,6 @@ const ToolConfirmationMessage: React.FC = ({ } else { const executionProps = confirmationDetails as ToolExecuteConfirmationDetails; - title = 'Execute Command'; // Title for the outer box // For execution, we still need context display and description const commandDisplay = {executionProps.command}; @@ -118,5 +114,3 @@ const ToolConfirmationMessage: React.FC = ({ ); }; - -export default ToolConfirmationMessage; diff --git a/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx b/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx index 6644cd5f..9e58651c 100644 --- a/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx +++ b/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { Box } from 'ink'; import { IndividualToolCallDisplay, ToolCallStatus } from '../../types.js'; -import ToolMessage from './ToolMessage.js'; +import { ToolMessage } from './ToolMessage.js'; import { PartListUnion } from '@google/genai'; -import ToolConfirmationMessage from './ToolConfirmationMessage.js'; +import { ToolConfirmationMessage } from './ToolConfirmationMessage.js'; interface ToolGroupMessageProps { toolCalls: IndividualToolCallDisplay[]; @@ -11,7 +11,7 @@ interface ToolGroupMessageProps { } // Main component renders the border and maps the tools using ToolMessage -const ToolGroupMessage: React.FC = ({ +export const ToolGroupMessage: React.FC = ({ toolCalls, onSubmit, }) => { @@ -44,5 +44,3 @@ const ToolGroupMessage: React.FC = ({ ); }; - -export default ToolGroupMessage; diff --git a/packages/cli/src/ui/components/messages/ToolMessage.tsx b/packages/cli/src/ui/components/messages/ToolMessage.tsx index cd18dae2..4bb5ea94 100644 --- a/packages/cli/src/ui/components/messages/ToolMessage.tsx +++ b/packages/cli/src/ui/components/messages/ToolMessage.tsx @@ -3,7 +3,7 @@ import { Box, Text } from 'ink'; import Spinner from 'ink-spinner'; import { ToolCallStatus } from '../../types.js'; import { ToolResultDisplay } from '../../../tools/tools.js'; -import DiffRenderer from './DiffRenderer.js'; +import { DiffRenderer } from './DiffRenderer.js'; import { MarkdownRenderer } from '../../utils/MarkdownRenderer.js'; interface ToolMessageProps { @@ -13,7 +13,7 @@ interface ToolMessageProps { status: ToolCallStatus; } -const ToolMessage: React.FC = ({ +export const ToolMessage: React.FC = ({ name, description, resultDisplay, @@ -70,5 +70,3 @@ const ToolMessage: React.FC = ({ ); }; - -export default ToolMessage; diff --git a/packages/cli/src/ui/components/messages/UserMessage.tsx b/packages/cli/src/ui/components/messages/UserMessage.tsx index 08c0070f..574b11bf 100644 --- a/packages/cli/src/ui/components/messages/UserMessage.tsx +++ b/packages/cli/src/ui/components/messages/UserMessage.tsx @@ -5,7 +5,7 @@ interface UserMessageProps { text: string; } -const UserMessage: React.FC = ({ text }) => { +export const UserMessage: React.FC = ({ text }) => { const prefix = '> '; const prefixWidth = prefix.length; @@ -20,5 +20,3 @@ const UserMessage: React.FC = ({ text }) => { ); }; - -export default UserMessage; -- cgit v1.2.3