Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: update form component types #359

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from
Open
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
59 changes: 59 additions & 0 deletions src/form/types/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,11 @@ export const NID_VERIFICATION_BUTTON = 'NID_VERIFICATION_BUTTON'
export const DIVIDER = 'DIVIDER'
export const HEADING3 = 'HEADING3'
export const SIGNATURE = 'SIGNATURE'
export const HIDDEN = 'HIDDEN'
export const LINK_BUTTON = 'LINK_BUTTON'
export const ID_READER = 'ID_READER'
export const HTTP = 'HTTP'
export const ID_VERIFICATION_BANNER = 'ID_VERIFICATION_BANNER'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tahmidrahman-dsi dont we also need HIDDEN ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah yes, we definitely need, on it right away


export enum RadioSize {
LARGE = 'large',
Expand Down Expand Up @@ -491,6 +496,55 @@ export interface ISignatureFormField extends IFormFieldBase {
)[]
}

export interface IHiddenFormField extends IFormFieldBase {
type: typeof HIDDEN
}

export interface IHttpFormField extends IFormFieldBase {
type: typeof HTTP
options: {
url: string
method?: string
headers: Record<string, string>
body?: Record<string, any>
params?: Record<string, any>
}
}

export interface ILinkButtonFormField extends IFormFieldBase {
type: typeof LINK_BUTTON
icon?: {
desktop: string
mobile: string
}
options: {
url: string
callback: {
trigger: string
params: Record<string, string>
}
}
}

export interface QRReaderType {
type: 'QR'
}

type ReaderType = QRReaderType | ILinkButtonFormField
export interface IIDReaderFormField extends IFormFieldBase {
type: typeof ID_READER
dividerLabel: MessageDescriptor
manualInputInstructionLabel: MessageDescriptor
readers: [ReaderType, ...ReaderType[]]
}

export type BannerType = 'pending' | 'verified' | 'failed'
export interface IIDVerificationBannerFormField extends IFormFieldBase {
type: typeof ID_VERIFICATION_BANNER
bannerType: BannerType
idFieldName: string
}

export type IFormField =
| ITextFormField
| ITelFormField
Expand Down Expand Up @@ -524,6 +578,11 @@ export type IFormField =
| IDividerField
| IHeading3Field
| ISignatureFormField
| IHiddenFormField
| IIDReaderFormField
| ILinkButtonFormField
| IHttpFormField
| IIDVerificationBannerFormField
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need | IHiddenFormField


export interface SelectComponentOption {
value: string
Expand Down