@solidgate/client-sdk-loader
Version:
Solidgate client sdk loader
56 lines (50 loc) • 1.38 kB
text/typescript
import Message from './Message'
import FieldName from '../../enums/FieldName'
import AdditionalFieldName from '../../enums/AdditionalFieldName'
import InteractionType from '../../enums/InteractionType'
import InteractionTargetType from '../../enums/InteractionTargetType'
import MessageType from '../../enums/MessageType'
import ResignFieldName from '../../enums/ResignFieldName'
interface ControlState {
isValid: boolean
isTouched: boolean
}
type InteractionMessageFormState =
| {
cardForm: {
fields: Record<
FieldName.CardCvv | FieldName.CardNumber | FieldName.CardExpiryDate,
ControlState
> &
Partial<Record<AdditionalFieldName | 'cardHolder', ControlState>>
} & ControlState
}
| {
resignForm: {
fields: Record<ResignFieldName, ControlState>
} & ControlState
}
type InteractionMessage = Message<MessageType.Interaction> & {
target: {
type: InteractionTargetType
name:
| FieldName
| ResignFieldName
| AdditionalFieldName
| 'submit'
| 'googlePay'
| 'applePay'
| 'paypal'
| 'pix'
| 'upi'
| 'pix-qr'
| 'bizum'
| 'blik'
| 'mbway'
| 'cashapp'
| 'pix-automatico'
| 'clicktopay'
interaction: InteractionType
}
} & InteractionMessageFormState
export default InteractionMessage