()
| 839 | } |
| 840 | |
| 841 | function Recorder() { |
| 842 | return ( |
| 843 | <div class="flex flex-col gap-3 h-full"> |
| 844 | <div class="m-3"> |
| 845 | <h2 class="text-xl font-bold h-fit">Device Configuration</h2> |
| 846 | <hr class="my-2" /> |
| 847 | <div class="flex flex-col gap-1"> |
| 848 | <section class="flex items-center gap-2"> |
| 849 | <h3 class="text-sm font-bold my-0 h-fit w-32">Microphone</h3> |
| 850 | <select |
| 851 | class="border p-1 text-xs w-full" |
| 852 | disabled={microphones.loading} |
| 853 | onchange={(e) => set_microphone(e.target.value)} |
| 854 | > |
| 855 | <Suspense> |
| 856 | <For each={microphones()!}> |
| 857 | {(device) => ( |
| 858 | <option value={device.name} selected={device.is_selected}> |
| 859 | {device.name} |
| 860 | </option> |
| 861 | )} |
| 862 | </For> |
| 863 | </Suspense> |
| 864 | </select> |
| 865 | </section> |
| 866 | <section class="flex items-center gap-2"> |
| 867 | <h3 class="text-sm font-bold my-0 h-fit w-32">Speaker</h3> |
| 868 | <select |
| 869 | class="border p-1 text-xs w-full" |
| 870 | disabled={speakers.loading} |
| 871 | onchange={(e) => set_speaker(e.target.value)} |
| 872 | > |
| 873 | <Suspense> |
| 874 | <For each={speakers()!}> |
| 875 | {(device) => ( |
| 876 | <option value={device.name} selected={device.is_selected}> |
| 877 | {device.name} |
| 878 | </option> |
| 879 | )} |
| 880 | </For> |
| 881 | </Suspense> |
| 882 | </select> |
| 883 | </section> |
| 884 | <section class="flex items-center gap-2"> |
| 885 | <h3 class="text-sm font-bold my-0 h-fit w-32">Subtitle</h3> |
| 886 | <input type="checkbox" onchange={(e) => update_is_transcript(e.target.checked)} checked={general_config()?.transcript} /> |
| 887 | </section> |
| 888 | </div> |
| 889 | </div> |
| 890 | <Show when={general_config()?.transcript}> |
| 891 | <div class="m-3"> |
| 892 | <h2 class="text-xl font-bold h-fit">Subtitle Configuration</h2> |
| 893 | <hr class="my-2" /> |
| 894 | <div class="flex flex-col gap-1"> |
| 895 | <ListModelSection /> |
| 896 | <ListLanguageSection /> |
| 897 | <TranscriberTranslateSection /> |
| 898 | </div> |
nothing calls this directly
no test coverage detected