index-ticketing
Version:
Automatic error tracking and ticketing system integration
44 lines • 1.77 kB
TypeScript
import React, { Component, ErrorInfo, ReactNode } from 'react';
import { ClientErrorHandler } from '../client/error-handler';
interface Props {
children: ReactNode;
errorHandler: ClientErrorHandler;
fallback?: ReactNode | ((error: Error, errorInfo: ErrorInfo) => ReactNode);
onError?: (error: Error, errorInfo: ErrorInfo) => void;
}
interface State {
hasError: boolean;
error?: Error;
errorInfo?: ErrorInfo;
}
/**
* React Error Boundary that integrates with IndexTicketing
*/
export declare class IndexTicketingErrorBoundary extends Component<Props, State> {
constructor(props: Props);
static getDerivedStateFromError(error: Error): State;
componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
render(): React.ReactNode;
}
/**
* Higher-order component that wraps a component with error boundary
*/
export declare function withIndexTicketingErrorBoundary<P extends object>(WrappedComponent: React.ComponentType<P>, errorHandler: ClientErrorHandler, fallback?: ReactNode | ((error: Error, errorInfo: ErrorInfo) => ReactNode)): {
(props: P): React.DetailedReactHTMLElement<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>;
displayName: string;
};
/**
* React hook for manual error reporting
*/
export declare function useIndexTicketing(errorHandler: ClientErrorHandler): {
captureError: (error: Error, extra?: Record<string, any>) => void;
addBreadcrumb: (message: string, category?: string, level?: "info" | "warning" | "error" | "debug", data?: Record<string, any>) => void;
setUser: (user: {
id?: string;
email?: string;
name?: string;
}) => void;
setTags: (tags: Record<string, string>) => void;
};
export {};
//# sourceMappingURL=react.d.ts.map