Add page titles (#4775)

* restructure template rendering

* add useTitle composable

* Split up render-string-template from getFieldsFromTemplate

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
This commit is contained in:
Nitwel
2021-03-31 16:53:57 +02:00
committed by GitHub
parent 8df659325c
commit 6f9b2cafcd
13 changed files with 81 additions and 50 deletions

View File

@@ -0,0 +1,19 @@
import { computed, Ref } from '@vue/composition-api';
import { render } from 'micromustache';
import { getFieldsFromTemplate } from './get-fields-from-template';
export function renderStringTemplate(template: Ref<string | null> | string, item: Ref<Record<string, any> | null>) {
const templateString = computed(() => (typeof template === 'string' ? template : template.value));
const fieldsInTemplate = computed(() => getFieldsFromTemplate(templateString.value));
const displayValue = computed(() => {
if (!item.value || !templateString.value || !fieldsInTemplate.value) return;
try {
return render(templateString.value, item.value, { propsExist: true });
} catch {}
});
return { fieldsInTemplate, displayValue };
}