Skip to content

Conversation

@paolis92
Copy link

@paolis92 paolis92 commented May 7, 2020

Description:

Only in components with single-property schema, asset is not parsed when updating (for example gltf-model)
So #asset-id will not be converted in url necessary for this.data.

Maybe instead of doing this in propertyTypes we should add the possibility to force a parse, like:
function registerPropertyType (type, defaultValue, parse, stringify, parseRequired)
so it becomes
registerPropertyType('model', '', assetParse, undefined, true);
and then in the code commited above instead of checking the parse function name, we check
if (this.schema.parseRequired)

This change should fix #4341

Changes proposed:

  • add parse of attrValue for singleProperty schema for type: asset when updating component

Only in components with single-property schema asset is not parsed when updating (for example gltf-model)
So #asset-id will not be converted in url necessary for this.data.
Maybe instead of doing this in propertyTypes we should add the possibility to force a parse, like:
function registerPropertyType (type, defaultValue, parse, stringify, parseRequired)
so it becomes
registerPropertyType('model', '', assetParse, undefined, true);
and then in the code commited above instead of checking the parse function name, we check if (this.schema.parseRequired)
parseProperty(attrValue, this.schema);
}
// Assets need parsing otherwise #asset-id will not be converted in url for this.data (ex gltf-model)
if (this.schema.parse.name === 'assetParse') {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding an exception for a specific parser is brittle. We would need to find a more robust way.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can always call parse function like it happens for components that have schema with more than one property (am I wrong here?) a few lines below the highlighted ones
parseProperties(attrValue, this.schema, true, this.name);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

gltf-model update not working with assets

2 participants