diff --git a/apps/desktop/src/components/record-modal/screen-selector.tsx b/apps/desktop/src/components/record-modal/screen-selector.tsx new file mode 100644 index 00000000000..eb848b04919 --- /dev/null +++ b/apps/desktop/src/components/record-modal/screen-selector.tsx @@ -0,0 +1,45 @@ +import { createSignal, createResource, For, Show } from "solid-js"; +import { invoke } from "@tauri-apps/api/core"; + +interface MonitorInfo { + id: string; + name: string; + width: number; + height: number; + is_primary: boolean; +} + +export function ScreenSelector(props: { onSelect: (screenName: string) => void }) { + const [isOpen, setIsOpen] = createSignal(false); + const [monitors] = createResource(async () => { + return await invoke("get_available_monitors"); + }); + + return ( +
+ + + +
+ + {(m) => ( + + )} + +
+
+
+ ); +} diff --git a/apps/desktop/src/routes/target-select-overlay.tsx b/apps/desktop/src/routes/target-select-overlay.tsx index 31dd1e0c99b..faee9e3330d 100644 --- a/apps/desktop/src/routes/target-select-overlay.tsx +++ b/apps/desktop/src/routes/target-select-overlay.tsx @@ -57,6 +57,7 @@ import { type Ratio, } from "~/components/Cropper"; import ModeSelect from "~/components/ModeSelect"; +import ScreenSelector from "~/components/record-modal/screen-selector"; import SelectionHint from "~/components/selection-hint"; import { authStore, @@ -2387,6 +2388,9 @@ function RecordingControls(props: {
+ + +
props.setToggleModeSelect?.(true)} class="flex gap-1 justify-center items-center self-center mb-5 transition-opacity duration-200 w-fit hover:opacity-60"