courier-vue-embedded
Version:
Vue 3 wrapper for trycourier
44 lines (42 loc) • 1.24 kB
TypeScript
import { CSSObject } from 'styled-components';
import { IInboxMessagePreview, Brand } from './core';
type ToastPosition = 'top-left' | 'top-right' | 'top-center' | 'bottom-left' | 'bottom-right' | 'bottom-center';
interface Theme {
body?: CSSObject;
root?: CSSObject;
toast?: CSSObject;
dismiss?: CSSObject;
message?: {
clickableContainer?: CSSObject;
container?: CSSObject;
contents?: CSSObject;
icon?: CSSObject;
textElement?: CSSObject;
title?: CSSObject;
};
progressBar?: CSSObject;
}
export interface ToastProps {
autoClose?: false | number;
brand?: Brand;
defaultIcon?: string | false;
hideProgressBar?: boolean;
onClick?: React.MouseEventHandler<Element>;
openLinksInNewTab?: boolean;
position?: ToastPosition;
role?: string;
theme?: Theme;
transition?: string;
}
export interface ToastPreview {
preview?: string;
title?: string;
}
export type ToastParams = string | IInboxMessagePreview | ToastPreview;
export interface ToastSdk {
config: ToastProps;
mergeConfig: (config: ToastProps) => void;
setConfig: (config: ToastProps) => void;
toast: (params: ToastParams) => void;
}
export {};