import { PluginPage, usePluginComponentExtensions, usePluginExtensions, usePluginLinkExtensions, } from '@grafana/runtime'; import { Stack } from '@grafana/ui'; import { ActionButton } from '../components/ActionButton'; import { testIds } from '../testIds'; type AppExtensionContext = {}; type ReusableComponentProps = { name: string; }; export function LegacyHooks() { const extensionPointId1 = 'plugins/grafana-extensionstest-app/actions'; const extensionPointId2 = 'plugins/grafana-extensionexample2-app/configure-extension-component/v1'; const context: AppExtensionContext = {}; const { extensions } = usePluginExtensions({ extensionPointId: extensionPointId1, context, }); const { extensions: linkExtensions } = usePluginLinkExtensions({ extensionPointId: extensionPointId1, }); const { extensions: componentExtensions } = usePluginComponentExtensions({ extensionPointId: extensionPointId2, }); return (

Link extensions defined with configureExtensionLink or configureExtensionComponent and retrived using usePluginExtensions

Link extensions defined with configureExtensionLink and retrived using usePluginLinkExtensions

Component extensions defined with configureExtensionComponent and retrived using usePluginComponentExtensions

{componentExtensions.map((extension) => { const Component = extension.component; return ; })}
); }