( name: keyof SubscribeEventMap, defaultData: T )
| 127 | } |
| 128 | |
| 129 | export function useSocketSubscribeData<T>( |
| 130 | name: keyof SubscribeEventMap, |
| 131 | defaultData: T |
| 132 | ): T { |
| 133 | const { subscribe } = useSocket(); |
| 134 | const [data, setData] = useState<T>(defaultData); |
| 135 | |
| 136 | const cb = useEvent((_data) => { |
| 137 | setData(_data ?? defaultData); |
| 138 | }); |
| 139 | |
| 140 | useEffect(() => { |
| 141 | const unsubscribe = subscribe(name, cb); |
| 142 | |
| 143 | return () => { |
| 144 | unsubscribe(); |
| 145 | }; |
| 146 | }, [name]); |
| 147 | |
| 148 | return data; |
| 149 | } |
| 150 | |
| 151 | export function useSocketConnected() { |
| 152 | return useSocketStore((state) => state.connected); |
no test coverage detected