feat(AgentToolingSettings): improve modal styling and accessibility

- Add text color classes to modal title and list items for better visibility
- Apply background and border styling to modal content
- Use modal hook pattern for consistency
This commit is contained in:
icarus 2025-09-23 14:03:13 +08:00
parent b7d97cca69
commit e2a0792e2d

View File

@ -108,6 +108,7 @@ export const AgentToolingSettings: FC<AgentToolingSettingsProps> = ({ agent, upd
const { t } = useTranslation() const { t } = useTranslation()
const client = useAgentClient() const client = useAgentClient()
const { mcpServers: allServers } = useMCPServers() const { mcpServers: allServers } = useMCPServers()
const [modal, contextHolder] = Modal.useModal()
const [configuration, setConfiguration] = useState<AgentConfigurationState>(defaultConfiguration) const [configuration, setConfiguration] = useState<AgentConfigurationState>(defaultConfiguration)
const [selectedMode, setSelectedMode] = useState<PermissionMode>(defaultConfiguration.permission_mode) const [selectedMode, setSelectedMode] = useState<PermissionMode>(defaultConfiguration.permission_mode)
@ -192,8 +193,12 @@ export const AgentToolingSettings: FC<AgentToolingSettingsProps> = ({ agent, upd
} }
if (removedDefaults.length > 0) { if (removedDefaults.length > 0) {
Modal.confirm({ modal.confirm({
title: t('agent.settings.tooling.permissionMode.confirmChange.title', 'Change permission mode?'), title: (
<span className="text-foreground">
{t('agent.settings.tooling.permissionMode.confirmChange.title', 'Change permission mode?')}
</span>
),
content: ( content: (
<div className="flex flex-col gap-2"> <div className="flex flex-col gap-2">
<p className="text-foreground-500 text-sm"> <p className="text-foreground-500 text-sm">
@ -207,7 +212,11 @@ export const AgentToolingSettings: FC<AgentToolingSettingsProps> = ({ agent, upd
<ul className="mt-1 list-disc pl-4"> <ul className="mt-1 list-disc pl-4">
{removedDefaults.map((id) => { {removedDefaults.map((id) => {
const tool = availableTools.find((item) => item.id === id) const tool = availableTools.find((item) => item.id === id)
return <li key={id}>{tool?.name ?? id}</li> return (
<li className="text-foreground" key={id}>
{tool?.name ?? id}
</li>
)
})} })}
</ul> </ul>
</div> </div>
@ -215,13 +224,27 @@ export const AgentToolingSettings: FC<AgentToolingSettingsProps> = ({ agent, upd
), ),
okText: t('common.confirm'), okText: t('common.confirm'),
cancelText: t('common.cancel'), cancelText: t('common.cancel'),
onOk: applyChange onOk: applyChange,
classNames: {
content: 'bg-background! border! border-solid! rounded border-grey border-default-200!'
}
}) })
} else { } else {
void applyChange() void applyChange()
} }
}, },
[agent, selectedMode, isUpdatingMode, availableTools, userAddedIds, autoToolIds, configuration, updateAgent, t] [
agent,
selectedMode,
isUpdatingMode,
availableTools,
userAddedIds,
autoToolIds,
configuration,
updateAgent,
modal,
t
]
) )
const handleToggleTool = useCallback( const handleToggleTool = useCallback(
@ -300,6 +323,7 @@ export const AgentToolingSettings: FC<AgentToolingSettingsProps> = ({ agent, upd
return ( return (
<SettingsContainer> <SettingsContainer>
{contextHolder}
<SettingsItem> <SettingsItem>
<SettingsTitle> <SettingsTitle>
{t('agent.settings.tooling.steps.permissionMode.title', 'Step 1 · Permission mode')} {t('agent.settings.tooling.steps.permissionMode.title', 'Step 1 · Permission mode')}