Skip to content

Commit

Permalink
feat: adds setValueRef to elements (#406)
Browse files Browse the repository at this point in the history
* feat: adds setValueRef to elements

* feat: remove setValueRef from card element
  • Loading branch information
kevinperaza committed Mar 13, 2024
1 parent 6250600 commit f1b5f2a
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions src/types/elements/elements.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ import type {
ElementMetadata,
} from './shared';

type ValueSetter<T> = (value: T) => void;

interface BaseElement<UpdateOptions, ElementEvents> {
readonly mounted: boolean;
readonly metadata: ElementMetadata;
Expand All @@ -48,36 +50,40 @@ interface BaseElement<UpdateOptions, ElementEvents> {

type CardElement = BaseElement<UpdateCardElementOptions, CardElementEvents> & {
readonly cardMetadata?: CardMetadata;
setValue(value: CardElementValue<'reference'>): void;
setValue: ValueSetter<CardElementValue<'reference'>>;
};

type TextElement = BaseElement<UpdateTextElementOptions, TextElementEvents> & {
setValue(value: DataElementReference): void;
setValue: ValueSetter<DataElementReference>;
setValueRef: ValueSetter<TextElement>;
};

type CardNumberElement = BaseElement<
UpdateCardNumberElementOptions,
CardNumberElementEvents
> & {
readonly cardMetadata?: CardMetadata;
setValue(value: DataElementReference): void;
setValue: ValueSetter<DataElementReference>;
setValueRef: ValueSetter<CardNumberElement>;
};

type CardExpirationDateElement = BaseElement<
UpdateCardExpirationDateElementOptions,
CardExpirationDateElementEvents
> & {
setValue: ValueSetter<CardExpirationDateValue<'reference'>>;
setValueRef: ValueSetter<CardExpirationDateElement>;
month(): ElementWrapper<CardExpirationDateElement>;
year(): ElementWrapper<CardExpirationDateElement>;
format(dateFormat: string): ElementWrapper<CardExpirationDateElement>;
setValue(value: CardExpirationDateValue<'reference'>): void;
};

type CardVerificationCodeElement = BaseElement<
UpdateCardVerificationCodeElementOptions,
CardVerificationCodeElementEvents
> & {
setValue(value: DataElementReference): void;
setValue: ValueSetter<DataElementReference>;
setValueRef: ValueSetter<CardVerificationCodeElement>;
};

// eslint-disable-next-line @typescript-eslint/no-explicit-any
Expand Down

0 comments on commit f1b5f2a

Please sign in to comment.