diff --git a/package.json b/package.json index fda4e12..8d59118 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "0.34.02", "description": "Responsive grid for React Native based on react-native-flexbox-grid", "main": "src/index.js", + "types": "src/index.d.ts", "repository": { "type": "git", "url": "git+https://github.com/idibidiart/react-native-responsive-grid.git" @@ -20,5 +21,8 @@ "url": "https://github.com/idibidiart/react-native-responsive-grid/issues" }, "homepage": "https://github.com/idibidiart/react-native-responsive-grid#readme", - "dependencies": {} + "dependencies": { + "@types/react": "^16.0.25", + "@types/react-native": "^0.50.7" + } } diff --git a/src/index.d.ts b/src/index.d.ts new file mode 100644 index 0000000..8aa89da --- /dev/null +++ b/src/index.d.ts @@ -0,0 +1,74 @@ +declare module "react-native-responsive-grid" { + import { Component } from "react"; + import { ViewProperties } from "react-native"; + + export interface GridProps { + + } + + export interface ColumnProps { + size?: number, + sizePoints?: number, + offset?: number, + offsetPoints?: number, + smSize?: number, + smSizePoints?: number, + smOffset?: number, + smOffsetPoints?: number, + smHidden?: boolean, + mdSize?: number, + mdSizePoints?: number, + mdOffset?: number, + mdOffsetPoints?: number, + mdHidden?: boolean, + lgSize?: number, + lgSizePoints?: number, + lgOffset?: number, + lgOffsetPoints?: number, + lgHidden?: boolean, + xlSize?: number, + xlSizePoints?: number, + xlOffset?: number, + xlOffsetPoints?: number, + xlHidden?: boolean, + vAlign?: 'space' | 'distribute' | 'middle' | 'bottom' | 'top', + hAlign?: 'stretch' | 'center' | 'right' | 'left', + alignSelf?: 'auto' | 'top' | 'bottom' | 'middle' | 'stretch' | 'baseline', + fullWidth?: boolean, + aspectRatio?: object + } + + export interface RowProps { + rtl?: boolean, + noWrap?: boolean, + hAlign?: 'space' | 'distribute' | 'center' | 'left' | 'right', + vAlign?: 'stretch' | 'middle' | 'right' | 'left', + alignSelf?: 'auto' | 'left' | 'right' | 'center' | 'stretch', + fullHeight?: boolean, + alignLines?: string, + size?: number, + sizePoints?: number + smSizePoints?: number, + mdSizePoints?: number, + lgSizePoints?: number, + xlSizePoints?: number + } + + export type AspectRatio = '16:9' | '16:10' | '3:2' | '4:3' | '1:1' |'4:3' | '3:2' | '16:10' | '16:9' + + export class Row extends Component { } + export class Column extends Component { } + export class Grid extends Component { } + + export interface ScreenParams { + mediaSize: 'sm' | 'md' | 'lg' | 'xl', + width: number, + height: number, + aspectRatio?: { + currentNearestRatio: AspectRatio, + currentOrientation: 'square' | 'landscape' | 'portrait' + } + } + + export function ScreenInfo(onlySize?: boolean): ScreenParams; +} \ No newline at end of file