diff --git a/packages/gallery/src/interface/allImages.js b/packages/gallery/src/interface/allImages.js index 00bea2a..d6ecbcc 100644 --- a/packages/gallery/src/interface/allImages.js +++ b/packages/gallery/src/interface/allImages.js @@ -124,6 +124,10 @@ export function AllImagesView(vm, params, key, { appbar }) { } } + function handleContentScroll(evt) { + appbar.companionScrollTop(evt.target.scrollTop); + } + function pushAppBarState() { const up = selectMode() ? { @@ -172,8 +176,7 @@ export function AllImagesView(vm, params, key, { appbar }) { } return function() { - return el( - 'div', + return scrollView( { onclick: { '.photoSelect .icon svg path': toggleSelect, @@ -181,7 +184,8 @@ export function AllImagesView(vm, params, key, { appbar }) { '.albumSelectButton .icon': toggleAll, '.albumSelectButton .icon svg path': toggleAll, '.photoOverlay': photoClick - } + }, + onscroll: handleContentScroll }, sections().map(renderSection) ); @@ -194,3 +198,7 @@ const trashButtonContainer = styled( }, CLICKABLE ); + +const scrollView = styled({ + overflow: 'scroll' +}); diff --git a/packages/gallery/src/interface/components/appbar.js b/packages/gallery/src/interface/components/appbar.js index 12a4105..fdb2a3c 100644 --- a/packages/gallery/src/interface/components/appbar.js +++ b/packages/gallery/src/interface/components/appbar.js @@ -40,10 +40,12 @@ export function AppBarView(vm, params, key, opts) { } function pushState(newState) { + companionScrollTop(0); stateStack.unshift(Object.assign({ _seq: seq++ }, newState)); } function popState(navigateTo) { + companionScrollTop(0); stateStack.shift(); if (navigateTo) { router.goto(navigateTo); diff --git a/packages/gallery/src/interface/gallery.js b/packages/gallery/src/interface/gallery.js index ef560e8..04e15a2 100644 --- a/packages/gallery/src/interface/gallery.js +++ b/packages/gallery/src/interface/gallery.js @@ -39,8 +39,7 @@ export function GalleryView(vm) { function renderMain() { return [ iv(appbar), - content( - { onscroll: handleContentScroll }, + content([ renderSwitch( { photos: [AllImagesView, {}, 'allImages', context], @@ -48,7 +47,7 @@ export function GalleryView(vm) { }, routeName() ) - ) + ]) ]; }