Skip to content

Commit

Permalink
Tracked click events pt 2
Browse files Browse the repository at this point in the history
* only track click events when analytics feature is enabled
  • Loading branch information
MetaverseUnknower committed Nov 20, 2022
1 parent d20ca93 commit 48ecc58
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 8 deletions.
8 changes: 8 additions & 0 deletions src/classes/SceneData.ts
Expand Up @@ -15,3 +15,11 @@ export class SceneData {
features: TFeatureConfig[] = [];
dialogs: TDialogConfig[] = [];
}

export class SceneFeatures {
analytics: boolean = false;
customizations: boolean = false;
dialogs: boolean = false;
entityPlacement: boolean = false;
moderation: boolean = false;
}
3 changes: 2 additions & 1 deletion src/classes/StoredImage.ts
Expand Up @@ -3,6 +3,7 @@ import { recordEvent } from "../analytics";
import { sdkImageFlippedDimension, sdkImagesAreFlipped, sdkImagesFace, vlmImagesFace } from "../helpers/defaults";
import { getEntityByName } from "../helpers/entity";
import { IEmission, ITexture, ITransform } from "../interfaces/index";
import { sceneFeatures } from "../sceneData";
import { imageInstances, imageMaterials } from "../storage";
import { EClickEventType, TClickEvent, TImageInstanceConfig, TImageMaterialConfig, TTransform } from "../types/index";
import { StoredEntityInstance } from "./StoredEntity";
Expand Down Expand Up @@ -272,7 +273,7 @@ export class StoredImageInstance extends StoredEntityInstance implements ITransf
trackClickEvent: CallableFunction = (clickEvent: TClickEvent, id: string) => {
const trackingId = clickEvent.trackingId || id;

if (clickEvent.hasTracking) {
if (clickEvent.hasTracking && sceneFeatures.analytics) {
recordEvent(trackingId);
}
};
Expand Down
3 changes: 2 additions & 1 deletion src/connect.ts
Expand Up @@ -7,7 +7,7 @@ import { createImage, updateImage, updateImageInstance, createImageInstance, del
import { createNft, createNftInstance, deleteNft, deleteNftInstance, updateNft, updateNftInstance } from "./nfts";
import { createVideoScreen, updateVideoScreen, updateVideoInstance, createVideoInstance, deleteVideoScreen, deleteVideoInstance } from "./videos";
import { updateCustomization, deleteCustomization } from "./custom";
import { updateSceneData } from "./sceneData";
import { updateSceneData, updateSceneFeatures } from "./sceneData";
import { updateModeration } from "./moderation";
import { initScene } from "./init";
import { checkPreviewMode, isPreview, runLocalServer, runStagingServer } from "./environment";
Expand Down Expand Up @@ -98,6 +98,7 @@ export const connectCMS = async () => {
}

updateSceneData(message.sceneData);
updateSceneFeatures(message.features);

switch (message.action) {
case "init":
Expand Down
14 changes: 10 additions & 4 deletions src/sceneData.ts
@@ -1,9 +1,15 @@
import { SceneData } from "./classes/SceneData";
import { TSceneData } from "./types/SceneData";
import { SceneData, SceneFeatures } from "./classes/SceneData";
import { TSceneData, TSceneFeatures } from "./types/SceneData";

export let sceneData: TSceneData = new SceneData();
export let sceneFeatures: TSceneFeatures = new SceneFeatures();

export const updateSceneData = (sceneDataConfig: TSceneData) => {
sceneData = sceneDataConfig;
}
sceneData = sceneDataConfig;
};

export const updateSceneFeatures = (sceneFeaturesConfig: TSceneFeatures) => {
Object.keys(sceneFeaturesConfig).forEach((feature: string) => {
sceneFeatures[feature] = sceneFeaturesConfig[feature];
});
};
8 changes: 8 additions & 0 deletions src/types/SceneData.ts
Expand Up @@ -15,3 +15,11 @@ export type TSceneData = {
features: TFeatureConfig[];
dialogs: TDialogConfig[];
};

export type TSceneFeatures = {
analytics: boolean;
customizations: boolean;
dialogs: boolean;
entityPlacement: boolean;
moderation: boolean;
};
4 changes: 2 additions & 2 deletions src/types/WebSocketMessage.ts
Expand Up @@ -2,13 +2,13 @@ import { TCustomizationConfig } from "./Customization";
import { TEntityInstanceConfig, TEntityMaterialConfig } from "./Entity";
import { TImageInstanceConfig, TImageMaterialConfig } from "./Image";
import { TNFTConfig, TNFTInstanceConfig } from "./NFT";
import { TSceneData } from "./SceneData";
import { TSceneData, TSceneFeatures } from "./SceneData";
import { TVideoInstanceConfig, TVideoMaterialConfig } from "./VideoScreen";

export type TWebSocketMessage = {
action: string;
sceneData: TSceneData;
features?: { [id: string]: boolean };
features: TSceneFeatures;
entityData?: TEntityMaterialConfig | TVideoMaterialConfig | TImageMaterialConfig | TNFTConfig;
instanceData?: TEntityInstanceConfig | TVideoInstanceConfig | TImageInstanceConfig | TNFTInstanceConfig;
customizationData?: TCustomizationConfig;
Expand Down

0 comments on commit 48ecc58

Please sign in to comment.