diff --git a/react-gravatar/index.d.ts b/react-gravatar/index.d.ts new file mode 100644 index 0000000000..804fe440bc --- /dev/null +++ b/react-gravatar/index.d.ts @@ -0,0 +1,80 @@ +// Type definitions for react-gravatar 2.6 +// Project: http://kyleamathews.github.io/react-gravatar/ +// Definitions by: invliD +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import * as React from "react"; + +export as namespace Gravatar; + +export = Gravatar; + +/** + * React component for rendering a gravatar profile image. Adjusts automatically to HiDPI displays. + */ +declare class Gravatar extends React.Component { + static readonly displayName: string; + + static readonly defaultProps: Gravatar.Props; + + render(): JSX.Element | null; +} + +declare namespace Gravatar { + export type DefaultImage = "404" | "mm" | "identicon" | "monsterid" | "wavatar" | "retro" | "blank"; + export type Rating = "g" | "pg" | "r" | "x"; + + export interface Props { + /** + * The email address used to look up the Gravatar image. + * If you wish to avoid sending an email address to the client, you can compute the md5 hash on the server and + * pass the hash to the component using the `md5` prop instead of the `email` prop. + */ + email?: string; + + /** + * The md5 hash of the email address used to look up the Gravatar image. + * If you wish to avoid sending an email address to the client, you can compute the md5 hash on the server and + * pass the hash to the component using the `md5` prop instead of the `email` prop. + */ + md5?: string; + + /** + * By default, images are presented at 50px by 50px if no size prop is supplied. + * + * @default 50 + * @see https://gravatar.com/site/implement/images/#size + */ + size?: number; + + /** + * Gravatar allows users to self-rate their images so that they can indicate if an image is appropriate for a + * certain audience. By default, only `g` rated images are displayed unless you indicate that you would like + * to see higher ratings. + * + * @default "g" + * @see https://gravatar.com/site/implement/images/#rating + */ + rating?: Rating; + + /** + * Gravatar has a number of built in options which you can use as defaults when an email address has no + * matching Gravatar image. + * + * @default "retro" + * @see https://gravatar.com/site/implement/images/#default-image + */ + default?: DefaultImage; + + /** + * The protocol used to fetch the Gravatar image. Should be one of `http://`, `https://` or `//` (default). + * + * @default "//" + * @see https://gravatar.com/site/implement/images/#secure-images + */ + protocol?: string; + + className?: string; + style?: React.CSSProperties; + } +} diff --git a/react-gravatar/react-gravatar-tests.tsx b/react-gravatar/react-gravatar-tests.tsx new file mode 100644 index 0000000000..1e52dd5f81 --- /dev/null +++ b/react-gravatar/react-gravatar-tests.tsx @@ -0,0 +1,40 @@ +import * as React from "react"; +import * as Gravatar from "react-gravatar"; + +class GravatarEmailTest extends React.Component { + public render() { + return ( + + ); + } +} + +class GravatarHashTest extends React.Component { + public render() { + return ( + + ); + } +} + +class GravatarMinimalTest extends React.Component { + public render() { + return ; + } +} \ No newline at end of file diff --git a/react-gravatar/tsconfig.json b/react-gravatar/tsconfig.json new file mode 100644 index 0000000000..213b945e42 --- /dev/null +++ b/react-gravatar/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "jsx": "react", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "react-gravatar-tests.tsx" + ] +} diff --git a/react-gravatar/tslint.json b/react-gravatar/tslint.json new file mode 100644 index 0000000000..377cc837d4 --- /dev/null +++ b/react-gravatar/tslint.json @@ -0,0 +1 @@ +{ "extends": "../tslint.json" }