diff --git a/types/react-google-recaptcha/v0/index.d.ts b/types/react-google-recaptcha/v0/index.d.ts new file mode 100644 index 0000000000..6636e6c5b6 --- /dev/null +++ b/types/react-google-recaptcha/v0/index.d.ts @@ -0,0 +1,84 @@ +// Type definitions for React Google Recaptcha 0.10 +// Project: https://github.com/dozoisch/react-google-recaptcha +// Definitions by: Koala Human , Tom Sturge +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.8 + +import * as React from 'react'; + +export default ReCAPTCHA; + +declare class ReCAPTCHA extends React.Component { + /** + * Resets the reCAPTCHA widget + */ + reset(): void; + /** + * Programatically invoke the reCAPTCHA check. Used if the invisible reCAPTCHA is on a div instead of a button + */ + execute(): void; + + /** + * Gets the response for the reCAPTCHA widget. + * @return the response of the reCAPTCHA widget. + */ + getValue(): string | null; + + /** + * Gets the widgetId of reCAPTCHA widget + * @return widgetId | null + */ + getWidgetId(): number | null; +} + +type Theme = "light" | "dark"; +type Type = "image" | "audio"; +type Size = "compact" | "normal" | "invisible"; +type Badge = "bottomright" | "bottomleft" | "inline"; + +export interface ReCAPTCHAProps { + /** + * The API client key + */ + sitekey: string; + /** + * The function to be called when the user successfully completes the normal or compat captcha. + * It will also be called with null, when captcha expires + * @param token string or null + */ + onChange?: (token: string|null) => void; + /** + * Optional light or dark theme of the widget + * @default "light" + */ + theme?: Theme; + /** + * Optional image or audio The type of initial captcha + * @default "image" + */ + type?: Type; + /** + * Optional the tabindex of the element + * @default 0 + */ + tabindex?: number; + /** + * Optional callback, called when a challenge expires and has to be redone by the user. + */ + onExpired?: () => void; + /** + * Optional set the stoken parameter, which allows the captcha to be used from different domains, + * @see reCAPTCHA secure-token + */ + stoken?: string; + /** + * Optional compact, normal or invisible. This allows you to change the size or do an invisible captcha + */ + size?: Size; + /** + * Optional. The badge location for g-recaptcha with size of "invisible". + * + * @default "bottomright" + */ + badge?: Badge; +} diff --git a/types/react-google-recaptcha/v0/react-google-recaptcha-tests.tsx b/types/react-google-recaptcha/v0/react-google-recaptcha-tests.tsx new file mode 100644 index 0000000000..deb3eb3a66 --- /dev/null +++ b/types/react-google-recaptcha/v0/react-google-recaptcha-tests.tsx @@ -0,0 +1,15 @@ +import ReCAPTCHA from 'react-google-recaptcha'; +import * as React from 'react'; + +const basicRecapchta = a}/>; +const invisibleRecaptcha: React.SFC = () => { + const recaptchaRef = React.createRef(); + + return ( + + ); +}; diff --git a/types/react-google-recaptcha/v0/tsconfig.json b/types/react-google-recaptcha/v0/tsconfig.json new file mode 100644 index 0000000000..cbcd80d948 --- /dev/null +++ b/types/react-google-recaptcha/v0/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../../", + "typeRoots": [ + "../../" + ], + "paths": { + "react-google-recaptcha": [ "react-google-recaptcha/v0" ] + }, + "types": [], + "jsx": "react", + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "react-google-recaptcha-tests.tsx" + ] +} diff --git a/types/react-google-recaptcha/v0/tslint.json b/types/react-google-recaptcha/v0/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/react-google-recaptcha/v0/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }