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.
24 lines (19 loc) • 874 B
text/typescript
import { currentSiteId } from 'scrivito_sdk/app_support/current_page';
import { getDetailsPageUrl } from 'scrivito_sdk/app_support/get_details_page_url';
import { hasComponent } from 'scrivito_sdk/app_support/has_component';
import { urlFor } from 'scrivito_sdk/app_support/url_for';
import { assertNotUsingInMemoryTenant } from 'scrivito_sdk/data';
import { DataItem } from 'scrivito_sdk/data_integration/data_class';
/** @public */
export function urlForDataItem(dataItem: DataItem): string | null {
assertNotUsingInMemoryTenant('Scrivito.urlForDataItem');
const obj = dataItem.obj();
const siteId = currentSiteId();
if (obj) {
if (hasComponent(dataItem.dataClassName()) || obj.isBinary()) {
return urlFor(obj);
}
return getDetailsPageUrl(dataItem, obj.siteId() || siteId);
}
return siteId ? getDetailsPageUrl(dataItem, siteId) : null;
}