refactor: convert nested component to render function in settings popups (#12508)

This commit is contained in:
Shemol 2026-01-19 18:49:46 +08:00 committed by GitHub
parent dc3cee978a
commit d64b388920
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 44 additions and 48 deletions

View File

@ -44,32 +44,30 @@ const AgentSettingPopupContainer: React.FC<AgentSettingPopupParams> = ({ tab, ag
resolve()
}
const items = (
[
{
key: 'essential',
label: t('agent.settings.essential')
},
{
key: 'prompt',
label: t('agent.settings.prompt')
},
{
key: 'tooling',
label: t('agent.settings.tooling.tab', 'Tooling & permissions')
},
{
key: 'plugins',
label: t('agent.settings.plugins.tab', 'Plugins')
},
{
key: 'advanced',
label: t('agent.settings.advance.title', 'Advanced Settings')
}
] as const satisfies { key: AgentSettingPopupTab; label: string }[]
).filter(Boolean)
const items = [
{
key: 'essential',
label: t('agent.settings.essential')
},
{
key: 'prompt',
label: t('agent.settings.prompt')
},
{
key: 'tooling',
label: t('agent.settings.tooling.tab', 'Tooling & permissions')
},
{
key: 'plugins',
label: t('agent.settings.plugins.tab', 'Plugins')
},
{
key: 'advanced',
label: t('agent.settings.advance.title', 'Advanced Settings')
}
] as const satisfies { key: AgentSettingPopupTab; label: string }[]
const ModalContent = () => {
const renderModalContent = () => {
if (isLoading) {
// TODO: use skeleton for better ux
return (
@ -146,7 +144,7 @@ const AgentSettingPopupContainer: React.FC<AgentSettingPopupParams> = ({ tab, ag
}}
width="min(800px, 70vw)"
centered>
<ModalContent />
{renderModalContent()}
</StyledModal>
)
}

View File

@ -45,28 +45,26 @@ const SessionSettingPopupContainer: React.FC<SessionSettingPopupParams> = ({ tab
resolve()
}
const items = (
[
{
key: 'essential',
label: t('agent.settings.essential')
},
{
key: 'prompt',
label: t('agent.settings.prompt')
},
{
key: 'tooling',
label: t('agent.settings.tooling.tab', 'Tooling & permissions')
},
{
key: 'advanced',
label: t('agent.settings.advance.title', 'Advanced Settings')
}
] as const satisfies { key: AgentSettingPopupTab; label: string }[]
).filter(Boolean)
const items = [
{
key: 'essential',
label: t('agent.settings.essential')
},
{
key: 'prompt',
label: t('agent.settings.prompt')
},
{
key: 'tooling',
label: t('agent.settings.tooling.tab', 'Tooling & permissions')
},
{
key: 'advanced',
label: t('agent.settings.advance.title', 'Advanced Settings')
}
] as const satisfies { key: AgentSettingPopupTab; label: string }[]
const ModalContent = () => {
const renderModalContent = () => {
if (isLoading) {
// TODO: use skeleton for better ux
return (
@ -132,7 +130,7 @@ const SessionSettingPopupContainer: React.FC<SessionSettingPopupParams> = ({ tab
}}
width="min(800px, 70vw)"
centered>
<ModalContent />
{renderModalContent()}
</StyledModal>
)
}