a422d7ce5e
Bumps [@testing-library/react](https://github.com/testing-library/react-testing-library) from 11.2.6 to 12.1.3. - [Release notes](https://github.com/testing-library/react-testing-library/releases) - [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/react-testing-library/compare/v11.2.6...v12.1.3) --- updated-dependencies: - dependency-name: "@testing-library/react" dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
shortcuts
The shortcuts plugin allows a user to have easy access to pages within a Backstage app by storing them as "shortcuts" in the Sidebar.
Usage
Install the package:
yarn add @backstage/plugin-shortcuts
Register plugin:
This plugin requires explicit registration, so you will need to add it to your App's plugins.ts file:
// ...
export { shortcutsPlugin } from '@backstage/plugin-shortcuts';
If you don't have a plugins.ts file see: troubleshooting
Add the <Shortcuts /> component within your <Sidebar>:
Edit file packages/app/src/components/Root/Root.tsx
import {
Sidebar,
SidebarDivider,
SidebarSpace,
} from '@backstage/core-components';
import { Shortcuts } from '@backstage/plugin-shortcuts';
export const SidebarComponent = () => (
<Sidebar>
{/* ... */}
<SidebarDivider />
<Shortcuts />
<SidebarSpace />
</Sidebar>
);
The plugin exports a shortcutApiRef but the plugin includes a default implementation of the ShortcutApi that uses localStorage to store each user's shortcuts.
To overwrite the default implementation add it to the App's apis.ts:
import { shortcutsApiRef } from '@backstage/plugin-shortcuts';
import { CustomShortcutsImpl } from '...';
export const apis = [
// ...
createApiFactory({
api: shortcutsApiRef,
deps: {},
factory: () => new CustomShortcutsImpl(),
}),
];
Troubleshooting
If you don't have a plugins.ts file, you can create it with the path packages/app/src/plugins.ts and then import it into your App.tsx:
+ import * as plugins from './plugins';
const app = createApp({
apis,
+ plugins: Object.values(plugins),
bindRoutes({ bind }) {
/* ... */
},
});
Or simply edit App.tsx with:
+ import { shortcutsPlugin } from '@backstage/plugin-shortcuts
const app = createApp({
apis,
+ plugins: [shortcutsPlugin],
bindRoutes({ bind }) {
/* ... */
},
});