@live-change/peer-connection-frontend 0.9.49 → 0.9.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -250,7 +250,7 @@
250
250
  if(saved) {
251
251
  const parsed = JSON.parse(saved)
252
252
  const exists = devices.find(device => device.deviceId === parsed.deviceId)
253
- || devices[deviceType].find(device => device.label === parsed.label)
253
+ || devices.find(device => device.label === parsed.label)
254
254
  if(exists) {
255
255
  model[deviceType] = exists
256
256
  }
@@ -2,62 +2,77 @@
2
2
  <div>
3
3
  <OverlayPanel ref="mediaSettingsOverlay">
4
4
  <div class="flex flex-col gap-2 pt-2 justify-around" style="min-width: 20rem; max-width: 90vw">
5
+
5
6
  <div v-if="audioInputRequest !== 'none' && model.audioInputs?.length > 0"
6
7
  class="flex flex-col items-stretch grow">
7
8
  <div class="text-sm mb-1 pl-1">Microphone</div>
8
- <Dropdown :modelValue="model.audioInput"
9
- @update:modelValue="value => updateAudioInput(value)"
10
- :options="model.audioInputs"
11
- optionLabel="label"
12
- placeholder="Select">
9
+
10
+ <Select :modelValue="model.audioInput.deviceId"
11
+ @update:modelValue="value => updateAudioInput(value)"
12
+ :options="model.audioInputs"
13
+ optionLabel="label"
14
+ optionValue="deviceId"
15
+ placeholder="Select">
13
16
  <template #value="slotProps">
14
17
  <div class="flex flex-row items-center">
15
18
  <i class="pi pi-microphone mr-2" />
16
19
  &nbsp;
17
20
  <div class="absolute overflow-hidden text-ellipsis" style="left: 2em; right: 2em;">
18
- {{ slotProps.value ? slotProps.value.label : slotProps.placeholder }}
21
+ {{ slotProps.value
22
+ ? model.audioInputs.find(ai => ai.deviceId === slotProps.value)?.label
23
+ : slotProps.placeholder }}
19
24
  </div>
20
25
  </div>
21
26
  </template>
22
- </Dropdown>
27
+ </Select>
23
28
  </div>
29
+
24
30
  <div v-if="audioOutputRequest !== 'none' && model.audioOutputs?.length > 0"
25
31
  class="flex flex-col items-stretch grow">
26
32
  <div class="text-sm mb-1 pl-1">Audio output</div>
27
- <Dropdown :modelValue="model.audioOutput"
33
+ <Select :modelValue="model.audioOutput.deviceId"
28
34
  @update:modelValue="value => updateAudioOutput(value)"
29
- :options="model.audioOutputs" optionLabel="label"
35
+ :options="model.audioOutputs"
36
+ optionLabel="label"
37
+ optionValue="deviceId"
30
38
  placeholder="Select">
31
39
  <template #value="slotProps">
32
40
  <div class="flex flex-row items-center">
33
41
  <i class="pi pi-volume-up mr-2" />
34
42
  &nbsp;
35
43
  <div class="absolute overflow-hidden text-ellipsis" style="left: 2em; right: 2em;">
36
- {{ slotProps.value ? slotProps.value.label : slotProps.placeholder }}
44
+ {{ slotProps.value
45
+ ? model.audioOutputs.find(ao => ao.deviceId === slotProps.value)?.label
46
+ : slotProps.placeholder }}
37
47
  </div>
38
48
  </div>
39
49
  </template>
40
- </Dropdown>
50
+ </Select>
41
51
  </div>
42
52
 
43
53
  <div v-if="videoInputRequest !== 'none' && model.videoInputs?.length > 0"
44
54
  class="flex flex-col items-stretch grow">
45
55
  <div class="text-sm mb-1 pl-1">Camera</div>
46
- <Dropdown :modelValue="model.videoInput"
56
+ <Select :modelValue="model.videoInput.deviceId"
47
57
  @update:modelValue="value => updateVideoInput(value)"
48
- :options="model.videoInputs" optionLabel="label"
58
+ :options="model.videoInputs"
59
+ optionLabel="label"
60
+ optionValue="deviceId"
49
61
  placeholder="Select">
50
62
  <template #value="slotProps">
51
63
  <div class="flex flex-row items-center">
52
64
  <i class="pi pi-camera mr-2" />
53
65
  &nbsp;
54
66
  <div class="absolute overflow-hidden text-ellipsis" style="left: 2em; right: 2em;">
55
- {{ slotProps.value ? slotProps.value.label : slotProps.placeholder }}
67
+ {{ slotProps.value
68
+ ? model.videoInputs.find(vi => vi.deviceId === slotProps.value)?.label
69
+ : slotProps.placeholder }}
56
70
  </div>
57
71
  </div>
58
72
  </template>
59
- </Dropdown>
73
+ </Select>
60
74
  </div>
75
+
61
76
  </div>
62
77
  </OverlayPanel>
63
78
 
@@ -69,11 +84,10 @@
69
84
  <script setup>
70
85
  import Button from 'primevue/button'
71
86
  import OverlayPanel from 'primevue/overlaypanel'
72
- import Dropdown from 'primevue/dropdown'
87
+ import Select from 'primevue/select'
73
88
 
74
89
 
75
90
  import { defineModel, defineProps, defineEmits, computed, ref, toRefs, onMounted } from 'vue'
76
- import { useEventListener } from '@vueuse/core'
77
91
 
78
92
  const props = defineProps({
79
93
  audioInputRequest: {
@@ -130,19 +144,19 @@
130
144
  function updateAudioInput(value) {
131
145
  model.value = {
132
146
  ...model.value,
133
- audioInput: value
147
+ audioInput: model.value.audioInputs.find(ai => ai.deviceId === value)
134
148
  }
135
149
  }
136
150
  function updateAudioOutput(value) {
137
151
  model.value = {
138
152
  ...model.value,
139
- audioOutput: value
153
+ audioOutput: model.value.audioOutputs.find(ao => ao.deviceId === value)
140
154
  }
141
155
  }
142
156
  function updateVideoInput(value) {
143
157
  model.value = {
144
158
  ...model.value,
145
- videoInput: value
159
+ videoInput: model.value.videoInputs.find(vi => vi.deviceId === value)
146
160
  }
147
161
  }
148
162
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@live-change/peer-connection-frontend",
3
- "version": "0.9.49",
3
+ "version": "0.9.51",
4
4
  "scripts": {
5
5
  "memDev": "dotenvx run -- node server/start.js memDev --enableSessions --initScript ./init.js --dbAccess",
6
6
  "localDevInit": "rm tmp.db; dotenvx run -- node server/start.js localDev --enableSessions --initScript ./init.js",
@@ -22,19 +22,19 @@
22
22
  },
23
23
  "type": "module",
24
24
  "dependencies": {
25
- "@live-change/cli": "^0.9.49",
26
- "@live-change/dao": "^0.9.49",
27
- "@live-change/dao-vue3": "^0.9.49",
28
- "@live-change/dao-websocket": "^0.9.49",
29
- "@live-change/framework": "^0.9.49",
30
- "@live-change/password-authentication-service": "^0.9.49",
31
- "@live-change/secret-code-service": "^0.9.49",
32
- "@live-change/secret-link-service": "^0.9.49",
33
- "@live-change/session-service": "^0.9.49",
34
- "@live-change/user-frontend": "^0.9.49",
35
- "@live-change/user-service": "^0.9.49",
36
- "@live-change/vue3-components": "^0.9.49",
37
- "@live-change/vue3-ssr": "^0.9.49",
25
+ "@live-change/cli": "^0.9.51",
26
+ "@live-change/dao": "^0.9.51",
27
+ "@live-change/dao-vue3": "^0.9.51",
28
+ "@live-change/dao-websocket": "^0.9.51",
29
+ "@live-change/framework": "^0.9.51",
30
+ "@live-change/password-authentication-service": "^0.9.51",
31
+ "@live-change/secret-code-service": "^0.9.51",
32
+ "@live-change/secret-link-service": "^0.9.51",
33
+ "@live-change/session-service": "^0.9.51",
34
+ "@live-change/user-frontend": "^0.9.51",
35
+ "@live-change/user-service": "^0.9.51",
36
+ "@live-change/vue3-components": "^0.9.51",
37
+ "@live-change/vue3-ssr": "^0.9.51",
38
38
  "@vueuse/core": "^12.3.0",
39
39
  "boxicons": "^2.1.4",
40
40
  "codeceptjs-assert": "^0.0.5",
@@ -44,7 +44,7 @@
44
44
  "get-port-sync": "1.0.1",
45
45
  "primeflex": "^3.3.1",
46
46
  "primeicons": "^7.0.0",
47
- "primevue": "^4.2.5",
47
+ "primevue": "^4.3.3",
48
48
  "rollup-plugin-node-builtins": "^2.1.2",
49
49
  "rollup-plugin-visualizer": "5.14.0",
50
50
  "serialize-javascript": "^6.0.2",
@@ -54,7 +54,7 @@
54
54
  "vue3-scroll-border": "0.1.6"
55
55
  },
56
56
  "devDependencies": {
57
- "@live-change/codeceptjs-helper": "^0.9.49",
57
+ "@live-change/codeceptjs-helper": "^0.9.51",
58
58
  "codeceptjs": "^3.6.10",
59
59
  "generate-password": "1.7.1",
60
60
  "playwright": "1.49.1",
@@ -65,5 +65,5 @@
65
65
  "author": "Michał Łaszczewski <michal@laszczewski.pl>",
66
66
  "license": "BSD-3-Clause",
67
67
  "description": "",
68
- "gitHead": "59fe9ae6d29c82792eab1d5111b64dd894e4cf30"
68
+ "gitHead": "06b0f5c55868d01970e288c5a47745007e58c8a5"
69
69
  }