From ff51b14db0699e9d62059c40478e3f22c260f3b9 Mon Sep 17 00:00:00 2001 From: Alaa Masoud Date: Thu, 28 Dec 2017 09:15:00 +0300 Subject: [PATCH] Add type definitions for react-content-loader --- types/react-content-loader/index.d.ts | 38 +++++++++++++++++++ .../react-content-loader-tests.tsx | 21 ++++++++++ types/react-content-loader/tsconfig.json | 24 ++++++++++++ types/react-content-loader/tslint.json | 1 + 4 files changed, 84 insertions(+) create mode 100644 types/react-content-loader/index.d.ts create mode 100644 types/react-content-loader/react-content-loader-tests.tsx create mode 100644 types/react-content-loader/tsconfig.json create mode 100644 types/react-content-loader/tslint.json diff --git a/types/react-content-loader/index.d.ts b/types/react-content-loader/index.d.ts new file mode 100644 index 0000000000..64cd21b15c --- /dev/null +++ b/types/react-content-loader/index.d.ts @@ -0,0 +1,38 @@ +// Type definitions for react-content-loader 1.7 +// Project: https://github.com/danilowoz/react-content-loader +// Definitions by: Alaa Masoud +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +import * as React from 'react'; + +export interface ContentLoaderProps { + style?: React.CSSProperties; + type?: 'facebook' | 'instagram' | 'list' | 'bullet-list' | 'code'; + speed?: number; + width?: number; + height?: number; + primaryColor?: string; + secondaryColor?: string; + preserveAspectRatio?: 'none' | 'xMinYMin meet' | 'xMidYMin meet' | 'xMaxYMin meet' | 'xMinYMid meet' | 'xMidYMid meet' | 'xMaxYMid meet' | + 'xMinYMax meet' | 'xMidYMax meet' | 'xMaxYMax meet' | 'xMinYMin slice' | 'xMidYMin slice' | 'xMaxYMin slice' | 'xMinYMid slice' | + 'xMidYMid slice' | 'xMaxYMid slice' | 'xMinYMax slice' | 'xMidYMax slice' | 'xMaxYMax slice'; + className?: string; +} +export default class ContentLoader extends React.Component { } + +export interface CircleProps { + x: number; + y: number; + radius: number; +} +export class Circle extends React.Component { } + +export interface RectProps { + x: number; + y: number; + radius: number; + width: number; + height: number; +} +export class Rect extends React.Component { } diff --git a/types/react-content-loader/react-content-loader-tests.tsx b/types/react-content-loader/react-content-loader-tests.tsx new file mode 100644 index 0000000000..e5434746ae --- /dev/null +++ b/types/react-content-loader/react-content-loader-tests.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import ContentLoader, { Circle, Rect } from 'react-content-loader'; + +const CustomComponent = () => { + return ( + + + + + + ); +}; diff --git a/types/react-content-loader/tsconfig.json b/types/react-content-loader/tsconfig.json new file mode 100644 index 0000000000..4385503dc9 --- /dev/null +++ b/types/react-content-loader/tsconfig.json @@ -0,0 +1,24 @@ +{ + "files": [ + "index.d.ts", + "react-content-loader-tests.tsx" + ], + "compilerOptions": { + "jsx": "react", + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + } +} diff --git a/types/react-content-loader/tslint.json b/types/react-content-loader/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/react-content-loader/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }