// // Copyright 2025 DXOS.org // import React, { useCallback } from 'react'; import { IconButton, List, ListItem } from '@dxos/react-ui'; import { Capabilities } from '../../common'; import { contributes } from '../../core'; import { usePluginManager } from '../../react'; const Item = ({ id, disabled, onRemove, }: { id: string; disabled: boolean; onRemove: (id: string) => Promise; }) => { const handleRemove = useCallback(() => onRemove(id), [onRemove]); return ( {id} ); }; export const Main = () => { const manager = usePluginManager(); const handleRemove = useCallback( async (id: string) => { await manager.remove(id); }, [manager], ); return ( {manager.plugins.map((plugin) => ( ))} ); }; export default () => contributes(Capabilities.ReactSurface, { id: 'dxos.org/test/generator/main', role: 'primary', component: Main, });