Bluesky app fork with some witchin' additions 馃挮
witchsky.app
bluesky
fork
client
1import EventEmitter from 'eventemitter3'
2
3type UnlistenFn = () => void
4
5const emitter = new EventEmitter()
6
7// a "soft reset" typically means scrolling to top and loading latest
8// but it can depend on the screen
9export function emitSoftReset() {
10 emitter.emit('soft-reset')
11}
12export function listenSoftReset(fn: () => void): UnlistenFn {
13 emitter.on('soft-reset', fn)
14 return () => emitter.off('soft-reset', fn)
15}
16
17export function emitSessionDropped() {
18 emitter.emit('session-dropped')
19}
20export function listenSessionDropped(fn: () => void): UnlistenFn {
21 emitter.on('session-dropped', fn)
22 return () => emitter.off('session-dropped', fn)
23}
24
25export function emitNetworkConfirmed() {
26 emitter.emit('network-confirmed')
27}
28export function listenNetworkConfirmed(fn: () => void): UnlistenFn {
29 emitter.on('network-confirmed', fn)
30 return () => emitter.off('network-confirmed', fn)
31}
32
33export function emitNetworkLost() {
34 emitter.emit('network-lost')
35}
36export function listenNetworkLost(fn: () => void): UnlistenFn {
37 emitter.on('network-lost', fn)
38 return () => emitter.off('network-lost', fn)
39}
40
41export function emitPostCreated() {
42 emitter.emit('post-created')
43}
44export function listenPostCreated(fn: () => void): UnlistenFn {
45 emitter.on('post-created', fn)
46 return () => emitter.off('post-created', fn)
47}