mirror of
https://github.com/OpenCut-app/OpenCut.git
synced 2026-07-13 21:52:53 +02:00
refactor: restructure files to their domains, new preview overlay system, and dep graph
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
import { useEffect, useRef } from "react";
|
||||
import { useSelectionContext } from "@/selection/context";
|
||||
import { activateScope, type ScopeEntry } from "@/selection/scope";
|
||||
|
||||
export function useSelectionScope() {
|
||||
const { selectedIds, clearSelection } = useSelectionContext();
|
||||
const hasSelectionRef = useRef(selectedIds.length > 0);
|
||||
const clearSelectionRef = useRef(clearSelection);
|
||||
const hasSelection = selectedIds.length > 0;
|
||||
|
||||
hasSelectionRef.current = hasSelection;
|
||||
clearSelectionRef.current = clearSelection;
|
||||
|
||||
const entryRef = useRef<ScopeEntry>({
|
||||
hasSelection: () => hasSelectionRef.current,
|
||||
clear: () => {
|
||||
clearSelectionRef.current();
|
||||
},
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
if (!hasSelection) {
|
||||
return;
|
||||
}
|
||||
|
||||
return activateScope({ entry: entryRef.current });
|
||||
}, [hasSelection]);
|
||||
}
|
||||
Reference in New Issue
Block a user