Skip to content

Commit 7e6628b

Browse files
author
Ives van Hoorne
committed
Enable default exported components
1 parent 5453b2c commit 7e6628b

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

src/sandbox/index.js

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@ import buildError from './utils/error-message-builder';
33
import evalModule, { deleteCache } from './eval';
44
import NoDomChangeError from './errors/no-dom-change-error';
55

6+
import {
7+
getBoilerplates,
8+
evalBoilerplates,
9+
findBoilerplate,
10+
} from './boilerplates';
11+
612
const host = process.env.NODE_ENV === 'development'
713
? 'http://codesandbox.dev/'
814
: 'https://codesandbox.io/';
@@ -88,6 +94,15 @@ async function compile(message) {
8894
return;
8995
}
9096

97+
// initiate boilerplates
98+
if (
99+
boilerplates.length !== 0 &&
100+
getBoilerplates().length === 0 &&
101+
manifest != null
102+
) {
103+
evalBoilerplates(boilerplates, modules, directories, manifest);
104+
}
105+
91106
const extResString = getExternalResourcesConcatination(externalResources);
92107
if (extResString !== cachedExternalResources) {
93108
clearExternalResources();
@@ -106,7 +121,12 @@ async function compile(message) {
106121
const isReact = module.code.includes('react');
107122
const functionName = evalled.default ? evalled.default.name : '';
108123

109-
throw new NoDomChangeError(isReact, functionName);
124+
if (isReact) {
125+
const boilerplate = findBoilerplate(module);
126+
boilerplate.module.default(evalled);
127+
} else {
128+
throw new NoDomChangeError(isReact, functionName);
129+
}
110130
}
111131

112132
window.parent.postMessage(

0 commit comments

Comments
 (0)