UNPKG

@pega/custom-dx-components

Version:

Utility for building custom UI components

47 lines (42 loc) 1.91 kB
import {PConnect } from '@pega/pcore-pconnect-typedefs'; // PConnProps.d.ts // This gives us a place to have each component (which is most DX Components) that is // expected to have a getPConnect extend its props (from BaseProps) // such that every component will be expected to have a getPConnect() function // that returns a PConnect object. (new/better way of doing .propTypes). // This PConnProps can be extended to include other props that we know are in every component export interface PConnProps { // getPConnect should exist for every C11n component. (add @ts-ignore in special cases where it isn't) getPConnect: () => typeof PConnect; // Allow any/all other key/value pairs in the BaseProps for now // TODO: refine which other props are always expected for various component // types and consider further interface "subclassing". For example, we may // want to create a "BasePropsForm" that gives guidance on required, readonly, etc. // and any other props that every Form component expects. // For example, see the PConnFieldProps below. // NOTE: if you uncomment the line below, the PConnProps type will allow // otherwise undefined types to appear. This can be helpful for debugging // or when adding new components whose types aren't yet known. // [key: string]: any; } // PConnFieldProps extends PConnProps to bring in the common properties that are // associated with most field components (ex: Dropdown, TextInput, etc.) in the // components/field directory export interface PConnFieldProps extends PConnProps { label: string, required: boolean, disabled: boolean, value: any, validatemessage: string, status?: string, onChange?: any, onBlur?: any, readOnly: boolean, testId: string, helperText: string, displayMode?: string, hideLabel: boolean, placeholder?: string, fieldMetadata?: any, additionalProps?: any }