Spaces:
Build error
Build error
| import { useTranslation } from "react-i18next"; | |
| import { Link } from "react-router"; | |
| import { useAIConfigOptions } from "#/hooks/query/use-ai-config-options"; | |
| import { I18nKey } from "#/i18n/declaration"; | |
| import { LoadingSpinner } from "../../loading-spinner"; | |
| import { ModalBackdrop } from "../modal-backdrop"; | |
| import { SettingsForm } from "./settings-form"; | |
| import { Settings } from "#/types/settings"; | |
| import { DEFAULT_SETTINGS } from "#/services/settings"; | |
| interface SettingsModalProps { | |
| settings?: Settings; | |
| onClose: () => void; | |
| } | |
| export function SettingsModal({ onClose, settings }: SettingsModalProps) { | |
| const aiConfigOptions = useAIConfigOptions(); | |
| const { t } = useTranslation(); | |
| return ( | |
| <ModalBackdrop> | |
| <div | |
| data-testid="ai-config-modal" | |
| className="bg-base-secondary min-w-[384px] m-4 p-6 rounded-xl flex flex-col gap-2 border border-tertiary" | |
| > | |
| {aiConfigOptions.error && ( | |
| <p className="text-danger text-xs">{aiConfigOptions.error.message}</p> | |
| )} | |
| <span className="text-xl leading-6 font-semibold -tracking-[0.01em]"> | |
| {t(I18nKey.AI_SETTINGS$TITLE)} | |
| </span> | |
| <p className="text-xs text-[#A3A3A3]"> | |
| {t(I18nKey.SETTINGS$DESCRIPTION)}{" "} | |
| {t(I18nKey.SETTINGS$FOR_OTHER_OPTIONS)} | |
| <Link | |
| data-testid="advanced-settings-link" | |
| to="/settings" | |
| className="underline underline-offset-2 text-white" | |
| > | |
| {t(I18nKey.SETTINGS$SEE_ADVANCED_SETTINGS)} | |
| </Link> | |
| </p> | |
| {aiConfigOptions.isLoading && ( | |
| <div className="flex justify-center"> | |
| <LoadingSpinner size="small" /> | |
| </div> | |
| )} | |
| {aiConfigOptions.data && ( | |
| <SettingsForm | |
| settings={settings || DEFAULT_SETTINGS} | |
| models={aiConfigOptions.data?.models} | |
| onClose={onClose} | |
| /> | |
| )} | |
| </div> | |
| </ModalBackdrop> | |
| ); | |
| } | |