✨Discover storytelling in the AI age with Pixar's Matthew Luhn at Sanity Connect, May 8th—register now

Tips for debugging YouTube thumbnail preview in portable content editor

7 replies
Last updated: May 23, 2023
Hello, I’m hoping to get some tips on debugging
form.component.preview
for a YouTube thumbnail located within a portable content editor?
May 23, 2023, 4:34 PM
After pasting in the URL for the video, the preview loads but then I can’t see the input and field components.

import React from "react";
import getYouTubeID from "get-youtube-id";
import YouTube from "react-youtube";
import styled from "styled-components";

const YTPreview = styled(YouTube)`
	display: flex;
	justify-content: center;
`;

const YouTubePreview = ({ title }) => {
	const url = title.split(" ")[1];
	const id = getYouTubeID(url);
	const opts = {
		height: "183",
		width: "300",
	};
	return <YTPreview opts={opts} videoId={id} />;
};

const youtube = {
	name: "youtube",
	title: "YouTube Embed",
	type: "object",
	fields: [
		{
			name: "link",
			title: "Youtube Video URL",
			type: "url",
		},
	],
	components: {
		preview: YouTubePreview,
	},
};

export default youtube;
May 23, 2023, 4:34 PM
Hello, I’m hoping to get some tips on debugging
form.component.preview
for a YouTube thumbnail located within a portable content editor?
May 23, 2023, 4:34 PM
Is there a … button on the component you can click to open the edit modal?
May 23, 2023, 4:43 PM
No, I don’t think I see a button.
I did notice that if I made the YT preview very small, I could double-click on the div containing it to make the form reappear. I was hoping to make it a bit more intuitive for my editors though.
May 23, 2023, 4:46 PM
Can you try changing the component to:
const YouTubePreview = (props) => {
    const { renderDefault, title } = props
	const url = title.split(" ")[1];
	const id = getYouTubeID(url);
	const opts = {
		height: "183",
		width: "300",
	};
	return (
      <div>
        { renderDefault(props) }
        <YTPreview opts={opts} videoId={id} />;
      </div>
    )
};
May 23, 2023, 4:50 PM
OMG! That was it, what a simple fix. I reviewed the docs, specifically this section and see what I missed
https://www.sanity.io/docs/form-components#0319196f086b
May 23, 2023, 6:47 PM
Gotta love
renderDefault
!
May 23, 2023, 6:53 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.

Was this answer helpful?