mizzkey/src/client/scripts/unison-reload.ts
2021-02-21 14:45:20 +09:00

19 lines
559 B
TypeScript

// SafariがBroadcastChannel未実装なのでライブラリを使う
import { BroadcastChannel } from 'broadcast-channel';
export const reloadChannel = new BroadcastChannel<boolean>('reload');
// BroadcastChannelを用いて、クライアントが一斉にreloadするようにします。
export function unisonReload(redirectToRoot: boolean = false) {
reloadChannel.postMessage(!!redirectToRoot);
reload();
}
export function reload(redirectToRoot: boolean = false) {
if (redirectToRoot) {
location.href = '/';
} else {
location.reload();
}
}