Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 31 additions & 2 deletions src/managers/gist-properties-manager.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { GistMessage, ResolvedMessageProperties } from '../types';
import type { GistMessage, ResolvedMessageProperties, StepDisplayConfig } from '../types';

export const MESSAGE_PROPERTY_DEFAULTS: ResolvedMessageProperties = {
isEmbedded: false,
Expand All @@ -19,6 +19,35 @@ export const MESSAGE_PROPERTY_DEFAULTS: ResolvedMessageProperties = {
hasCustomWidth: false,
};

function resolveMessageTooltipColor(message: GistMessage): string {
let tooltipColor = MESSAGE_PROPERTY_DEFAULTS.tooltipArrowColor;

if ((message?.properties?.gist?.tooltipArrowColor?.length ?? 0) > 0) {
tooltipColor = message!.properties!.gist!.tooltipArrowColor!;
} else {
if (!Array.isArray(message?.displaySettings) || message.displaySettings.length === 0) {
return tooltipColor;
}

// Try to match savedStepName, otherwise use first step
let step: StepDisplayConfig = message.displaySettings[0];
if (message.savedStepName) {
const matchedStep = message.displaySettings.find(
(s: StepDisplayConfig) => s?.stepName === message.savedStepName && s.displaySettings
);
if (matchedStep) {
step = matchedStep;
}
}

if (step?.displaySettings?.tooltipArrowColor) {
tooltipColor = step.displaySettings.tooltipArrowColor;
}
}

return tooltipColor;
}

export function resolveMessageProperties(message: GistMessage): ResolvedMessageProperties {
const defaults = MESSAGE_PROPERTY_DEFAULTS;

Expand All @@ -34,7 +63,7 @@ export function resolveMessageProperties(message: GistMessage): ResolvedMessageP
hasPosition: !!gist.position,
tooltipPosition: gist.tooltipPosition || '',
hasTooltipPosition: !!gist.tooltipPosition,
tooltipArrowColor: gist.tooltipArrowColor || defaults.tooltipArrowColor,
tooltipArrowColor: resolveMessageTooltipColor(message),
shouldScale: !!gist.scale,
campaignId: gist.campaignId ?? null,
messageWidth:
Expand Down
Loading