Live video on the AT Protocol
1import { useStore } from "store";
2import { PlaceStreamSegment } from "streamplace";
3
4// composite selector that tells us when the current user is live
5export const useLiveUser = (): boolean => {
6 const mySegments = useStore((state) => state.mySegments);
7 if (mySegments.length === 0) {
8 return false;
9 }
10 if (!PlaceStreamSegment.isRecord(mySegments[0].record)) {
11 return false;
12 }
13 const record = mySegments[0].record as PlaceStreamSegment.Record;
14 if (Date.now() - new Date(record.startTime).getTime() < 1000 * 10) {
15 return true;
16 }
17 return false;
18};