{"version":3,"file":"index.b2b53b3b.js","sources":["../../src/pages/DevMesh/index.tsx"],"sourcesContent":["import Button from \"@suid/material/Button\";\nimport TextField from \"@suid/material/TextField\";\nimport { Component, For, Show, createEffect, createResource, createSignal, onCleanup, onMount } from \"solid-js\";\nimport { useBroadClient } from \"../../helpers/BroadClient/solid\";\nimport { createSupabaseAuth } from \"solid-supabase\";\nimport { Participant } from \"../../helpers/BroadClient\";\nimport { validate as uuidValidate } from \"uuid\";\nimport { Peer, PeerConnectionState, Router } from \"../../helpers/mesh\";\nimport { SupabaseDatachannel } from \"../../helpers/mesh/supabase\";\n\nconst PeerView: Component<{peer: Peer}> = (props) => {\n const [connectionState, setConnectionState] = createSignal(PeerConnectionState.unknown);\n const [singalingState, setSingalingState] = createSignal(\"stable\");\n const [stateChangedCounter, setStateChangedCounter] = createSignal(0);\n\n const onConnectionStateChanged = (newState: PeerConnectionState) => {\n setConnectionState(newState);\n setStateChangedCounter(prev => prev+1);\n };\n\n const onSingalingStateChanged = () => {\n setSingalingState(props.peer.connection.signalingState);\n setStateChangedCounter(prev => prev+1);\n };\n\n createEffect(() => {\n setConnectionState(props.peer.connectionState);\n });\n\n onMount(() => {\n props.peer.bus.on(\"connectionstatechange\", onConnectionStateChanged);\n props.peer.connection.addEventListener(\"signalingstatechange\", onSingalingStateChanged);\n });\n\n onCleanup(() => {\n props.peer.bus.detach(\"connectionstatechange\", onConnectionStateChanged);\n props.peer.connection.removeEventListener(\"signalingstatechange\", onSingalingStateChanged);\n });\n\n return

Peer \"{props.peer.userDeviceId}\" [changed x{stateChangedCounter()}], clk {props.peer.clk.toString()}, connectionState {connectionState()}, singalingState {singalingState()}

;\n};\n\nconst DevMesh: Component = () => {\n const [roomName, setRoomName] = createSignal(\"\");\n const [roomId, setRoomId] = createSignal(\"\");\n const [peers, setPeers] = createSignal([], {equals: false});\n const broadClient = useBroadClient();\n const auth = createSupabaseAuth();\n\n const [routerG, setRouterG] = createSignal();\n\n const [participants, participantsCtl] = createResource(() => {\n if (uuidValidate(roomId())) {\n return broadClient.getParticipants(roomId());\n }\n return [];\n });\n\n const connectNetwork = async (roomId: string) => {\n if (!await broadClient.isJoinedRoomById(roomId)) {\n await broadClient.joinRoomById(roomId);\n }\n participantsCtl.refetch();\n const alterChan = SupabaseDatachannel.ofRoom(broadClient.supabase, roomId, broadClient.getUserDeviceId());\n const router = new Router(broadClient.getUserDeviceId(), alterChan, roomId);\n router.bus.on(\"addpeer\", () => {\n setPeers(router.peers);\n });\n router.bus.on(\"removepeer\", (peer: Peer) => {\n peer.disconnect();\n setPeers(router.peers);\n });\n await router.broadcastPeerList();\n setRouterG(router);\n };\n\n const createRoom = async () => {\n const room = await broadClient.createRoom(roomName());\n setRoomId(room.id);\n setRoomName(room.name);\n await connectNetwork(room.id);\n };\n\n const enterRoom = async () => {\n const room = await broadClient.findRoomById(roomId());\n if (room) {\n setRoomId(room.id);\n setRoomName(room.name);\n await connectNetwork(room.id);\n } else {\n alert(`Could not found room ${roomId()}`);\n }\n };\n\n // We just need some cleanup:\n // eslint-disable-next-line solid/reactivity\n onCleanup(async () => {\n const routerg = routerG();\n if (routerg) {\n await routerg.stop();\n setRouterG();\n }\n });\n\n const getRouterId = () => {\n const routerg = routerG();\n if (routerg) {\n return routerg.userDeviceId;\n }\n };\n\n return
\n

User: {JSON.stringify(auth.user(), undefined, 2)}

\n setRoomName(ev.target.value)} />
\n setRoomId(ev.target.value)} />\n \n \n
\n

User-Device Id: {getRouterId() || \"unknown\"}

\n
\n

Loading participants...

\n

Participants:

\n
    \n {(p) =>
  • User Id: {p.user_id}
  • }
    \n
\n
\n
\n

Peers:

\n
    \n No peers.}>{(p) =>
  • }
    \n
\n
\n
;\n};\n\nexport default DevMesh;\n"],"names":["PeerView","props","connectionState","setConnectionState","createSignal","PeerConnectionState","unknown","singalingState","setSingalingState","stateChangedCounter","setStateChangedCounter","onConnectionStateChanged","newState","prev","onSingalingStateChanged","peer","connection","signalingState","createEffect","onMount","bus","on","addEventListener","onCleanup","detach","removeEventListener","_$insert","userDeviceId","clk","toString","DevMesh","roomName","setRoomName","roomId","setRoomId","peers","setPeers","equals","broadClient","useBroadClient","auth","createSupabaseAuth","routerG","setRouterG","participants","participantsCtl","createResource","uuidValidate","getParticipants","connectNetwork","isJoinedRoomById","joinRoomById","refetch","alterChan","SupabaseDatachannel","ofRoom","supabase","getUserDeviceId","router","Router","disconnect","broadcastPeerList","createRoom","room","id","name","enterRoom","findRoomById","alert","routerg","stop","getRouterId","JSON","stringify","user","undefined","_$createComponent","ev","target","value","loading","p","user_id"],"mappings":"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"}