react-modern-gantt
Version:
A modern, customizable Gantt chart component for React applications with export functionality
73 lines (72 loc) • 2.26 kB
TypeScript
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;