import { useEffect, useState } from "react" import { useTranslation } from "react-i18next" import { Label } from "@/components/ui/label" import { Separator } from "@/components/ui/separator" import { useApiKeys } from "../../hooks/use-api-keys" import { ApiKeyInput } from "../widgets/api-key-input" /** * Вкладка настроек разработки * Доступна только в development режиме * Содержит ключи для инструментов разработки */ export function DevelopmentTab() { const { t } = useTranslation() const { saveSimpleApiKey, getApiKeyInfo } = useApiKeys() const [codecovToken, setCodecovToken] = useState("") const [tauriAnalyticsKey, setTauriAnalyticsKey] = useState("") // Загружаем существующие ключи при монтировании useEffect(() => { const codecovInfo = getApiKeyInfo("codecov") const tauriInfo = getApiKeyInfo("tauri_analytics") // Если ключи существуют, показываем placeholder вместо значения для безопасности if (codecovInfo?.has_value) { setCodecovToken("••••••••••••••••••••••••••••••••••••••••••••••••••••") } if (tauriInfo?.has_value) { setTauriAnalyticsKey("••••••••••••••••••••••••••••••••••••••••••••••••••••") } }, [getApiKeyInfo]) const handleCodecovTokenChange = (value: string) => { setCodecovToken(value) // Автосохранение при изменении if (value && !value.includes("••••")) { void saveSimpleApiKey("codecov", value) } } const handleTauriAnalyticsKeyChange = (value: string) => { setTauriAnalyticsKey(value) // Автосохранение при изменении if (value && !value.includes("••••")) { void saveSimpleApiKey("tauri_analytics", value) } } // Показываем только в dev режиме if (process.env.NODE_ENV !== "development") { return null } return (
{t( "dialogs.userSettings.developmentDescription", "Настройки для инструментов разработки и аналитики. Доступно только в режиме разработки.", )}
{t( "dialogs.userSettings.codecovDescription", "Токен для отправки отчетов покрытия тестами в Codecov. Используется в CI/CD pipeline.", )}
{t( "dialogs.userSettings.tauriAnalyticsDescription", "Ключ для аналитики Tauri приложения. Используется для сбора метрик производительности.", )}
{t( "dialogs.userSettings.devModeNoteText", "Эта вкладка видна только в режиме разработки. В production сборке настройки разработки недоступны.", )}