Skip to content

Commit

Permalink
restore scroll offset when go back (#324)
Browse files Browse the repository at this point in the history
* restore scroll offset when go back

* fix now play added to stack bug
  • Loading branch information
listen1 authored Jul 10, 2020
1 parent 56b8859 commit 3a3bf51
Showing 1 changed file with 31 additions and 14 deletions.
45 changes: 31 additions & 14 deletions js/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -210,16 +210,23 @@ const main = () => {
});

// playlist window
$scope.resetWindow = () => {
$scope.resetWindow = (offset) => {
if(offset === undefined){
offset = 0;
}
$scope.cover_img_url = 'images/loading.svg';
$scope.playlist_title = '';
$scope.playlist_source_url = '';
$scope.songs = [];
$scope.window_type = 'list';
document.getElementsByClassName('browser')[0].scrollTop = 0;
$timeout(()=>{
document.getElementsByClassName('browser')[0].scrollTop = offset;
},0);
};

$scope.showWindow = (url) => {
// save current scrolltop
const offset = document.getElementsByClassName('browser')[0].scrollTop;
if ($scope.window_url_stack.length > 0
&& $scope.window_url_stack[$scope.window_url_stack.length - 1] === url) {
return;
Expand All @@ -234,11 +241,9 @@ const main = () => {

if (url === '/now_playing') {
$scope.window_type = 'track';
$scope.window_url_stack.push(url);
$scope.window_poped_url_stack = [];
return;
}
$scope.window_url_stack.push(url);
$scope.window_url_stack.push({url:url, offset:offset});
$scope.window_poped_url_stack = [];

loWeb.get(url).success((data) => {
Expand All @@ -262,14 +267,20 @@ const main = () => {
});
};

$scope.closeWindow = () => {
$scope.closeWindow = (offset) => {
if(offset===undefined){
offset = 0;
}
$scope.is_window_hidden = 1;
$scope.resetWindow();
$scope.resetWindow(offset);
$scope.window_url_stack = [];
$scope.window_poped_url_stack = [];
};

function refreshWindow(url) {
function refreshWindow(url, offset) {
if(offset === undefined){
offset = 0;
}
if (url === '/now_playing') {
$scope.window_type = 'track';
return;
Expand All @@ -281,23 +292,29 @@ const main = () => {
$scope.playlist_title = data.info.title;
$scope.playlist_source_url = data.info.source_url;
$scope.is_mine = (data.info.id.slice(0, 2) === 'my');
$timeout(()=>{
document.getElementsByClassName('browser')[0].scrollTop = offset;
}, 0);
});
}
$scope.popWindow = () => {
if ($scope.window_url_stack.length===0) {
return;
}
const poped = $scope.window_url_stack.pop();
$scope.window_poped_url_stack.push(poped);
$scope.window_poped_url_stack.push(poped.url);
if ($scope.window_url_stack.length === 0) {
$scope.closeWindow();
$scope.closeWindow(poped.offset);
} else {
$scope.resetWindow();
const url = $scope.window_url_stack[$scope.window_url_stack.length - 1];
refreshWindow(url);
$scope.resetWindow(poped.offset);
const lastWindow = $scope.window_url_stack[$scope.window_url_stack.length - 1];
refreshWindow(lastWindow.url, poped.offset);
}
};

$scope.toggleWindow = (url) => {
if ($scope.window_url_stack.length > 0
&& $scope.window_url_stack[$scope.window_url_stack.length - 1] === url) {
&& $scope.window_url_stack[$scope.window_url_stack.length - 1].url === url) {
return $scope.popWindow();
}
return $scope.showWindow(url);
Expand Down

0 comments on commit 3a3bf51

Please sign in to comment.