UNPKG

scrivito

Version:

Scrivito is a professional, yet easy to use SaaS Enterprise Content Management Service, built for digital agencies and medium to large businesses. It is completely maintenance-free, cost-effective, and has unprecedented performance and security.

31 lines (26 loc) 954 B
import { UrlForOptions, urlFor } from 'scrivito_sdk/app_support/url_for'; import { DataStack, getDataContextQuery } from 'scrivito_sdk/data_integration'; import { BasicLink, BasicObj, Binary } from 'scrivito_sdk/models'; import { useDataStack } from 'scrivito_sdk/react/data_context_container'; import { Link, Obj, unwrapAppClass } from 'scrivito_sdk/realm'; /** @beta */ export function useUrlFor( target: Binary | Link | Obj, options?: UrlForOptions ): string { const dataStack = useDataStack(); const query = addDataContextQueryTo( options?.query, dataStack, unwrapAppClass(target) ); return urlFor(target, { ...options, query }); } function addDataContextQueryTo( givenQuery: string | undefined, dataStack: DataStack | undefined, target: Binary | BasicLink | BasicObj ) { if (target instanceof Binary || !dataStack) return givenQuery; return getDataContextQuery(unwrapAppClass(target), dataStack, givenQuery); }