@abbl/material-calendar
Version:
Calendar component build with React and Material-UI
38 lines • 1.56 kB
JavaScript
import React, { useContext, useMemo } from 'react';
import { ViewContext } from '../../../common/contexts/ViewContext';
export default function ViewController() {
var viewContext = useContext(ViewContext);
function getView() {
if (viewContext.view) {
return React.createElement(viewContext.view.component);
}
return React.createElement("div", null);
}
// Re-render only if another view was selected by user.
return useMemo(function () { return getView(); }, [viewContext.view]);
}
// ViewController.whyDidYouRender = true;
// /**
// * When selectedView is set to month, we allow user to change
// * displayed month by usage of scrollwheel.
// *
// * FIXME: onWheel event causes re-render everytime it occurs,
// * which degrades the perfomance
// * 08.06.2020 - preventDefault doesn't work, future research is required
// */
// function handleDateChangeByWheel(scrollEvent: ScrollEvent) {
// if (props.selectedViewOption === 'Month') {
// if (scrollEvent === ScrollEvent.UP) {
// props.onDateChange(DateChangeAction.BACKWARD);
// } else {
// props.onDateChange(DateChangeAction.FORWARD);
// }
// }
// }
// // ScrollLock hook use to handle change of date in month view by usage of scrollwheel
// // FIXME: lookup handleDateChangeByWheel function for more details.
// const scrollLock = useScrollLock({
// lockDuration: 500,
// onScrollEvent: handleDateChangeByWheel,
// });
//# sourceMappingURL=ViewController.js.map