sriram10/react-native-material-textfield-new

View on GitHub
index.d.ts

Summary

Maintainability
A
0 mins
Test Coverage
// Type definitions for react-native-material-textfield 0.16
// Project: https://github.com/n4kz/react-native-material-textfield
// Definitions by: Ville Venäläinen <https://github.com/mindhivefi>
//                 Kyle Roach <https://github.com/iRoachie>
//                 Deividi Cavarzan <https://github.com/cavarzan>
//                 Neel bhasin <https://github.com/neelb2>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.8

import * as React from 'react';
import {
  StyleProp,
  TextInputProps,
  TextStyle,
  ViewStyle,
} from 'react-native';

export interface ContentInset {
  top?: number;
  label?: number;
  input?: number;
  left?: number;
  right?: number;
}

export interface TextFieldProps extends TextInputProps {
  animationDuration?: number;
  animationOffset?: number;

  fontSize?: number;
  labelFontSize?: number;
  contentInset?: ContentInset;

  style?: StyleProp<TextStyle>;
  labelTextStyle?: StyleProp<TextStyle>;
  titleTextStyle?: StyleProp<TextStyle>;
  affixTextStyle?: StyleProp<TextStyle>;

  tintColor?: string;
  textColor?: string;
  baseColor?: string;

  label?: string;
  title?: string;

  characterRestriction?: number;

  error?: string;
  errorColor?: string;
  errortTestId?: string;

  lineWidth?: number;
  activeLineWidth?: number;

  disabled?: boolean;

  disabledLineWidth?: number;

  clearTextOnFocus?: boolean;

  prefix?: string;
  suffix?: string;

  containerStyle?: StyleProp<ViewStyle>;
  inputContainerStyle?: StyleProp<ViewStyle>;

  onPress?(event: Event): void;
  onChangeText?(text: string): void;

  renderLeftAccessory?(): JSX.Element | boolean;
  renderRightAccessory?(): JSX.Element | boolean;

  disableLabelAnimation?: boolean;

  lineType?: 'solid' | 'dotted' | 'dashed' | 'none';
  disabledLineType?: 'solid' | 'dotted' | 'dashed' | 'none';

  editable?: boolean;
  multiline?: boolean;

  formatText?(text: string): string;
}

/**
 * Material Style Text Field
 * @see https://github.com/n4kz/react-native-material-textfield/blob/master/src/components/field/index.js
 */
export class TextField extends React.Component<TextFieldProps, any> {
  /*
   * Acquire focus
   */
  focus(): void;
  /*
   * Release focus
   */
  blur(): void;
  /*
   * Clear text field
   */
  clear(): void;
  /*
   * Get current value
   */
  value(): string;
  /*
   * Get current focus state
   */
  isFocused(): boolean;
  /*
   * Get current restriction state
   */
  isRestricted(): boolean;
  /*
   * Set current value
   */
  setValue(value?: string): void;
  focused: boolean;
  mounted: boolean;
}

export class OutlinedTextField extends TextField {}
export class FilledTextField extends TextField {}