I am trying to export my reel using exportAs but I cant get it to work.
Here’s the structure of my scheduler, its all held in state and then rendered using schedulerRef pointing to this state.
const [state, setState] = useState({
timeHeaders: [
{
groupBy: 'Month',
},
{
groupBy: 'Day',
format: 'd',
}
],
//cellWidthSpec: "Auto",
cellWidth: 100,
//rowHeaderScrolling: true
scrollBarVisible: true,
durationBarVisible: true,
scale: 'Day',
days: weekView ? numDaysweek : monthView,
startDate: monthstart ? new Date(today.getFullYear(), month - 1, monthstart + 1) : _start,
eventMovingStartEndEnabled: true,
eventStackingLineHeight: 0,
rowClickHandling: true,
eventOverlapHandling: false,
ResizeObserver: true,
eventCopyingStartEndEnabled: true,
eventResizingStartEndEenabled: true,
timeRangeSelectingStartEndEnabled: true,
addEventHandlers() {
//show state for printing when button pressed
if (printout) {
state.exportAs("jpg").print();
};
setPrintout(false);
},
},
onBeforeCellRender: args => {
if (args.cell.start.getDayOfWeek() === 6 || args.cell.start.getDayOfWeek() === 0) {
args.cell.backColor = "#d9ead3";
}
var item = globalHoliday.find(function (range) {
var start = new DayPilot.Date(range.start);
var end = new DayPilot.Date(range.end).addDays(1);
return DayPilot.Util.overlaps(start, end, args.cell.start, args.cell.end);
});
if (item) {
args.cell.backColor = item.backColor;
args.cell.headerColor = item.headerColor;
}
//args.cell.html ="Test";
},
timeRangeSelectedHandling: 'Enabled',
onTimeRangeSelected: async (args) => {
//bunch of stuff to capture on selection
//backend sync also somewhere here
},
eventMoveHandling: 'Update',
onEventMoved: (args) => {
args.control.message('Event moved: ' + args.e.text());
eventMove(args.e.data);
},
eventResizeHandling: 'Update',
onEventResized: (args) => {
args.control.message('Event resized: ' + args.e.text());
},
eventDeleteHandling: 'Update',
onEventDeleted: (args) => {
args.control.message('Event deleted: ' + args.e.text());
eventDelete(args.e.data);
},
eventClickHandling: 'Enabled',
onEventClick: async (args) => {
if (args.ctrl) {
args.control.multiselect.add(args.e);
console.log("New args---", args.e.data);
multiclipboard.push(args.e.data);
}
else {
//do nohting
return;
}
},
eventHoverHandling: 'Bubble',
onRowSelect: function (args) {
window.console && console.log(args.row.toJSON());
},
rowHeaderColumns: [
{
title: 'Name',
width: 100,
value: 'name',
},
{
title: 'Hours',
width: 100,
display: 'hours',
},
{
title: 'Leave Hours',
width: 100,
display: 'leavehours',
}
],
return (
<PageContainer
<div>bunch of stuff<\div>
<div>bunch of stuff<\div>
<div>bunch of stuff<\div>
//how i export my scheduler for view
<DayPilotScheduler {...state} ref={schedulerRef} />
<PageContainer>
)
///SO I ADDING THIS AND REMOVING THE REF ABOVE, BUT GET ERROR exportAs
///not a known function. Please help
<div>
<Button type="primary" onClick={() => {
setPrintout(true);
const scheduler = schedulerRef.current;
scheduler.exportAs("jpg").print();
console.log("print button clicked");
}}>Print</Button>
<DayPilotScheduler {...state} ref={schedulerRef} />
</div>