1- import React , { Fragment , useEffect , useState } from 'react'
1+ import React , { Fragment , useEffect , useMemo , useState } from 'react'
22
33import {
44 BaseExtension ,
@@ -14,7 +14,7 @@ import SettingDetailItem from '../SettingDetail/SettingDetailItem'
1414import { extensionManager } from '@/extension'
1515import { selectedSettingAtom } from '@/helpers/atoms/Setting.atom'
1616
17- const ExtensionSetting = ( ) => {
17+ const ExtensionSetting = ( { extensionName } : { extensionName ?: string } ) => {
1818 const selectedExtensionName = useAtomValue ( selectedSettingAtom )
1919 const [ settings , setSettings ] = useState < SettingComponentProps [ ] > ( [ ] )
2020 const [ installationState , setInstallationState ] =
@@ -23,11 +23,16 @@ const ExtensionSetting = () => {
2323 undefined
2424 )
2525
26+ const currentExtensionName = useMemo (
27+ ( ) => extensionName ?? selectedExtensionName ,
28+ [ selectedExtensionName , extensionName ]
29+ )
30+
2631 useEffect ( ( ) => {
2732 const getExtensionSettings = async ( ) => {
28- if ( ! selectedExtensionName ) return
33+ if ( ! currentExtensionName ) return
2934 const allSettings : SettingComponentProps [ ] = [ ]
30- const baseExtension = extensionManager . getByName ( selectedExtensionName )
35+ const baseExtension = extensionManager . getByName ( currentExtensionName )
3136 if ( ! baseExtension ) return
3237
3338 setBaseExtension ( baseExtension )
@@ -40,7 +45,7 @@ const ExtensionSetting = () => {
4045 setInstallationState ( await baseExtension . installationState ( ) )
4146 }
4247 getExtensionSettings ( )
43- } , [ selectedExtensionName ] )
48+ } , [ currentExtensionName ] )
4449
4550 const onValueChanged = async (
4651 key : string ,
0 commit comments