Move to version bridge

Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
This commit is contained in:
Charles de Dreuille
2026-01-05 12:09:53 +00:00
parent 2a9ce99a32
commit b2f2d30536
3 changed files with 16 additions and 7 deletions
+1
View File
@@ -40,6 +40,7 @@
"test": "backstage-cli package test"
},
"dependencies": {
"@backstage/version-bridge": "^1.0.10",
"@remixicon/react": "^4.6.0",
"@tanstack/react-table": "^8.21.3",
"clsx": "^2.1.1",
+13 -6
View File
@@ -14,7 +14,11 @@
* limitations under the License.
*/
import { createContext, useContext, ReactNode } from 'react';
import { useContext, ReactNode } from 'react';
import {
createVersionedContext,
createVersionedValueMap,
} from '@backstage/version-bridge';
import { Surface, Responsive } from '../types';
/** @public */
@@ -46,9 +50,9 @@ export interface UseSurfaceOptions {
onSurface?: Responsive<Surface>;
}
const SurfaceContext = createContext<SurfaceContextValue>({
surface: undefined,
});
const SurfaceContext = createVersionedContext<{
1: SurfaceContextValue;
}>('surface-context');
/**
* Increments a surface level by one, capping at '3'.
@@ -159,7 +163,9 @@ export const SurfaceProvider = ({
children,
}: SurfaceProviderProps) => {
return (
<SurfaceContext.Provider value={{ surface }}>
<SurfaceContext.Provider
value={createVersionedValueMap({ 1: { surface } })}
>
{children}
</SurfaceContext.Provider>
);
@@ -179,7 +185,8 @@ export const SurfaceProvider = ({
export const useSurface = (
options?: UseSurfaceOptions,
): SurfaceContextValue => {
const context = useContext(SurfaceContext);
const value = useContext(SurfaceContext)?.atVersion(1);
const context = value ?? { surface: undefined };
// Infer behavior from which parameter is provided
// 'surface' = provider behavior (increment)
+2 -1
View File
@@ -7937,6 +7937,7 @@ __metadata:
resolution: "@backstage/ui@workspace:packages/ui"
dependencies:
"@backstage/cli": "workspace:^"
"@backstage/version-bridge": "npm:^1.0.10"
"@remixicon/react": "npm:^4.6.0"
"@tanstack/react-table": "npm:^8.21.3"
"@types/react": "npm:^18.0.0"
@@ -7964,7 +7965,7 @@ __metadata:
languageName: unknown
linkType: soft
"@backstage/version-bridge@workspace:^, @backstage/version-bridge@workspace:packages/version-bridge":
"@backstage/version-bridge@npm:^1.0.10, @backstage/version-bridge@workspace:^, @backstage/version-bridge@workspace:packages/version-bridge":
version: 0.0.0-use.local
resolution: "@backstage/version-bridge@workspace:packages/version-bridge"
dependencies: