1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Fix top-bar extension render errors (#3049)

* fix top-bar extension render errors

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix tests

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
Jari Kolehmainen 2021-06-14 11:50:52 +03:00 committed by GitHub
parent a320516963
commit 80f66f0569
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 33 additions and 5 deletions

View File

@ -219,6 +219,34 @@ export default class ExampleExtension extends Renderer.LensExtension {
``` ```
### Top Bar Items
This extension can register custom components to a top bar area.
```typescript
import React from "react";
import { Renderer } from "@k8slens/extensions";
const {
Component: {
Icon,
}
} = Renderer;
export default class ExampleExtension extends Renderer.LensExtension {
topBarItems = [
{
components: {
Item: (
<Icon material="favorite" onClick={() => this.navigate("/example-page" />
)
}
}
]
}
```
### Status Bar Items ### Status Bar Items
This extension can register custom icons and text to a status bar area. This extension can register custom icons and text to a status bar area.

View File

@ -23,7 +23,7 @@ import type React from "react";
import { BaseRegistry } from "./base-registry"; import { BaseRegistry } from "./base-registry";
interface TopBarComponents { interface TopBarComponents {
Item?: React.ComponentType; Item: React.ComponentType;
} }
export interface TopBarRegistration { export interface TopBarRegistration {

View File

@ -22,8 +22,8 @@
import React from "react"; import React from "react";
import { render } from "@testing-library/react"; import { render } from "@testing-library/react";
import "@testing-library/jest-dom/extend-expect"; import "@testing-library/jest-dom/extend-expect";
import { TopBar } from "../layout/topbar"; import { TopBar } from "../topbar";
import { TopBarRegistry } from "../../../extensions/registries"; import { TopBarRegistry } from "../../../../extensions/registries";
describe("<TopBar/>", () => { describe("<TopBar/>", () => {
beforeEach(() => { beforeEach(() => {
@ -53,7 +53,7 @@ describe("<TopBar/>", () => {
TopBarRegistry.getInstance().getItems = jest.fn().mockImplementationOnce(() => [ TopBarRegistry.getInstance().getItems = jest.fn().mockImplementationOnce(() => [
{ {
components: { components: {
Item: <span data-testid={testId}>{text}</span> Item: () => <span data-testid={testId}>{text}</span>
} }
} }
]); ]);

View File

@ -45,7 +45,7 @@ export const TopBar = observer(({ label, children, ...rest }: Props) => {
return ( return (
<div key={index}> <div key={index}>
{registration.components.Item} <registration.components.Item />
</div> </div>
); );
})} })}