Skip to content

Commit 1d1fd4f

Browse files
fix: clear field schema map on variant change
Clear field schema map on variant change as it contains a field - isUnlinkedVariant which depends on the current selected variant for its value
1 parent 063f81a commit 1d1fd4f

2 files changed

Lines changed: 8 additions & 0 deletions

File tree

src/visualBuilder/eventManager/useVariantsPostMessageEvent.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { VisualBuilder } from "..";
22
import { visualBuilderStyles } from "../visualBuilder.style";
33
import visualBuilderPostMessage from "../utils/visualBuilderPostMessage";
44
import { VisualBuilderPostMessageEvents } from "../utils/types/postMessage.types";
5+
import { FieldSchemaMap } from "../utils/fieldSchemaMap";
56

67
interface VariantFieldsEvent {
78
data: {
@@ -96,6 +97,12 @@ export function useVariantFieldsPostMessageEvent(): void {
9697
VisualBuilderPostMessageEvents.GET_VARIANT_ID,
9798
(event: VariantEvent) => {
9899
setVariant(event.data.variant);
100+
// clear field schema when variant is changed.
101+
// this is required as we cache field schema
102+
// which contain a key isUnlinkedVariant.
103+
// This key can change when variant is changed,
104+
// so clear the field schema cache
105+
FieldSchemaMap.clear();
99106
}
100107
);
101108
visualBuilderPostMessage?.on(

src/visualBuilder/utils/fieldSchemaMap.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,5 +95,6 @@ export class FieldSchemaMap {
9595
*/
9696
static clear(): void {
9797
FieldSchemaMap.fieldSchema = {};
98+
FieldSchemaMap.fieldSchemaPromise = {};
9899
}
99100
}

0 commit comments

Comments
 (0)