refactor(SessionModal): remove unused model selection code and related imports

clean up unused model selection logic and dependencies that are no longer needed in the session modal component
This commit is contained in:
icarus 2025-09-24 02:17:43 +08:00
parent e5a84a2e84
commit 0e35224787

View File

@ -8,19 +8,13 @@ import {
ModalContent, ModalContent,
ModalFooter, ModalFooter,
ModalHeader, ModalHeader,
Select,
SelectedItemProps,
SelectedItems,
SelectItem,
Textarea, Textarea,
useDisclosure useDisclosure
} from '@heroui/react' } from '@heroui/react'
import { loggerService } from '@logger' import { loggerService } from '@logger'
import type { Selection } from '@react-types/shared' import type { Selection } from '@react-types/shared'
import { AllowedToolsSelect } from '@renderer/components/agent' import { AllowedToolsSelect } from '@renderer/components/agent'
import { getModelLogo } from '@renderer/config/models'
import { useAgent } from '@renderer/hooks/agents/useAgent' import { useAgent } from '@renderer/hooks/agents/useAgent'
import { useApiModels } from '@renderer/hooks/agents/useModels'
import { useSessions } from '@renderer/hooks/agents/useSessions' import { useSessions } from '@renderer/hooks/agents/useSessions'
import { useUpdateSession } from '@renderer/hooks/agents/useUpdateSession' import { useUpdateSession } from '@renderer/hooks/agents/useUpdateSession'
import { import {
@ -31,11 +25,11 @@ import {
Tool, Tool,
UpdateSessionForm UpdateSessionForm
} from '@renderer/types' } from '@renderer/types'
import { ChangeEvent, FormEvent, ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react' import { FormEvent, ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
import { ErrorBoundary } from '../../ErrorBoundary' import { ErrorBoundary } from '../../ErrorBoundary'
import { BaseOption, ModelOption, Option } from './shared' import { ModelOption } from './shared'
const logger = loggerService.withContext('SessionAgentPopup') const logger = loggerService.withContext('SessionAgentPopup')
@ -107,8 +101,6 @@ export const SessionModal: React.FC<Props> = ({
// const { setTimeoutTimer } = useTimer() // const { setTimeoutTimer } = useTimer()
const { createSession } = useSessions(agentId) const { createSession } = useSessions(agentId)
const updateSession = useUpdateSession(agentId) const updateSession = useUpdateSession(agentId)
// Only support claude code for now
const { models } = useApiModels({ providerType: 'anthropic' })
const { agent } = useAgent(agentId) const { agent } = useAgent(agentId)
const isEditing = (session?: AgentSessionEntity) => session !== undefined const isEditing = (session?: AgentSessionEntity) => session !== undefined
@ -141,13 +133,6 @@ export const SessionModal: React.FC<Props> = ({
}) })
}, [availableTools]) }, [availableTools])
const Item = useCallback(({ item }: { item: SelectedItemProps<BaseOption> }) => <Option option={item.data} />, [])
const renderOption = useCallback(
(items: SelectedItems<BaseOption>) => items.map((item) => <Item key={item.key} item={item} />),
[Item]
)
const onNameChange = useCallback((name: string) => { const onNameChange = useCallback((name: string) => {
setForm((prev) => ({ setForm((prev) => ({
...prev, ...prev,
@ -198,25 +183,6 @@ export const SessionModal: React.FC<Props> = ({
[availableTools] [availableTools]
) )
const modelOptions = useMemo(() => {
// mocked data. not final version
return (models ?? []).map((model) => ({
type: 'model',
key: model.id,
label: model.name,
avatar: getModelLogo(model.id),
providerId: model.provider,
providerName: model.provider_name
})) satisfies ModelOption[]
}, [models])
const onModelChange = useCallback((e: ChangeEvent<HTMLSelectElement>) => {
setForm((prev) => ({
...prev,
model: e.target.value
}))
}, [])
const onSubmit = useCallback( const onSubmit = useCallback(
async (e: FormEvent<HTMLFormElement>) => { async (e: FormEvent<HTMLFormElement>) => {
e.preventDefault() e.preventDefault()
@ -327,22 +293,6 @@ export const SessionModal: React.FC<Props> = ({
<Form onSubmit={onSubmit} className="w-full"> <Form onSubmit={onSubmit} className="w-full">
<ModalBody className="w-full"> <ModalBody className="w-full">
<Input isRequired value={form.name} onValueChange={onNameChange} label={t('common.name')} /> <Input isRequired value={form.name} onValueChange={onNameChange} label={t('common.name')} />
{/* FIXME: Model type definition is string. It cannot be related to provider. Just mock a model now. */}
<Select
isRequired
selectionMode="single"
selectedKeys={form.model ? [form.model] : []}
onChange={onModelChange}
items={modelOptions}
label={t('common.model')}
placeholder={t('common.placeholders.select.model')}
renderValue={renderOption}>
{(option) => (
<SelectItem key={option.key} textValue={option.label}>
<Option option={option} />
</SelectItem>
)}
</Select>
<Textarea <Textarea
label={t('common.description')} label={t('common.description')}
value={form.description ?? ''} value={form.description ?? ''}