payload-plugin-newsletter
Version:
Complete newsletter management plugin for Payload CMS with subscriber management, magic link authentication, and email service integration
53 lines (47 loc) • 2.03 kB
text/typescript
import { SignupFormProps, PreferencesFormProps, Subscriber } from './types.cjs';
import React from 'react';
import 'payload';
declare const NewsletterForm: React.FC<SignupFormProps>;
declare function createNewsletterForm(defaultProps: Partial<SignupFormProps>): React.FC<SignupFormProps>;
declare const PreferencesForm: React.FC<PreferencesFormProps>;
declare function createPreferencesForm(defaultProps: Partial<PreferencesFormProps>): React.FC<PreferencesFormProps>;
interface MagicLinkVerifyProps {
token?: string;
onSuccess?: (sessionToken: string, subscriber: any) => void;
onError?: (error: Error) => void;
apiEndpoint?: string;
className?: string;
styles?: {
container?: React.CSSProperties;
heading?: React.CSSProperties;
message?: React.CSSProperties;
error?: React.CSSProperties;
button?: React.CSSProperties;
};
labels?: {
verifying?: string;
success?: string;
error?: string;
expired?: string;
invalid?: string;
redirecting?: string;
tryAgain?: string;
};
}
declare const MagicLinkVerify: React.FC<MagicLinkVerifyProps>;
declare function createMagicLinkVerify(defaultProps: Partial<MagicLinkVerifyProps>): React.FC<MagicLinkVerifyProps>;
interface UseNewsletterAuthOptions {
sessionTokenKey?: string;
apiEndpoint?: string;
}
interface UseNewsletterAuthReturn {
subscriber: Subscriber | null;
loading: boolean;
error: Error | null;
isAuthenticated: boolean;
login: (token: string) => Promise<void>;
logout: () => void;
refreshSubscriber: () => Promise<void>;
}
declare function useNewsletterAuth(options?: UseNewsletterAuthOptions): UseNewsletterAuthReturn;
export { MagicLinkVerify, type MagicLinkVerifyProps, NewsletterForm, PreferencesForm, PreferencesFormProps, SignupFormProps, Subscriber, type UseNewsletterAuthOptions, type UseNewsletterAuthReturn, createMagicLinkVerify, createNewsletterForm, createPreferencesForm, useNewsletterAuth };