Skip to content

Commit

Permalink
fix: use replace state instead of pushState
Browse files Browse the repository at this point in the history
fixes #244
  • Loading branch information
RomanHotsiy committed Mar 31, 2017
1 parent b9740bf commit 4f4e748
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 5 deletions.
6 changes: 5 additions & 1 deletion lib/services/hash.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,12 @@ export class Hash {
});
}

update(hash: string|null) {
update(hash: string|null, rewriteHistory:boolean = false) {
if (hash == undefined) return;
if (rewriteHistory) {
window.history.replaceState(null, '', '#' + hash);
return;
}
this.noEmit = true;
window.location.hash = hash;
setTimeout(() => {
Expand Down
8 changes: 4 additions & 4 deletions lib/services/menu.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -202,14 +202,14 @@ export class MenuService {
}
}

activate(idx, force = false) {
activate(idx, force = false, replaceState = false) {
let item = this.flatItems[idx];
if (!force && item && !item.ready) return;

this.deactivate(this.activeIdx);
this.activeIdx = idx;
if (idx < 0) {
this.hash.update('');
this.hash.update('', replaceState);
return;
}

Expand All @@ -220,14 +220,14 @@ export class MenuService {
cItem.parent.active = true;
cItem = cItem.parent;
}
this.hash.update(this.hashFor(item.id, item.metadata, item.parent && item.parent.id));
this.hash.update(this.hashFor(item.id, item.metadata, item.parent && item.parent.id), replaceState);
this.changedActiveItem.next(item);
}

changeActive(offset = 1):boolean {
let noChange = (this.activeIdx <= 0 && offset === -1) ||
(this.activeIdx === this.flatItems.length - 1 && offset === 1);
this.activate(this.activeIdx + offset);
this.activate(this.activeIdx + offset, false, true);
return noChange;
}

Expand Down

0 comments on commit 4f4e748

Please sign in to comment.