mirror of
https://github.com/tenrok/vue-meta.git
synced 2026-06-24 23:10:33 +03:00
feat: child can indicate parent vmid to be removed (resolves: #288)
This commit is contained in:
committed by
Alexander Lichter
parent
22e456cbe2
commit
915fedfb7f
@@ -25,6 +25,13 @@ export function arrayMerge({ component, tagIDKeyName, metaTemplateKeyName, conte
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if source specifies null as content then ignore both the target as the source
|
||||||
|
if (sourceItem[contentKeyName] === null || sourceItem.innerHTML === null) {
|
||||||
|
// remove current index from source array so its not concatenated to destination below
|
||||||
|
source.splice(sourceIndex, 1)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// we now know that targetItem is a duplicate and we should ignore it in favor of sourceItem
|
// we now know that targetItem is a duplicate and we should ignore it in favor of sourceItem
|
||||||
// now we only need to check if the target has a template to combine it with the source
|
// now we only need to check if the target has a template to combine it with the source
|
||||||
const targetTemplate = targetItem[metaTemplateKeyName]
|
const targetTemplate = targetItem[metaTemplateKeyName]
|
||||||
|
|||||||
@@ -671,4 +671,52 @@ describe('getMetaInfo', () => {
|
|||||||
__dangerouslyDisableSanitizersByTagID: {}
|
__dangerouslyDisableSanitizersByTagID: {}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('child can indicate to remove parent vmids', () => {
|
||||||
|
Vue.component('merge-child', {
|
||||||
|
render: h => h('div'),
|
||||||
|
metaInfo: {
|
||||||
|
title: 'Hi',
|
||||||
|
meta: [
|
||||||
|
{
|
||||||
|
vmid: 'og:title',
|
||||||
|
content: null
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const component = new Vue({
|
||||||
|
metaInfo: {
|
||||||
|
title: 'Hello',
|
||||||
|
meta: [
|
||||||
|
{
|
||||||
|
vmid: 'og:title',
|
||||||
|
property: 'og:title',
|
||||||
|
content: 'Test title',
|
||||||
|
template: chunk => `${chunk} - My page`
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
el: document.createElement('div'),
|
||||||
|
render: h => h('div', null, [h('merge-child')])
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(getMetaInfo(component)).toEqual({
|
||||||
|
title: 'Hi',
|
||||||
|
titleChunk: 'Hi',
|
||||||
|
titleTemplate: '%s',
|
||||||
|
htmlAttrs: {},
|
||||||
|
headAttrs: {},
|
||||||
|
bodyAttrs: {},
|
||||||
|
meta: [],
|
||||||
|
base: [],
|
||||||
|
link: [],
|
||||||
|
style: [],
|
||||||
|
script: [],
|
||||||
|
noscript: [],
|
||||||
|
__dangerouslyDisableSanitizers: [],
|
||||||
|
__dangerouslyDisableSanitizersByTagID: {}
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user