Skip to content

Commit 368f189

Browse files
committed
@remotion/studio: Merge InitialCompositionLoader URL handling from sidebar PR
Made-with: Cursor
1 parent f843f35 commit 368f189

1 file changed

Lines changed: 29 additions & 20 deletions

File tree

packages/studio/src/components/InitialCompositionLoader.tsx

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,28 @@ export const useSelectAsset = () => {
1616
const {setCanvasContent} = useContext(Internals.CompositionSetters);
1717
const {setAssetFoldersExpanded} = useContext(FolderContext);
1818

19-
return (asset: string) => {
20-
setCanvasContent({type: 'asset', asset});
21-
explorerSidebarTabs.current?.selectAssetsPanel();
22-
setAssetFoldersExpanded((ex) => {
23-
const split = asset.split('/');
24-
25-
const keysToExpand = split.map((_, i) => {
26-
return split.slice(0, i).join('/');
27-
});
28-
const newState: ExpandedFoldersState = {
29-
...ex,
30-
};
31-
for (const key of keysToExpand) {
32-
newState[key] = true;
33-
}
19+
return useCallback(
20+
(asset: string) => {
21+
setCanvasContent({type: 'asset', asset});
22+
explorerSidebarTabs.current?.selectAssetsPanel();
23+
setAssetFoldersExpanded((ex) => {
24+
const split = asset.split('/');
25+
26+
const keysToExpand = split.map((_, i) => {
27+
return split.slice(0, i).join('/');
28+
});
29+
const newState: ExpandedFoldersState = {
30+
...ex,
31+
};
32+
for (const key of keysToExpand) {
33+
newState[key] = true;
34+
}
3435

35-
return newState;
36-
});
37-
};
36+
return newState;
37+
});
38+
},
39+
[setAssetFoldersExpanded, setCanvasContent],
40+
);
3841
};
3942

4043
export const useSelectComposition = () => {
@@ -165,7 +168,7 @@ export const InitialCompositionLoader: React.FC = () => {
165168
});
166169

167170
if (exists) {
168-
setCanvasContent(newCanvas);
171+
selectAsset(newCanvas.asset);
169172
}
170173

171174
return;
@@ -177,7 +180,13 @@ export const InitialCompositionLoader: React.FC = () => {
177180
window.addEventListener('popstate', onchange);
178181

179182
return () => window.removeEventListener('popstate', onchange);
180-
}, [compositions, selectComposition, setCanvasContent, staticFiles]);
183+
}, [
184+
compositions,
185+
selectAsset,
186+
selectComposition,
187+
setCanvasContent,
188+
staticFiles,
189+
]);
181190

182191
return null;
183192
};

0 commit comments

Comments
 (0)