diff --git a/morph/react/block-off-when.js b/morph/react/block-off-when.js index 27a9ee1..c045b07 100644 --- a/morph/react/block-off-when.js +++ b/morph/react/block-off-when.js @@ -1,5 +1,7 @@ import { getProp, isList, isStory } from '../utils.js' +let IS_MEDIA = /(!?props\.isMedia)(.+)/ + export function enter(node, parent, state) { if (node.isFragment && node.children.length === 0) return @@ -36,6 +38,9 @@ export function enter(node, parent, state) { default: break } + } else if (IS_MEDIA.test(value)) { + let [, variable, media] = value.match(IS_MEDIA) + value = `${variable.replace('props.', '')}.${media.toLowerCase()}` } state.render.push(`${value} ? `) } else if (isStory(node, state)) { diff --git a/package.json b/package.json index a80f2f0..e0fe312 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@viewstools/morph", - "version": "19.10.9", + "version": "19.10.10", "description": "Views language morpher", "main": "bin.js", "type": "module", diff --git a/parse/index.js b/parse/index.js index bff5538..798027b 100644 --- a/parse/index.js +++ b/parse/index.js @@ -567,6 +567,10 @@ That would mean that SomeView in ${block.name} will be replaced by ${block.name} }) } + if (name === 'onWhen' && /!?isMedia.+/.test(slotName)) { + useIsMedia = true + } + if (name === 'format') { block.format = getFormat(value) }