diff --git a/packages/edit-site/src/components/template-switcher/index.js b/packages/edit-site/src/components/template-switcher/index.js
index d9e59a243bec90..780ddf1982bda8 100644
--- a/packages/edit-site/src/components/template-switcher/index.js
+++ b/packages/edit-site/src/components/template-switcher/index.js
@@ -17,7 +17,8 @@ import { plus } from '@wordpress/icons';
* Internal dependencies
*/
import AddTemplate from '../add-template';
-import TemplatePreview from './preview';
+import TemplatePreview from './template-preview';
+import ThemePreview from './theme-preview';
function TemplateLabel( { template } ) {
return (
@@ -42,12 +43,22 @@ export default function TemplateSwitcher( {
onAddTemplateId,
} ) {
const [ hoveredTemplate, setHoveredTemplate ] = useState();
+ const [ themePreviewVisible, setThemePreviewVisible ] = useState( false );
+
const onHoverTemplate = ( id ) => {
setHoveredTemplate( { id, type: 'template' } );
};
const onHoverTemplatePart = ( id ) => {
setHoveredTemplate( { id, type: 'template-part' } );
};
+
+ const onMouseEnterTheme = () => {
+ setThemePreviewVisible( () => true );
+ };
+ const onMouseLeaveTheme = () => {
+ setThemePreviewVisible( () => false );
+ };
+
const { currentTheme, templates, templateParts } = useSelect(
( select ) => {
const { getCurrentTheme, getEntityRecord } = select( 'core' );
@@ -136,11 +147,19 @@ export default function TemplateSwitcher( {
/>