enhane: unison-reloadに指定したパスに移動できるように
This commit is contained in:
parent
ddd931a0a3
commit
56386b74d0
3 changed files with 14 additions and 6 deletions
|
@ -61,7 +61,7 @@ export async function signout() {
|
|||
document.cookie = `igi=; path=/`;
|
||||
|
||||
if (accounts.length > 0) login(accounts[0].token);
|
||||
else unisonReload();
|
||||
else unisonReload('/');
|
||||
}
|
||||
|
||||
export async function getAccounts(): Promise<{ id: Account['id'], token: Account['token'] }[]> {
|
||||
|
|
|
@ -91,7 +91,10 @@ if (defaultStore.state.reportError && !_DEV_) {
|
|||
document.addEventListener('touchend', () => {}, { passive: true });
|
||||
|
||||
// 一斉リロード
|
||||
reloadChannel.addEventListener('message', () => location.reload());
|
||||
reloadChannel.addEventListener('message', path => {
|
||||
if (path === 'reload') location.reload();
|
||||
else location.href = path;
|
||||
});
|
||||
|
||||
//#region SEE: https://css-tricks.com/the-trick-to-viewport-units-on-mobile/
|
||||
// TODO: いつの日にか消したい
|
||||
|
|
|
@ -1,10 +1,15 @@
|
|||
// SafariがBroadcastChannel未実装なのでライブラリを使う
|
||||
import { BroadcastChannel } from 'broadcast-channel';
|
||||
|
||||
export const reloadChannel = new BroadcastChannel<'reload'>('reload');
|
||||
export const reloadChannel = new BroadcastChannel<string>('reload');
|
||||
|
||||
// BroadcastChannelを用いて、クライアントが一斉にreloadするようにします。
|
||||
export function unisonReload() {
|
||||
export function unisonReload(path?: string) {
|
||||
if (path !== undefined) {
|
||||
reloadChannel.postMessage(path);
|
||||
location.href = path;
|
||||
} else {
|
||||
reloadChannel.postMessage('reload');
|
||||
location.reload();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue