summaryrefslogtreecommitdiff
path: root/packages/client/src/scripts/unison-reload.ts
blob: 59af584c1b8b1054dcaf1f9bab631552a03bbc1f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// SafariがBroadcastChannel未実装なのでライブラリを使う
import { BroadcastChannel } from 'broadcast-channel';

export const reloadChannel = new BroadcastChannel<string | null>('reload');

// BroadcastChannelを用いて、クライアントが一斉にreloadするようにします。
export function unisonReload(path?: string) {
	if (path !== undefined) {
		reloadChannel.postMessage(path);
		location.href = path;
	} else {
		reloadChannel.postMessage(null);
		location.reload();
	}
}