Skip to content

Commit 1ef680d

Browse files
committed
Final final fix for the checkbox! - don't use phoenix's core component as it resets without a form
1 parent 6c178c8 commit 1ef680d

File tree

2 files changed

+20
-21
lines changed

2 files changed

+20
-21
lines changed

assets/publisher.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ export function createPublisherHook(iceServers = []) {
9595
view.audioApplyButton.disabled = true;
9696
view.videoApplyButton.disabled = true;
9797
view.bitrate.disabled = true;
98+
view.simulcast.disabled = true;
9899
},
99100

100101
enableControls(view) {
@@ -109,6 +110,7 @@ export function createPublisherHook(iceServers = []) {
109110
view.audioApplyButton.disabled = false;
110111
view.videoApplyButton.disabled = false;
111112
view.bitrate.disabled = false;
113+
view.simulcast.disabled = false;
112114
},
113115

114116
async findDevices(view) {

lib/live_ex_webrtc/publisher.ex

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -197,19 +197,6 @@ defmodule LiveExWebRTC.Publisher do
197197

198198
@impl true
199199
def render(assigns) do
200-
assigns =
201-
assign_new(assigns, :simulcast_checkbox_enabled, fn ->
202-
if assigns.publisher.streaming? do
203-
false
204-
else
205-
if assigns.publisher.simulcast_supported? do
206-
true
207-
else
208-
false
209-
end
210-
end
211-
end)
212-
213200
~H"""
214201
<div id={@publisher.id} phx-hook="Publisher" class="h-full w-full flex justify-between gap-6">
215202
<div class="w-full flex flex-col">
@@ -361,14 +348,24 @@ defmodule LiveExWebRTC.Publisher do
361348
class="rounded-lg disabled:text-gray-400 disabled:border-gray-400 focus:border-brand focus:outline-none focus:ring-0"
362349
/>
363350
</div>
351+
<%= if @publisher.simulcast_supported? do %>
352+
<div class="flex gap-2.5 items-center">
353+
<label for="lex-simulcast">Simulcast</label>
354+
<input type="checkbox" id="lex-simulcast" class="rounded-full" />
355+
</div>
356+
<% else %>
357+
<div class="flex flex-col gap-2">
358+
<div class="flex gap-2.5 items-center">
359+
<label for="lex-simulcast">Simulcast</label>
360+
<input type="checkbox" id="lex-simulcast" class="rounded-full bg-gray-300" disabled />
361+
</div>
362+
<p class="flex gap-2 text-sm leading-6 text-rose-600">
363+
<.icon name="hero-exclamation-circle-mini" class="mt-0.5 h-5 w-5 flex-none" />
364+
Simulcast requires server to be configured with H264 codec
365+
</p>
366+
</div>
367+
<% end %>
364368
</div>
365-
<.input
366-
type="checkbox"
367-
name="simulcast"
368-
label="Simulcast"
369-
{if @simulcast_checkbox_enabled, do: %{"disabled" => "false"}, else: %{"disabled" => true}}
370-
errors={if @simulcast_checkbox_enabled, do: [], else: ["Simulcast requires server to run with H264 codec"]}
371-
/>
372369
</div>
373370
</div>
374371
<div id="lex-videoplayer-wrapper" class="flex flex-1 flex-col min-h-0 pt-2.5">
@@ -635,7 +632,7 @@ defmodule LiveExWebRTC.Publisher do
635632
if fmtp == nil do
636633
false
637634
else
638-
fmtp.level_asymmetry_allowed == true and fmtp.packetization_mode == 0 and
635+
fmtp.level_asymmetry_allowed == true and fmtp.packetization_mode == 1 and
639636
fmtp.profile_level_id == 0x42E01F
640637
end
641638

0 commit comments

Comments
 (0)