reimplemented the offcanvas view