Skip to content

Commit 385bef1

Browse files
authored
SceneObject: Rename SceneObjectStatePlain to SceneObjectState (#122)
1 parent 46d9d5c commit 385bef1

32 files changed

+75
-83
lines changed

packages/scenes-app/src/pages/Demos/scenes/flexLayout.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
SceneFlexItem,
66
SceneFlexLayout,
77
SceneObjectBase,
8-
SceneObjectStatePlain,
8+
SceneObjectState,
99
VizPanel,
1010
} from '@grafana/scenes';
1111
import { getQueryRunnerWithRandomWalkQuery } from '../utils';
@@ -109,7 +109,7 @@ export function getFlexLayoutTest() {
109109
});
110110
}
111111

112-
class DebugItem extends SceneObjectBase<SceneObjectStatePlain> {
112+
class DebugItem extends SceneObjectBase<SceneObjectState> {
113113
public static Component = DebugItemRenderer;
114114
}
115115

packages/scenes-app/src/pages/Home/CustomSceneObject.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import React from 'react';
2-
import { SceneComponentProps, SceneObjectBase, SceneObjectStatePlain } from '@grafana/scenes';
2+
import { SceneComponentProps, SceneObjectBase, SceneObjectState } from '@grafana/scenes';
33
import { Input } from '@grafana/ui';
44

5-
export interface CustomSceneObjectState extends SceneObjectStatePlain {
5+
export interface CustomSceneObjectState extends SceneObjectState {
66
value?: string;
77
onChange: (value: number) => void;
88
}

packages/scenes/src/components/EmbeddedScene.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import { useStyles2 } from '@grafana/ui';
44
import React from 'react';
55

66
import { SceneObjectBase } from '../core/SceneObjectBase';
7-
import { SceneComponentProps, SceneObjectStatePlain, SceneObject } from '../core/types';
7+
import { SceneComponentProps, SceneObjectState, SceneObject } from '../core/types';
88
import { UrlSyncManager } from '../services/UrlSyncManager';
99

10-
export interface EmbeddedSceneState extends SceneObjectStatePlain {
10+
export interface EmbeddedSceneState extends SceneObjectState {
1111
/**
1212
* The main content of the scene (usually a SceneFlexLayout)
1313
*/

packages/scenes/src/components/NestedScene.tsx

+2-8
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,9 @@ import { Stack } from '@grafana/experimental';
66
import { Button, ToolbarButton, useStyles2 } from '@grafana/ui';
77

88
import { SceneObjectBase } from '../core/SceneObjectBase';
9-
import {
10-
SceneObject,
11-
SceneComponentProps,
12-
SceneLayout,
13-
SceneLayoutItemState,
14-
SceneObjectStatePlain,
15-
} from '../core/types';
9+
import { SceneObject, SceneComponentProps, SceneLayout, SceneLayoutItemState, SceneObjectState } from '../core/types';
1610

17-
interface NestedSceneState extends SceneObjectStatePlain {
11+
interface NestedSceneState extends SceneObjectState {
1812
title: string;
1913
isCollapsed?: boolean;
2014
canCollapse?: boolean;

packages/scenes/src/components/SceneApp/types.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { SceneObject, SceneObjectStatePlain } from '../../core/types';
1+
import { SceneObject, SceneObjectState } from '../../core/types';
22
import { EmbeddedScene } from '../EmbeddedScene';
33
import { IconName } from '@grafana/data';
44

@@ -9,7 +9,7 @@ export interface SceneRouteMatch<Params extends { [K in keyof Params]?: string }
99
url: string;
1010
}
1111

12-
export interface SceneAppState extends SceneObjectStatePlain {
12+
export interface SceneAppState extends SceneObjectState {
1313
// Array of SceneAppPage objects that are considered app's top level pages
1414
pages: SceneAppPageLike[];
1515
}
@@ -20,7 +20,7 @@ export interface SceneAppRoute {
2020
drilldown?: SceneAppDrilldownView;
2121
}
2222

23-
export interface SceneAppPageState extends SceneObjectStatePlain {
23+
export interface SceneAppPageState extends SceneObjectState {
2424
/** Page title */
2525
title: string;
2626
/** Page subTitle */

packages/scenes/src/components/SceneByFrameRepeater.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import { LoadingState, PanelData, DataFrame } from '@grafana/data';
44

55
import { SceneObjectBase } from '../core/SceneObjectBase';
66
import { sceneGraph } from '../core/sceneGraph';
7-
import { SceneComponentProps, SceneObjectStatePlain } from '../core/types';
7+
import { SceneComponentProps, SceneObjectState } from '../core/types';
88
import { SceneFlexItem, SceneFlexLayout } from './layout/SceneFlexLayout';
99

10-
interface SceneByFrameRepeaterState extends SceneObjectStatePlain {
10+
interface SceneByFrameRepeaterState extends SceneObjectState {
1111
body: SceneFlexLayout;
1212
getLayoutChild(data: PanelData, frame: DataFrame, frameIndex: number): SceneFlexItem;
1313
}

packages/scenes/src/components/SceneCanvasText.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ import React, { CSSProperties } from 'react';
22

33
import { SceneObjectBase } from '../core/SceneObjectBase';
44
import { sceneGraph } from '../core/sceneGraph';
5-
import { SceneComponentProps, SceneObjectStatePlain } from '../core/types';
5+
import { SceneComponentProps, SceneObjectState } from '../core/types';
66
import { VariableDependencyConfig } from '../variables/VariableDependencyConfig';
77

8-
export interface SceneCanvasTextState extends SceneObjectStatePlain {
8+
export interface SceneCanvasTextState extends SceneObjectState {
99
text: string;
1010
fontSize?: number;
1111
align?: 'left' | 'center' | 'right';

packages/scenes/src/components/SceneReactObject.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import React from 'react';
22

33
import { SceneObjectBase } from '../core/SceneObjectBase';
4-
import { SceneComponentProps, SceneObjectStatePlain } from '../core/types';
4+
import { SceneComponentProps, SceneObjectState } from '../core/types';
55

6-
export interface SceneReactObjectState<TProps = {}> extends SceneObjectStatePlain {
6+
export interface SceneReactObjectState<TProps = {}> extends SceneObjectState {
77
/**
88
* React component to render
99
*/

packages/scenes/src/components/SceneRefreshPicker.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ import { RefreshPicker } from '@grafana/ui';
55

66
import { SceneObjectBase } from '../core/SceneObjectBase';
77
import { sceneGraph } from '../core/sceneGraph';
8-
import { SceneComponentProps, SceneObjectStatePlain, SceneObjectUrlValues } from '../core/types';
8+
import { SceneComponentProps, SceneObjectState, SceneObjectUrlValues } from '../core/types';
99
import { SceneObjectUrlSyncConfig } from '../services/SceneObjectUrlSyncConfig';
1010

1111
export const DEFAULT_INTERVALS = ['5s', '10s', '30s', '1m', '5m', '15m', '30m', '1h', '2h', '1d'];
1212

13-
export interface SceneRefreshPickerState extends SceneObjectStatePlain {
13+
export interface SceneRefreshPickerState extends SceneObjectState {
1414
// Refresh interval, e.g. 5s, 1m, 2h
1515
refresh: string;
1616
// List of allowed refresh intervals, e.g. ['5s', '1m']

packages/scenes/src/components/SceneTimePicker.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import { TimeRangePicker } from '@grafana/ui';
44

55
import { SceneObjectBase } from '../core/SceneObjectBase';
66
import { sceneGraph } from '../core/sceneGraph';
7-
import { SceneComponentProps, SceneObjectStatePlain } from '../core/types';
7+
import { SceneComponentProps, SceneObjectState } from '../core/types';
88

9-
export interface SceneTimePickerState extends SceneObjectStatePlain {
9+
export interface SceneTimePickerState extends SceneObjectState {
1010
hidePicker?: boolean;
1111
isOnCanvas?: boolean;
1212
}

packages/scenes/src/components/SceneToolbarButton.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import React from 'react';
33
import { IconName, Input, ToolbarButton } from '@grafana/ui';
44

55
import { SceneObjectBase } from '../core/SceneObjectBase';
6-
import { SceneComponentProps, SceneObjectStatePlain } from '../core/types';
6+
import { SceneComponentProps, SceneObjectState } from '../core/types';
77

8-
export interface ToolbarButtonState extends SceneObjectStatePlain {
8+
export interface ToolbarButtonState extends SceneObjectState {
99
icon: IconName;
1010
onClick: () => void;
1111
}
@@ -18,7 +18,7 @@ export class SceneToolbarButton extends SceneObjectBase<ToolbarButtonState> {
1818
};
1919
}
2020

21-
export interface SceneToolbarInputState extends SceneObjectStatePlain {
21+
export interface SceneToolbarInputState extends SceneObjectState {
2222
value?: string;
2323
onChange: (value: number) => void;
2424
}

packages/scenes/src/components/VizPanel/VizPanel.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { PanelContext, SeriesVisibilityChangeMode, VizLegendOptions } from '@gra
1818
import { config, getAppEvents, getPluginImportUtils } from '@grafana/runtime';
1919
import { SceneObjectBase } from '../../core/SceneObjectBase';
2020
import { sceneGraph } from '../../core/sceneGraph';
21-
import { DeepPartial, SceneObjectStatePlain } from '../../core/types';
21+
import { DeepPartial, SceneObjectState } from '../../core/types';
2222

2323
import { VizPanelRenderer } from './VizPanelRenderer';
2424
import { VizPanelMenu } from './VizPanelMenu';
@@ -28,7 +28,7 @@ import { seriesVisibilityConfigFactory } from './seriesVisibilityConfigFactory';
2828
import { emptyPanelData } from '../../core/SceneDataNode';
2929
import { changeSeriesColorConfigFactory } from './colorSeriesConfigFactory';
3030

31-
export interface VizPanelState<TOptions = {}, TFieldConfig = {}> extends SceneObjectStatePlain {
31+
export interface VizPanelState<TOptions = {}, TFieldConfig = {}> extends SceneObjectState {
3232
title: string;
3333
description?: string;
3434
pluginId: string;

packages/scenes/src/components/VizPanel/VizPanelMenu.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import React from 'react';
22
import { PanelMenuItem } from '@grafana/data';
33
import { Menu } from '@grafana/ui';
44
import { SceneObjectBase } from '../../core/SceneObjectBase';
5-
import { SceneComponentProps, SceneObjectStatePlain } from '../../core/types';
5+
import { SceneComponentProps, SceneObjectState } from '../../core/types';
66

7-
interface VizPanelMenuState extends SceneObjectStatePlain {
7+
interface VizPanelMenuState extends SceneObjectState {
88
items?: PanelMenuItem[];
99
}
1010

packages/scenes/src/components/layout/SceneFlexLayout.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ import { SceneObjectBase } from '../../core/SceneObjectBase';
44
import {
55
SceneComponentProps,
66
SceneLayout,
7-
SceneObjectStatePlain,
7+
SceneObjectState,
88
SceneObject,
99
SceneLayoutItemState,
1010
} from '../../core/types';
1111

1212
export interface SceneFlexItemLike extends SceneObject<SceneFlexItemState> {}
1313

14-
interface SceneFlexLayoutState extends SceneObjectStatePlain {
14+
interface SceneFlexLayoutState extends SceneObjectState {
1515
direction?: CSSProperties['flexDirection'];
1616
wrap?: CSSProperties['flexWrap'];
1717
children: SceneFlexItemLike[];

packages/scenes/src/components/layout/grid/SceneGridLayout.test.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { render, screen } from '@testing-library/react';
22
import React from 'react';
33

44
import { SceneObjectBase } from '../../../core/SceneObjectBase';
5-
import { SceneComponentProps, SceneObjectStatePlain } from '../../../core/types';
5+
import { SceneComponentProps, SceneObjectState } from '../../../core/types';
66
import { EmbeddedScene } from '../../EmbeddedScene';
77

88
import { SceneGridItem, SceneGridLayout } from './SceneGridLayout';
@@ -16,7 +16,7 @@ jest.mock(
1616
children({ height: 600, width: 600 })
1717
);
1818

19-
class TestObject extends SceneObjectBase<SceneObjectStatePlain> {
19+
class TestObject extends SceneObjectBase<SceneObjectState> {
2020
public static Component = (m: SceneComponentProps<TestObject>) => {
2121
return <div data-testid="test-object">TestObject</div>;
2222
};

packages/scenes/src/components/layout/grid/SceneGridLayout.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ import {
88
SceneLayout,
99
SceneLayoutItemState,
1010
SceneObject,
11-
SceneObjectStatePlain,
11+
SceneObjectState,
1212
} from '../../../core/types';
1313
import { DEFAULT_PANEL_SPAN, GRID_CELL_HEIGHT, GRID_CELL_VMARGIN, GRID_COLUMN_COUNT } from './constants';
1414

1515
import { SceneGridRow } from './SceneGridRow';
1616
import { SceneGridItemLike, SceneGridItemPlacement, SceneGridItemStateLike } from './types';
1717

18-
interface SceneGridLayoutState extends SceneObjectStatePlain {
18+
interface SceneGridLayoutState extends SceneObjectState {
1919
/**
2020
* Turn on or off dragging for all items. Indiviadual items can still disabled via isDraggable property
2121
**/

packages/scenes/src/components/layout/grid/types.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { SceneObject, SceneObjectStatePlain } from '../../../core/types';
1+
import { SceneObject, SceneObjectState } from '../../../core/types';
22

33
export interface SceneGridItemPlacement {
44
x?: number;
@@ -7,7 +7,7 @@ export interface SceneGridItemPlacement {
77
height?: number;
88
}
99

10-
export interface SceneGridItemStateLike extends SceneGridItemPlacement, SceneObjectStatePlain {
10+
export interface SceneGridItemStateLike extends SceneGridItemPlacement, SceneObjectState {
1111
isResizable: boolean;
1212
isDraggable: boolean;
1313
}

packages/scenes/src/core/SceneDataNode.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { getDefaultTimeRange, PanelData } from '@grafana/data';
22
import { LoadingState } from '@grafana/schema';
33

44
import { SceneObjectBase } from './SceneObjectBase';
5-
import { SceneDataProvider, SceneObjectStatePlain } from './types';
5+
import { SceneDataProvider, SceneDataState } from './types';
66

7-
export interface SceneDataNodeState extends SceneObjectStatePlain {
7+
export interface SceneDataNodeState extends SceneDataState {
88
data: PanelData;
99
}
1010

packages/scenes/src/core/SceneObjectBase.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import { SceneVariableSet } from '../variables/sets/SceneVariableSet';
33
import { SceneDataNode } from './SceneDataNode';
44
import { SceneObjectBase } from './SceneObjectBase';
55
import { SceneObjectStateChangedEvent } from './events';
6-
import { SceneObject, SceneObjectStatePlain } from './types';
6+
import { SceneObject, SceneObjectState } from './types';
77
import { SceneTimeRange } from '../core/SceneTimeRange';
88

9-
interface TestSceneState extends SceneObjectStatePlain {
9+
interface TestSceneState extends SceneObjectState {
1010
name?: string;
1111
nested?: SceneObject<TestSceneState>;
1212
children?: TestScene[];

packages/scenes/src/core/SceneObjectBase.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
SceneActivationHandler,
1212
SceneDeactivationHandler,
1313
CancelActivationHandler,
14-
SceneObjectStatePlain,
14+
SceneObjectState,
1515
} from './types';
1616
import { useForceUpdate } from '@grafana/ui';
1717

@@ -20,7 +20,7 @@ import { SceneObjectStateChangedEvent } from './events';
2020
import { cloneSceneObject } from './utils';
2121
import { SceneVariableDependencyConfigLike } from '../variables/types';
2222

23-
export abstract class SceneObjectBase<TState extends SceneObjectStatePlain = SceneObjectStatePlain>
23+
export abstract class SceneObjectBase<TState extends SceneObjectState = SceneObjectState>
2424
implements SceneObject<TState>
2525
{
2626
private _isActive = false;
@@ -262,7 +262,7 @@ export abstract class SceneObjectBase<TState extends SceneObjectStatePlain = Sce
262262
* This hook is always returning model.state instead of a useState that remembers the last state emitted on the subject
263263
* The reason for this is so that if the model instance change this function will always return the latest state.
264264
*/
265-
function useSceneObjectState<TState extends SceneObjectStatePlain>(model: SceneObjectBase<TState>): TState {
265+
function useSceneObjectState<TState extends SceneObjectState>(model: SceneObjectBase<TState>): TState {
266266
const forceUpdate = useForceUpdate();
267267

268268
useEffect(() => {

packages/scenes/src/core/events.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { BusEventWithPayload } from '@grafana/data';
22

3-
import { SceneObject, SceneObjectStatePlain } from './types';
3+
import { SceneObject, SceneObjectState } from './types';
44

5-
export interface SceneObjectStateChangedPayload<TState extends SceneObjectStatePlain = SceneObjectStatePlain> {
5+
export interface SceneObjectStateChangedPayload<TState extends SceneObjectState = SceneObjectState> {
66
prevState: TState;
77
newState: TState;
88
partialUpdate: Partial<TState>;

packages/scenes/src/core/types.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ import {
1414

1515
import { SceneVariableDependencyConfigLike, SceneVariables } from '../variables/types';
1616

17-
export interface SceneObjectStatePlain {
17+
export interface SceneObjectState {
1818
key?: string;
1919
$timeRange?: SceneTimeRangeLike;
2020
$data?: SceneDataProvider;
2121
$variables?: SceneVariables;
2222
}
2323

24-
export interface SceneLayoutItemState extends SceneObjectStatePlain {
24+
export interface SceneLayoutItemState extends SceneObjectState {
2525
body: SceneObject | undefined;
2626
}
2727

@@ -44,11 +44,11 @@ export interface SceneComponentProps<T> {
4444

4545
export type SceneComponent<TModel> = (props: SceneComponentProps<TModel>) => React.ReactElement | null;
4646

47-
export interface SceneDataState extends SceneObjectStatePlain {
47+
export interface SceneDataState extends SceneObjectState {
4848
data?: PanelData;
4949
}
5050

51-
export interface SceneObject<TState extends SceneObjectStatePlain = SceneObjectStatePlain> {
51+
export interface SceneObject<TState extends SceneObjectState = SceneObjectState> {
5252
/** The current state */
5353
readonly state: TState;
5454

@@ -118,7 +118,7 @@ export type SceneDeactivationHandler = () => void;
118118
**/
119119
export type CancelActivationHandler = () => void;
120120

121-
export interface SceneLayoutState extends SceneObjectStatePlain {
121+
export interface SceneLayoutState extends SceneObjectState {
122122
children: SceneObject[];
123123
}
124124

@@ -128,7 +128,7 @@ export interface SceneLayout<T extends SceneLayoutState = SceneLayoutState> exte
128128
getDragClassCancel?(): string;
129129
}
130130

131-
export interface SceneTimeRangeState extends SceneObjectStatePlain {
131+
export interface SceneTimeRangeState extends SceneObjectState {
132132
from: string;
133133
to: string;
134134
timeZone: TimeZone;

packages/scenes/src/core/utils.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { SceneObjectStatePlain } from './types';
1+
import { SceneObjectState } from './types';
22

33
import { SceneObjectBase } from './SceneObjectBase';
44

55
/**
66
* Will create new SceneItem with shalled cloned state, but all states items of type SceneObject are deep cloned
77
*/
8-
export function cloneSceneObject<T extends SceneObjectBase<TState>, TState extends SceneObjectStatePlain>(
8+
export function cloneSceneObject<T extends SceneObjectBase<TState>, TState extends SceneObjectState>(
99
sceneObject: SceneObjectBase<TState>,
1010
withState?: Partial<TState>
1111
): T {

0 commit comments

Comments
 (0)