mirror of
https://github.com/FlipsideCrypto/DefinitelyTyped.git
synced 2026-02-06 10:56:53 +00:00
🤖 Merge PR #46605 [react-mailchimp-subscribe] Split ResponseArgs by @mariano-filipe
Split into success and error responses. The 'message' of an error response can also be an instance of Error when the jsonp request to MailChimp fails (e.g. due to timeout errors). Also, bump minor version.
This commit is contained in:
parent
efd1527d3d
commit
fda4373744
28
types/react-mailchimp-subscribe/index.d.ts
vendored
28
types/react-mailchimp-subscribe/index.d.ts
vendored
@ -1,10 +1,10 @@
|
||||
// Type definitions for react-mailchimp-subscribe 2.0
|
||||
// Type definitions for react-mailchimp-subscribe 2.1
|
||||
// Project: https://revolunet.github.io/react-mailchimp-subscribe/
|
||||
// Definitions by: Omar Diab <https://github.com/osdiab>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.9
|
||||
|
||||
import { Component, ReactNode } from "react";
|
||||
import { Component, ReactNode } from 'react';
|
||||
|
||||
// A few common set of form fields, based on defaults in Mailchimp's website
|
||||
export interface EmailFormFields {
|
||||
@ -17,20 +17,27 @@ export interface NameFormFields extends EmailFormFields {
|
||||
}
|
||||
|
||||
export interface ClassicFormFields extends NameFormFields {
|
||||
"BIRTHDAY[month]": number;
|
||||
"BIRTHDAY[day]": number;
|
||||
'BIRTHDAY[month]': number;
|
||||
'BIRTHDAY[day]': number;
|
||||
}
|
||||
|
||||
// library default form just sends EMAIL
|
||||
export type DefaultFormFields = EmailFormFields;
|
||||
|
||||
export interface ResponseArgs {
|
||||
status: "success" | "error";
|
||||
export interface ErrorResponseArgs {
|
||||
status: 'error';
|
||||
message: string | Error;
|
||||
}
|
||||
|
||||
export interface SuccessResponseArgs {
|
||||
status: 'success';
|
||||
message: string;
|
||||
}
|
||||
|
||||
export type ResponseArgs = ErrorResponseArgs | SuccessResponseArgs;
|
||||
|
||||
export interface PendingArgs {
|
||||
status: "sending" | null;
|
||||
status: 'sending' | null;
|
||||
message: null;
|
||||
}
|
||||
|
||||
@ -38,14 +45,11 @@ export interface SubscribeArg<FormFields> {
|
||||
subscribe: (data: FormFields) => void;
|
||||
}
|
||||
|
||||
export type FormHooks<FormFields> = SubscribeArg<FormFields> &
|
||||
(ResponseArgs | PendingArgs);
|
||||
export type FormHooks<FormFields> = SubscribeArg<FormFields> & (ErrorResponseArgs | SuccessResponseArgs | PendingArgs);
|
||||
|
||||
export interface Props<FormFields> {
|
||||
render?: (hooks: FormHooks<FormFields>) => ReactNode;
|
||||
url: string;
|
||||
}
|
||||
|
||||
export default class MailchimpSubscribe<FormFields = DefaultFormFields> extends Component<
|
||||
Props<FormFields>
|
||||
> {}
|
||||
export default class MailchimpSubscribe<FormFields = DefaultFormFields> extends Component<Props<FormFields>> {}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user