MCPcopy
hub / github.com/CapSoftware/Cap / ClipsSidebarInner

Function ClipsSidebarInner

apps/desktop/src/routes/editor/ClipsSidebar.tsx:258–1196  ·  view source on GitHub ↗
(props: { open: boolean; class?: string })

Source from the content-addressed store, hash-verified

256}
257
258function ClipsSidebarInner(props: { open: boolean; class?: string }) {
259 const {
260 project,
261 setProject,
262 editorInstance,
263 editorState,
264 setEditorState,
265 setDialog,
266 } = useEditorContext();
267 const { rawOptions, setOptions } = useRecordingOptions();
268
269 const backToEditor = () => setDialog((d) => ({ ...d, open: false }));
270
271 let previousMode: RecordingMode | null = null;
272 const [importing, setImporting] = createSignal(false);
273 const [recordOpen, setRecordOpen] = createSignal(false);
274
275 const restoreMode = () => {
276 if (previousMode !== null && rawOptions.mode !== previousMode) {
277 setOptions("mode", previousMode);
278 void commands.setRecordingMode(previousMode);
279 }
280 previousMode = null;
281 };
282
283 const [displayMenuOpen, setDisplayMenuOpen] = createSignal(false);
284 const [windowMenuOpen, setWindowMenuOpen] = createSignal(false);
285 const activeTargetMenu = createMemo<"display" | "window" | null>(() =>
286 displayMenuOpen() ? "display" : windowMenuOpen() ? "window" : null,
287 );
288 const [targetSearch, setTargetSearch] = createSignal("");
289 let displayTriggerRef: HTMLButtonElement | undefined;
290 let windowTriggerRef: HTMLButtonElement | undefined;
291
292 createEffect(() => {
293 if (!activeTargetMenu()) setTargetSearch("");
294 });
295
296 const closeRecord = () => {
297 setRecordOpen(false);
298 setDisplayMenuOpen(false);
299 setWindowMenuOpen(false);
300 };
301
302 let hiddenForPicker = false;
303
304 const resetRecordingTarget = () => {
305 const targetMode = untrack(() => rawOptions.targetMode);
306 if (targetMode != null) {
307 setOptions("targetMode", null);
308 void commands.closeTargetSelectOverlays().catch(() => {});
309 }
310 void commands.setEditorRecordingTarget(null).catch(() => {});
311 };
312
313 const showEditorWindow = async (focus: boolean) => {
314 const window = getCurrentWindow();
315 await window.show();

Callers

nothing calls this directly

Calls 15

useRecordingOptionsFunction · 0.90
createDevicesQueryFunction · 0.90
createCameraMutationFunction · 0.90
onFunction · 0.85
resetRecordingTargetFunction · 0.85
closeRecordFunction · 0.85
restoreModeFunction · 0.85
showEditorWindowFunction · 0.85
camerasFunction · 0.85
recordedClipCountFunction · 0.85
segmentsFunction · 0.85
showTopBarFunction · 0.85

Tested by

no test coverage detected