Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 1x 1x 1x 1x 12x 12x 12x 12x 12x 12x 12x 2x 1x 1x 1x 1x 12x 2x 1x 1x 1x 1x 1x 10x 10x 10x 12x 1x 1x 12x 12x 1x 1x 12x 9x 9x 12x | import { INSVElement } from '../nodes'
import { isBoolean, isAndroidKey, isIOSKey } from '@nativescript-vue/runtime'
import { isAndroid, isIOS } from '@nativescript/core'
export function patchAttr(
el: INSVElement,
key: string,
prevValue: any,
nextValue: any
) {
if (isAndroidKey(key)) {
if (!isAndroid) {
// if we encounter an android key, and we are not on android we can safely ignore it
return
}
key = key.substr(8)
} else if (isIOSKey(key)) {
if (!isIOS) {
// if we encounter an ios key, and we are not on ios we can safely ignore it
return
}
key = key.substr(4)
}
// detect expandable attrs for boolean values
// see https://vuejs.org/v2/guide/components-props.html#Passing-a-Boolean
if (isBoolean(el.getAttribute(key)) && nextValue === '') {
nextValue = true
}
if (nextValue === null) {
// if the nextValue is null, we are removing the attribute
el.removeAttribute(key)
} else {
el.setAttribute(key, nextValue)
}
}
|