UNPKG

react-roast

Version:

A React widget to get feedback

72 lines (67 loc) 2.1 kB
import { ReactNode } from 'react'; import * as react_jsx_runtime from 'react/jsx-runtime'; type ScreenshotType = "full-screenshot" | "selected-screenshot"; type ScreenshotBlobs = Array<{ blob: Blob; type: ScreenshotType; }>; interface FormDataProps { message: string; screenshotBlobs: ScreenshotBlobs; } type WidgetPlacement = "left-center" | "left-bottom" | "right-center" | "right-bottom" | "bottom-left" | "bottom-right"; type FormSubmitHandler = (data: FormDataProps) => Promise<boolean>; interface WidgetCustomizeProps { form?: { className?: string; errorMessage?: string; successMessage?: string; submitButton?: { label?: string; className?: string; }; cancelButton?: { label?: string; className?: string; }; messageInput?: { placeholder?: string; className?: string; }; }; island?: { placement?: WidgetPlacement; className?: string; label?: string; switchButton?: { className?: string; thumb?: { className?: string; }; }; }; } interface BaseWidgetProviderProps { customize?: WidgetCustomizeProps; hideIsland?: boolean; children: ReactNode; } interface LocalWidgetProviderProps extends BaseWidgetProviderProps { mode: "local"; siteId?: never; onFormSubmit: FormSubmitHandler; } interface RemoteWidgetProviderProps extends BaseWidgetProviderProps { siteId: string; mode?: "remote"; onFormSubmit?: never; } type WidgetProviderProps = LocalWidgetProviderProps | RemoteWidgetProviderProps; declare const WidgetProvider: ({ children, ...props }: WidgetProviderProps) => react_jsx_runtime.JSX.Element; declare const useReactRoast: () => { isWidgetActive: boolean; toggleWidget: () => void; avoidElementClassName: string; setIslandVisiblity: (visible: boolean) => void; }; export { type FormDataProps, type WidgetProviderProps, WidgetProvider as default, useReactRoast };