qwen-code/packages/cli/src/ui/hooks/useAppEffects.ts
2025-04-25 13:15:05 -07:00

43 lines
1.2 KiB
TypeScript

/**
* @license
* Copyright 2025 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import { useEffect } from 'react';
import fs from 'fs';
import path from 'path';
import os from 'os';
import { getErrorMessage } from '@gemini-code/server';
const warningsFilePath = path.join(os.tmpdir(), 'gemini-code-cli-warnings.txt');
// Effect to handle startup warnings
export function useStartupWarnings(
setStartupWarnings: React.Dispatch<React.SetStateAction<string[]>>,
) {
useEffect(() => {
try {
if (fs.existsSync(warningsFilePath)) {
const warningsContent = fs.readFileSync(warningsFilePath, 'utf-8');
setStartupWarnings(
warningsContent.split('\n').filter((line) => line.trim() !== ''),
);
try {
fs.unlinkSync(warningsFilePath);
} catch {
setStartupWarnings((prev) => [
...prev,
`Warning: Could not delete temporary warnings file.`,
]);
}
}
} catch (err: unknown) {
setStartupWarnings((prev) => [
...prev,
`Error checking/reading warnings file: ${getErrorMessage(err)}`,
]);
}
}, [setStartupWarnings]); // Include setStartupWarnings in dependency array
}