diff --git a/src/core/internal/iframe-form/index.ts b/src/core/internal/iframe-form/index.ts index c68bff8a..2659c238 100644 --- a/src/core/internal/iframe-form/index.ts +++ b/src/core/internal/iframe-form/index.ts @@ -15,6 +15,7 @@ import { FRAME_ELEMENT, DEFAULT_ERROR_TEXT_ELEMENT_TYPES, DEFAULT_REQUIRED_TEXT_ELEMENT_TYPES, + CardType, } from '../../constants'; import EventEmitter from '../../../event-emitter'; import regExFromString from '../../../libs/regex'; @@ -107,6 +108,8 @@ export class IFrameFormElement extends EventEmitter { containerType: string; + cardType: string = CardType.DEFAULT; + constructor(name: string, label: string, metaData, context: Context, skyflowID?: string) { super(); const frameValues = name.split(':'); diff --git a/src/core/internal/index.ts b/src/core/internal/index.ts index 7b877e0b..e0d45bb6 100644 --- a/src/core/internal/index.ts +++ b/src/core/internal/index.ts @@ -274,9 +274,12 @@ export class FrameElement { } if (this.iFrameFormElement.fieldType === ELEMENTS.CARD_NUMBER.name) { const cardType = detectCardType(state.value); - if (this.options.enableCardIcon) { - if (this.domImg) { - this.domImg.src = CARD_ENCODED_ICONS[cardType] || 'none'; + if (cardType !== this.iFrameFormElement.cardType) { + if (this.options.enableCardIcon) { + if (this.domImg) { + this.domImg.src = CARD_ENCODED_ICONS[cardType] || 'none'; + this.iFrameFormElement.cardType = cardType; + } } } const cardNumberMask = addSeperatorToCardNumberMask(