UNPKG

@abbl/material-calendar

Version:

Calendar component build with React and Material-UI

38 lines 1.56 kB
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