Skip to content

Commit 2b64bc1

Browse files
authored
fix(cubejs-playground): meta update propagation (#9895)
* fix(cubejs-playground): meta update propagation * chore(cubejs-playground): add serve command
1 parent e073a72 commit 2b64bc1

File tree

2 files changed

+32
-30
lines changed

2 files changed

+32
-30
lines changed

packages/cubejs-playground/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"scripts": {
1414
"unit": "vitest run",
1515
"dev": "vite",
16+
"serve": "vite preview",
1617
"watch": "tsc --noEmit false --watch",
1718
"build:lib": "tsc --noEmit false && node postbuild.js && cp -R src/img/ lib/img/",
1819
"build:vizard": "cd ./vizard && yarn && yarn build && cp -R ./build ../public/vizard",
@@ -108,4 +109,4 @@
108109
"react-dom": ">=18.0.0",
109110
"styled-components": ">=6.0.0"
110111
}
111-
}
112+
}

packages/cubejs-playground/src/QueryBuilderV2/hooks/query-builder.ts

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ export function useQueryBuilder(props: UseQueryBuilderProps) {
242242
.map((name) => ({ name, category: 'dimensions' }) as MissingMember) || []),
243243
],
244244
];
245-
}, [usedCubes, usedMembers, meta]);
245+
}, [usedCubes, usedMembers, meta, members]);
246246

247247
// place joined cubes first
248248
cubes.sort((c1, c2) => {
@@ -340,7 +340,6 @@ export function useQueryBuilder(props: UseQueryBuilderProps) {
340340
};
341341

342342
setIsMetaLoading(false);
343-
setMeta(newMeta);
344343

345344
const memberData: CubeMembers = {
346345
dimensions: {},
@@ -377,6 +376,8 @@ export function useQueryBuilder(props: UseQueryBuilderProps) {
377376
})
378377
.sort((a, b) => a.name.localeCompare(b.name)) as Cube[]
379378
);
379+
380+
setMeta(newMeta);
380381
})
381382
.catch((error) => {
382383
if (currentRequest !== metaLoadingRef.current) {
@@ -1083,46 +1084,46 @@ export function useQueryBuilder(props: UseQueryBuilderProps) {
10831084
// @ts-ignore
10841085
const connectionId = usedCubes[0]
10851086
? // @ts-ignore
1086-
(() => {
1087-
const cubeName = usedCubes.find((cubeName) => getCubeByName(cubeName)?.connectedComponent);
1087+
(() => {
1088+
const cubeName = usedCubes.find((cubeName) => getCubeByName(cubeName)?.connectedComponent);
10881089

1089-
return cubeName ? getCubeByName(cubeName)?.connectedComponent : undefined;
1090-
})()
1090+
return cubeName ? getCubeByName(cubeName)?.connectedComponent : undefined;
1091+
})()
10911092
: undefined;
10921093

10931094
// @ts-ignore
10941095
const joinableCubes = !usedCubes.length
10951096
? [...cubes]
10961097
: cubes.filter((cube) =>
1097-
// @ts-ignore
1098-
connectionId != null ? cube.connectedComponent === connectionId : cube.name === usedCubes[0]
1099-
);
1098+
// @ts-ignore
1099+
connectionId != null ? cube.connectedComponent === connectionId : cube.name === usedCubes[0]
1100+
);
11001101
const joinableCubeNames = joinableCubes.map((cube) => cube.name);
11011102
const joinableMembers = useMemo(
11021103
() =>
11031104
!usedCubes.length
11041105
? {
1105-
dimensions: members.dimensions,
1106-
measures: members.measures,
1107-
segments: members.segments,
1108-
}
1106+
dimensions: members.dimensions,
1107+
measures: members.measures,
1108+
segments: members.segments,
1109+
}
11091110
: {
1110-
dimensions: Object.fromEntries(
1111-
Object.entries(members.dimensions).filter(([name]) =>
1112-
joinableCubeNames.includes(name.split('.')[0])
1113-
)
1114-
),
1115-
measures: Object.fromEntries(
1116-
Object.entries(members.measures).filter(([name]) =>
1117-
joinableCubeNames.includes(name.split('.')[0])
1118-
)
1119-
),
1120-
segments: Object.fromEntries(
1121-
Object.entries(members.segments).filter(([name]) =>
1122-
joinableCubeNames.includes(name.split('.')[0])
1123-
)
1124-
),
1125-
},
1111+
dimensions: Object.fromEntries(
1112+
Object.entries(members.dimensions).filter(([name]) =>
1113+
joinableCubeNames.includes(name.split('.')[0])
1114+
)
1115+
),
1116+
measures: Object.fromEntries(
1117+
Object.entries(members.measures).filter(([name]) =>
1118+
joinableCubeNames.includes(name.split('.')[0])
1119+
)
1120+
),
1121+
segments: Object.fromEntries(
1122+
Object.entries(members.segments).filter(([name]) =>
1123+
joinableCubeNames.includes(name.split('.')[0])
1124+
)
1125+
),
1126+
},
11261127
[joinableCubeNames.join(',')]
11271128
);
11281129

0 commit comments

Comments
 (0)