MCPcopy Index your code
hub / github.com/ColmapView/Colmapview.github.io / App

Function App

src/App.tsx:45–128  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

43}
44
45function App() {
46 const { loadFromUrl, loadFromManifest } = useUrlLoader();
47 const hasCheckedUrl = useRef(false);
48
49 // Check for URL parameter on mount
50 useEffect(() => {
51 // Only run once
52 if (hasCheckedUrl.current) return;
53 hasCheckedUrl.current = true;
54
55 const search = window.location.search;
56
57 if (shouldEnableEmbedModeFromSearch(search)) {
58 appLogger.info(APP_EMBED_MODE_LOG_MESSAGE);
59 useUIStore.getState().setEmbedMode(true);
60 }
61
62 const touchAction = getTouchModeUrlActionFromSearch(search) ?? getTouchModeAutoAction(detectTouchDevice());
63 if (touchAction) {
64 appLogger.info(touchAction.logMessage);
65 useUIStore.getState().setTouchMode(touchAction.enabled, touchAction.source);
66 }
67
68 // Async function to handle URL loading
69 const checkUrlAndLoad = async () => {
70 const shareData = await decodeShareData(window.location.hash);
71 const loadPlan = getAppStartupLoadPlan({
72 shareData,
73 legacyManifestUrl: new URLSearchParams(search).get('url'),
74 });
75
76 if (loadPlan.config) {
77 appLogger.info(APP_SHARED_CONFIG_LOG_MESSAGE);
78 applyShareConfig(loadPlan.config);
79 }
80
81 if (loadPlan.kind === 'inline-manifest') {
82 appLogger.info(loadPlan.logMessage);
83 const loaded = await loadFromManifest(loadPlan.manifest);
84 if (loaded && loadPlan.config) {
85 applyShareConfig(loadPlan.config);
86 }
87 if (loaded && loadPlan.selectedImageId !== null) {
88 useCameraStore.getState().setSelectedImageId(loadPlan.selectedImageId);
89 }
90 return;
91 }
92
93 if (loadPlan.kind === 'manifest-url') {
94 appLogger.info(loadPlan.logMessage);
95 const loaded = await loadFromUrl(loadPlan.manifestUrl);
96 if (loaded && loadPlan.config) {
97 applyShareConfig(loadPlan.config);
98 }
99 if (loaded && loadPlan.selectedImageId !== null) {
100 useCameraStore.getState().setSelectedImageId(loadPlan.selectedImageId);
101 }
102 return;

Callers

nothing calls this directly

Calls 6

useUrlLoaderFunction · 0.90
getTouchModeAutoActionFunction · 0.90
detectTouchDeviceFunction · 0.90
checkUrlAndLoadFunction · 0.85

Tested by

no test coverage detected