UNPKG

react-modern-gantt

Version:

A modern, customizable Gantt chart component for React applications with export functionality

73 lines (72 loc) 2.26 kB
import { ExportOptions, ExportResult, ExportFormat, GanttChartRef } from "@/types"; /** * Hook return type */ export interface UseGanttExportReturn { /** * Ref to attach to the GanttChart component */ ganttRef: React.RefObject<GanttChartRef | null>; /** * Export the chart to the specified format */ exportChart: (options?: ExportOptions) => Promise<ExportResult>; /** * Export as PNG */ exportAsPng: (filename?: string, options?: Omit<ExportOptions, "format" | "filename">) => Promise<ExportResult>; /** * Export as JPEG */ exportAsJpeg: (filename?: string, options?: Omit<ExportOptions, "format" | "filename">) => Promise<ExportResult>; /** * Export as PDF */ exportAsPdf: (filename?: string, options?: Omit<ExportOptions, "format" | "filename">) => Promise<ExportResult>; /** * Get chart as data URL */ getDataUrl: (format?: ExportFormat) => Promise<string | null>; /** * Get chart as Blob */ getBlob: (format?: ExportFormat) => Promise<Blob | null>; /** * Copy chart to clipboard */ copyToClipboard: () => Promise<boolean>; /** * Check if export dependencies are available */ checkDependencies: () => Promise<{ html2canvas: boolean; jspdf: boolean; }>; /** * Get preview URL for the chart (useful for preview modal) */ getPreviewUrl: (format?: ExportFormat, options?: Omit<ExportOptions, "format" | "filename">) => Promise<string | null>; } /** * Custom hook for easy Gantt chart export functionality * * @example * ```tsx * import { useGanttExport, GanttChart } from 'react-modern-gantt'; * * function MyComponent() { * const { ganttRef, exportAsPng, exportAsPdf, copyToClipboard } = useGanttExport(); * * return ( * <div> * <GanttChart ref={ganttRef} tasks={tasks} /> * <button onClick={() => exportAsPng('my-gantt')}>Export PNG</button> * <button onClick={() => exportAsPdf('my-gantt')}>Export PDF</button> * <button onClick={copyToClipboard}>Copy to Clipboard</button> * </div> * ); * } * ``` */ export declare function useGanttExport(): UseGanttExportReturn; export default useGanttExport;