import Mustache from "mustache"; import {stripHtml} from "../../helpers"; import {getContext} from "svelte"; export function previewTitle(record) { const channel = getContext("channel"); let schema = channel.schemas.find((aSchema) => aSchema.name === record?.schema); if (!schema?.titleTemplate) { return noTemplate(schema, record); } let template = Mustache.parse(schema.titleTemplate); let render = Mustache.render(schema.titleTemplate, record.data); if (!render || render === "") { return noTemplate(schema, record); } return stripHtml(render.slice(0, 300)); } export function previewEdgeTitle(edge) { const channel = getContext("channel"); let edgeSchemaName = channel.schemas .find((aSchema) => aSchema.name === edge?.sourceSchema) .fields.find(f => f.name === edge.field).data; let schema = channel.schemas.find((aSchema) => aSchema.name === edgeSchemaName); if (!schema?.titleTemplate) { return noTemplate(schema, edge); } let template = Mustache.parse(schema.titleTemplate); let render = Mustache.render(schema.titleTemplate, edge.data); if (!render || render === "") { return noTemplate(schema, edge); } return stripHtml(render.slice(0, 300)); } function noTemplate(schema, record) { if (schema?.type === "files") { return record._file.path; } let title = stripHtml( record?.data[schema.fields.filter((f) => f.info.name === "text")[0]?.name] ).slice(0, 300); if (title === "") { return "Untitled"; } return title; }