Bluesky app fork with some witchin' additions 馃挮 witchsky.app
bluesky fork client
at feat/custom-appview 47 lines 1.3 kB view raw
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}