feedbacker-react
Version:
A drop-in React feedback system for component-level feedback capture during development and design review
36 lines • 1.82 kB
TypeScript
/**
* useFeedbackEvent hook - Event-based communication between components
* Provides pub/sub pattern for component interactions
*/
import { ComponentInfo } from '../types';
type EventType = 'component:selected' | 'modal:open' | 'modal:close' | 'modal:minimize' | 'modal:restore' | 'sidebar:open' | 'sidebar:close' | 'screenshot:capture' | 'screenshot:complete' | 'draft:save' | 'draft:clear' | 'draft:restore' | 'feedback:submit' | 'feedback:export' | 'selection:start' | 'selection:cancel' | 'manager:open' | 'export:open' | 'clearall:confirm';
type EventListener<T = any> = (payload: T) => void;
export interface UseFeedbackEventResult {
emit: (type: EventType, payload?: any) => void;
on: <T = any>(type: EventType, listener: EventListener<T>) => () => void;
once: <T = any>(type: EventType, listener: EventListener<T>) => () => void;
}
export declare const useFeedbackEvent: () => UseFeedbackEventResult;
export declare const useFeedbackEventHelpers: () => {
on: <T = any>(type: EventType, listener: EventListener<T>) => () => void;
once: <T = any>(type: EventType, listener: EventListener<T>) => () => void;
selectComponent: (componentInfo: ComponentInfo) => void;
openModal: (componentInfo: ComponentInfo) => void;
closeModal: () => void;
minimizeModal: () => void;
restoreModal: () => void;
openSidebar: () => void;
closeSidebar: () => void;
captureScreenshot: (element?: HTMLElement) => void;
screenshotComplete: (screenshot: string) => void;
saveDraft: (draft: {
componentInfo: ComponentInfo;
comment: string;
screenshot?: string;
}) => void;
clearDraft: () => void;
submitFeedback: (feedback: any) => void;
exportFeedback: (options: any) => void;
};
export {};
//# sourceMappingURL=useFeedbackEvent.d.ts.map