How to get Initial Values from a Media Object
11 replies
Last updated: May 28, 2020
T
Is it possible to get initial values from an object like this:
{ title: "Media", name: "media", type: "array", of: [ { title: "Image", type: "image", }, { title: "Video", type: "object", fields: [ { title: "Video Url", name: "url", type: "url", }, { title: "Autoplay", name: "autoplay", type: "boolean", }, { title: "Controls", name: "controls", type: "boolean", }, ], }, ], },
May 28, 2020, 3:28 PM
T
I need to put default values on my video options (autoplay, controls, audio....)
May 28, 2020, 3:29 PM
T
(The whole thing is a document)
May 28, 2020, 3:35 PM
P
For controls, for example, this should work:
... initialValue: { media: [{ _type: 'video', controls: true }] }, ...
May 28, 2020, 3:56 PM
T
Thanks
user M
May 28, 2020, 3:59 PM
T
user M
It works with _type: "object"
May 28, 2020, 4:06 PM
T
But can I reference it from an object somewhere else with type: “video”. My document is a total mess now 😅
May 28, 2020, 4:08 PM
P
Depends on the schema - you might have to nest a lever deeper with
_type: 'video'inside a
_type: 'object'in that case I suspect. Or slightly differently. Would be good to see the schema 🙂
May 28, 2020, 4:09 PM
T
Sure, here is the schema
May 28, 2020, 4:13 PM
T
Basically I had everything in an object “Gallery”, which is cleaner, but then I needed initial values
May 28, 2020, 4:14 PM
T
Seems to work perfectly with
_type: videoand then my video object:
export default { title: "Video", name: "video", type: "object", fields: [ { title: "Video Url", name: "url", type: "url", }, { title: "Autoplay", name: "autoplay", type: "boolean", }, { title: "Controls", name: "controls", type: "boolean", }, { title: "Loop", name: "loop", type: "boolean", }, { title: "Audio", name: "audio", type: "boolean", }, ], }
May 28, 2020, 4:22 PM
T
in case someone is interested, I passed the initial value to “gallery” like this
initialValue: { gallery: { _type: "object", media: [ { _type: "video", autoplay: true, controls: true, loop: true, audio: true, }, ], }, },
May 28, 2020, 4:56 PM
Sanity– build remarkable experiences at scale
Sanity is a modern headless CMS that treats content as data to power your digital business. Free to get started, and pay-as-you-go on all plans.