Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/thatdeveloperguy-website / app/experience/resolve-destination.ts |
| Date | Not specified in source |
| Repository | Janady13/thatdeveloperguy-website |
| Revision | 2bea2ebdff0e34494bff597d4fa9c8422a0c3a94 |
| Branch | main |
| Path or archive member | app/experience/resolve-destination.ts |
| Original SHA-256 | 83b80439f588f48f6b07d1e1c326f3b6e20b687318f499230e39cab4bec74546 |
| Git blob SHA | ace2564003d572cce5074ed3a4707626ede7d6fc |
| Reading-copy SHA-256 | 83b80439f588f48f6b07d1e1c326f3b6e20b687318f499230e39cab4bec74546 |
Recovered source transcript
Download complete source text ↓11 lines · 0.8 KB
import type { HotspotTarget } from '../../src/contracts/scene';
import { pagesById } from '../../src/generated';
/** Page ids resolve through the registry; anchors stay on the current page. A hotspot whose page is a draft resolves to null and is not rendered. */
export function resolveDestination(target: HotspotTarget, fromPageId: string): string | null {
if (target.kind === 'anchor') { if (target.pageId && target.pageId !== fromPageId) { const page = pagesById[target.pageId]; return page ? `${page.path}#${target.anchor}` : null; } return `#${target.anchor}`; }
const page = pagesById[target.pageId];
if (!page) return null;
return target.project ? `${page.path}?project=${encodeURIComponent(target.project)}&from=${encodeURIComponent(fromPageId)}` : page.path;
}