@@ -8,8 +8,9 @@ import { debounce } from 'lodash';
88import type { Module , Sandbox , Preferences , Directory } from 'common/types' ;
99
1010import { frameUrl } from 'common/utils/url-generator' ;
11- import { findMainModule } from 'app/store/entities/sandboxes/modules/selectors' ;
11+ import { getModulePath } from 'app/store/entities/sandboxes/modules/selectors' ;
1212import sandboxActionCreators from 'app/store/entities/sandboxes/actions' ;
13+
1314import shouldUpdate from './utils/should-update' ;
1415
1516import DevTools from './DevTools' ;
@@ -127,6 +128,12 @@ export default class Preview extends React.PureComponent<Props, State> {
127128 return ;
128129 }
129130
131+ if ( prevProps . dependencies !== this . props . dependencies ) {
132+ // Changed dependencies
133+ this . executeCodeImmediately ( ) ;
134+ return ;
135+ }
136+
130137 if ( prevProps . module . id !== this . props . module . id ) {
131138 if ( prevProps . isInProjectView && this . props . isInProjectView ) {
132139 // If user only navigated while watching project
@@ -253,15 +260,14 @@ export default class Preview extends React.PureComponent<Props, State> {
253260 getRenderedModule = ( ) => {
254261 const { modules, module, directories, entry, isInProjectView } = this . props ;
255262 return isInProjectView
256- ? findMainModule ( modules , directories , entry )
257- : module ;
263+ ? '/' + entry
264+ : getModulePath ( modules , directories , module . id ) ;
258265 } ;
259266
260267 executeCodeImmediately = ( initialRender : boolean = false ) => {
261268 const {
262269 modules,
263270 directories,
264- module,
265271 externalResources,
266272 preferences,
267273 dependencies,
@@ -286,18 +292,22 @@ export default class Preview extends React.PureComponent<Props, State> {
286292 this . evaluateInSandbox ( `history.pushState({}, null, '/')` ) ;
287293 }
288294
295+ // We convert the modules to a format the manager understands
296+ const normalizedModules = modules . map ( m => ( {
297+ path : getModulePath ( modules , directories , m . id ) ,
298+ code : m . code ,
299+ } ) ) ;
300+
289301 this . sendMessage ( {
290302 type : 'compile' ,
291- module : renderedModule ,
292- changedModule : module ,
303+ version : 2 ,
304+ entry : renderedModule ,
293305 dependencies,
294- modules,
295- directories,
306+ modules : normalizedModules ,
296307 sandboxId,
297308 externalResources,
298309 template,
299310 hasActions : ! ! runActionFromPreview ,
300- isModuleView : ! isInProjectView ,
301311 } ) ;
302312 }
303313 } ;
0 commit comments