Skip to content

Commit e24c513

Browse files
committed
feat: make sync mode easier to config
1 parent de44e2d commit e24c513

File tree

1 file changed

+41
-12
lines changed

1 file changed

+41
-12
lines changed

packages/client/internals/SyncControls.vue

Lines changed: 41 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,41 @@ const shouldSend = computed({
3535
}
3636
},
3737
})
38+
39+
const state = computed({
40+
get: () => {
41+
if (shouldReceive.value && shouldSend.value) {
42+
return 'bidirectional'
43+
}
44+
if (shouldReceive.value && !shouldSend.value) {
45+
return 'receive-only'
46+
}
47+
if (!shouldReceive.value && shouldSend.value) {
48+
return 'send-only'
49+
}
50+
return 'off'
51+
},
52+
set(v) {
53+
switch (v) {
54+
case 'bidirectional':
55+
shouldReceive.value = true
56+
shouldSend.value = true
57+
break
58+
case 'receive-only':
59+
shouldReceive.value = true
60+
shouldSend.value = false
61+
break
62+
case 'send-only':
63+
shouldReceive.value = false
64+
shouldSend.value = true
65+
break
66+
case 'off':
67+
shouldReceive.value = false
68+
shouldSend.value = false
69+
break
70+
}
71+
},
72+
})
3873
</script>
3974

4075
<template>
@@ -52,19 +87,13 @@ const shouldSend = computed({
5287
<span font-bold text-primary>{{ isPresenter ? 'presenter' : 'viewer' }}</span>
5388
</div>
5489
<SelectList
55-
v-model="shouldSend"
56-
title="Send Changes"
57-
:items="[
58-
{ value: true, display: 'On' },
59-
{ value: false, display: 'Off' },
60-
]"
61-
/>
62-
<SelectList
63-
v-model="shouldReceive"
64-
title="Receive Changes"
90+
v-model="state"
91+
title="Sync Mode"
6592
:items="[
66-
{ value: true, display: 'On' },
67-
{ value: false, display: 'Off' },
93+
{ value: 'bidirectional', display: 'Bidirectional Sync' },
94+
{ value: 'receive-only', display: 'Receive Only' },
95+
{ value: 'send-only', display: 'Send Only' },
96+
{ value: 'off', display: 'Disable' },
6897
]"
6998
/>
7099
</div>

0 commit comments

Comments
 (0)