Skip to content

Commit 8615193

Browse files
committed
fix: websocket ref watch source warning
1 parent 86dd14a commit 8615193

File tree

2 files changed

+33
-15
lines changed

2 files changed

+33
-15
lines changed

packages/hooks/src/useWebSocket/demo/demo.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
const { readyState, sendMessage, latestMessage, disconnect, connect } = useWebSocket(
4242
'wss://demo.piesocket.com/v3/channel_1?api_key=VCXCEuvhGcBDP7XhiJJUDvR1e1D3eiVjgZ9VRiaV&notify_self',
4343
)
44-
const messageHistory = computed(() => latestMessage?.value)
44+
const messageHistory = computed(() => latestMessage.value)
4545
4646
const messageList = ref<any[]>([])
4747

packages/hooks/src/useWebSocket/index.ts

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* eslint-disable no-unused-vars */
2-
import { watch, ref, Ref, onUnmounted, unref } from 'vue'
2+
import { watch, ref, Ref, onUnmounted, unref, isRef } from 'vue'
33

44
export enum ReadyState {
55
Connecting = 0,
@@ -21,7 +21,7 @@ export interface UseWebSocketOptions {
2121
}
2222

2323
export interface UseWebSocketResult {
24-
latestMessage?: Ref<WebSocketEventMap['message']>
24+
latestMessage: Ref<WebSocketEventMap['message'] | undefined>
2525
sendMessage?: WebSocket['send']
2626
disconnect?: () => void
2727
connect?: () => void
@@ -144,18 +144,36 @@ export default function useWebSocket(
144144
websocketRef.value?.close()
145145
}
146146

147-
watch(
148-
[socketUrl, manual],
149-
c => {
150-
const [_, manualWatch] = c
151-
if (!manualWatch) {
152-
connect()
153-
}
154-
},
155-
{
156-
immediate: true,
157-
},
158-
)
147+
if (isRef(socketUrl) && isRef(manual))
148+
watch(
149+
[socketUrl, manual],
150+
c => {
151+
const [_, manualWatch] = c
152+
if (!manualWatch) {
153+
connect()
154+
}
155+
},
156+
{
157+
immediate: true,
158+
},
159+
)
160+
else if (isRef(manual)) {
161+
watch(
162+
manual,
163+
manualWatch => {
164+
if (!manualWatch) {
165+
connect()
166+
}
167+
},
168+
{
169+
immediate: true,
170+
},
171+
)
172+
} else {
173+
if (!manual) {
174+
connect()
175+
}
176+
}
159177

160178
onUnmounted(() => {
161179
unmountedRef.value = true

0 commit comments

Comments
 (0)