Skip to content

Commit 1b96cd8

Browse files
authored
ScenesReact: Add skipUrlSync to variables (#1182)
1 parent 267ce6b commit 1b96cd8

File tree

4 files changed

+26
-6
lines changed

4 files changed

+26
-6
lines changed

packages/scenes-react/src/variables/CustomVariable.tsx

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export function CustomVariable({
1818
initialValue,
1919
isMulti,
2020
includeAll,
21+
skipUrlSync,
2122
children,
2223
}: CustomVariableProps): React.ReactNode {
2324
const scene = useSceneContext();
@@ -26,7 +27,16 @@ export function CustomVariable({
2627
let variable: CustomVariableObject | undefined = scene.findVariable(name);
2728

2829
if (!variable) {
29-
variable = new CustomVariableObject({ name, label, query, value: initialValue, isMulti, includeAll, hide });
30+
variable = new CustomVariableObject({
31+
name,
32+
label,
33+
query,
34+
value: initialValue,
35+
isMulti,
36+
includeAll,
37+
hide,
38+
skipUrlSync,
39+
});
3040
}
3141

3242
useEffect(() => {
@@ -42,8 +52,9 @@ export function CustomVariable({
4252
hide,
4353
isMulti,
4454
includeAll,
55+
skipUrlSync,
4556
});
46-
}, [hide, includeAll, isMulti, label, query, variable]);
57+
}, [skipUrlSync, hide, includeAll, isMulti, label, query, variable]);
4758

4859
// Need to block child rendering until the variable is added so that child components like RVariableSelect find the variable
4960
if (!variableAdded) {

packages/scenes-react/src/variables/DataSourceVariable.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ export function DataSourceVariable({
2323
initialValue,
2424
isMulti,
2525
includeAll,
26+
skipUrlSync,
2627
children,
2728
}: DataSourceVariableProps): React.ReactNode {
2829
const scene = useSceneContext();
@@ -40,6 +41,7 @@ export function DataSourceVariable({
4041
isMulti,
4142
hide,
4243
includeAll,
44+
skipUrlSync,
4345
});
4446
}
4547

@@ -59,7 +61,8 @@ export function DataSourceVariable({
5961
variable.state.regex === regex &&
6062
variable.state.label === label &&
6163
variable.state.hide === hide &&
62-
variable.state.includeAll === includeAll
64+
variable.state.includeAll === includeAll &&
65+
variable.state.skipUrlSync === skipUrlSync
6366
) {
6467
return;
6568
}
@@ -70,10 +73,11 @@ export function DataSourceVariable({
7073
label,
7174
hide,
7275
includeAll,
76+
skipUrlSync,
7377
});
7478

7579
variable.refreshOptions();
76-
}, [hide, includeAll, label, pluginId, regex, variable, variableAdded]);
80+
}, [skipUrlSync, hide, includeAll, label, pluginId, regex, variable, variableAdded]);
7781

7882
// Need to block child rendering until the variable is added so that child components like RVariableSelect find the variable
7983
if (!variableAdded) {

packages/scenes-react/src/variables/QueryVariable.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ export function QueryVariable({
2828
initialValue,
2929
isMulti,
3030
includeAll,
31+
skipUrlSync,
3132
children,
3233
}: QueryVariableProps): React.ReactNode {
3334
const scene = useSceneContext();
@@ -48,6 +49,7 @@ export function QueryVariable({
4849
isMulti,
4950
hide,
5051
includeAll,
52+
skipUrlSync,
5153
});
5254
}
5355

@@ -70,7 +72,8 @@ export function QueryVariable({
7072
variable.state.hide === hide &&
7173
variable.state.includeAll === includeAll &&
7274
variable.state.refresh === refresh &&
73-
variable.state.sort === sort
75+
variable.state.sort === sort &&
76+
variable.state.skipUrlSync === skipUrlSync
7477
) {
7578
return;
7679
}
@@ -84,10 +87,11 @@ export function QueryVariable({
8487
regex,
8588
hide,
8689
includeAll,
90+
skipUrlSync,
8791
});
8892

8993
variable.refreshOptions();
90-
}, [datasource, hide, includeAll, label, query, refresh, regex, sort, variable, variableAdded]);
94+
}, [skipUrlSync, datasource, hide, includeAll, label, query, refresh, regex, sort, variable, variableAdded]);
9195

9296
// Need to block child rendering until the variable is added so that child components like RVariableSelect find the variable
9397
if (!variableAdded) {

packages/scenes-react/src/variables/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ export interface VariableProps {
66
label?: string;
77
hide?: VariableHide;
88
initialValue?: VariableValue;
9+
skipUrlSync?: boolean;
910
}

0 commit comments

Comments
 (0)