@@ -13,18 +13,14 @@ type ConfigurePluginDetail = {
1313};
1414
1515 interface Props {
16- filteredPlugins: Plugin [];
1716 pluginStore: Element | undefined ;
1817 plugin: Plugin ;
19- index: number ;
2018 localPlugins: Plugin [];
2119 }
2220
2321 let {
24- filteredPlugins,
2522 pluginStore,
2623 plugin,
27- index,
2824 localPlugins = $bindable ()
2925 }: Props = $props ();
3026
@@ -86,18 +82,10 @@ function toggleOfficialPlugin(plugin: Plugin, isEnabled: boolean) {
8682 console .log (" Set toggle state for" , plugin .name );
8783}
8884
89- let menus: (Menu | null )[] = $state ([]);
90- let menuStates = $state <boolean []>([]);
85+ let isMenuOpen = $state (false );
9186
92- // Update arrays when filteredPlugins changes
93- $effect (() => {
94- menus = filteredPlugins .map (() => null );
95- menuStates = filteredPlugins .map (() => false );
96- });
97-
98- function openPluginMenu(index : number ) {
99- menuStates = menuStates .map (() => false );
100- menuStates [index ] = true ;
87+ function openPluginMenu() {
88+ isMenuOpen = true ;
10189}
10290
10391function convertPluginKindToText(kind : PluginKind ): string {
@@ -157,8 +145,8 @@ function getPluginIcon(plugin: Plugin) {
157145 Disable
158146 </Button >
159147 {:else }
160- <SplitButton variant ="outlined" label ="Disable" onclick ={() => toggleOfficialPlugin (plugin , false )} onmenuOpen ={() => openPluginMenu ( index ) }>
161- <Menu bind:this ={ menus [ index ]} open ={menuStates [ index ] } anchorCorner =" BOTTOM_LEFT" style =" left: -70px;" >
148+ <SplitButton variant ="outlined" label ="Disable" onclick ={() => toggleOfficialPlugin (plugin , false )} onmenuOpen ={openPluginMenu }>
149+ <Menu open ={isMenuOpen } anchorCorner =" BOTTOM_LEFT" style =" left: -70px;" >
162150 <List >
163151 <Item onSMUIAction ={() => uninstallExternalPlugin (plugin )}>
164152 <Text >Uninstall</Text >
@@ -173,8 +161,8 @@ function getPluginIcon(plugin: Plugin) {
173161 </Button >
174162 {:else }
175163 {#if localPlugins .some (p => p .name === plugin .name )}
176- <SplitButton label ="Enable" onclick ={() => {toggleOfficialPlugin (plugin , true )}} onmenuOpen ={() => openPluginMenu ( index ) }>
177- <Menu bind:this ={ menus [ index ]} open ={menuStates [ index ] } anchorCorner =" BOTTOM_LEFT" style =" left: -70px;" >
164+ <SplitButton label ="Enable" onclick ={() => {toggleOfficialPlugin (plugin , true )}} onmenuOpen ={openPluginMenu }>
165+ <Menu open ={isMenuOpen } anchorCorner =" BOTTOM_LEFT" style =" left: -70px;" >
178166 <List >
179167 <Item onSMUIAction ={() => uninstallExternalPlugin (plugin )}>
180168 <Text >Uninstall</Text >
0 commit comments