diff --git a/package.json b/package.json index 6659eff665a852a17616b3c79399e2c7a6b1345a..1a96a5e1defdff10a0c03fbe65150c9fe113b736 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "eslint": "^5.0.1", "eslint-config-scratch": "^5.0.0", "eslint-plugin-import": "^2.8.0", - "eslint-plugin-react": "7.11.1", + "eslint-plugin-react": "^7.12.4", "file-loader": "2.0.0", "get-float-time-domain-data": "0.1.0", "get-user-media-promise": "1.1.4", diff --git a/src/components/menu-bar/menu-bar.jsx b/src/components/menu-bar/menu-bar.jsx index 22cd2d919809ea0a09b937083074da537f12a2a7..6105a60e5ca161b36b96f3c0043a45c45a30b872 100644 --- a/src/components/menu-bar/menu-bar.jsx +++ b/src/components/menu-bar/menu-bar.jsx @@ -715,6 +715,7 @@ MenuBar.propTypes = { isShowingProject: PropTypes.bool, isUpdating: PropTypes.bool, languageMenuOpen: PropTypes.bool, + locale: PropTypes.string.isRequired, loginMenuOpen: PropTypes.bool, onClickAccount: PropTypes.func, onClickEdit: PropTypes.func, @@ -744,6 +745,7 @@ MenuBar.propTypes = { sessionExists: PropTypes.bool, shouldSaveBeforeTransition: PropTypes.func, showComingSoon: PropTypes.bool, + userOwnsProject: PropTypes.bool, username: PropTypes.string, vm: PropTypes.instanceOf(VM).isRequired }; diff --git a/src/containers/stage.jsx b/src/containers/stage.jsx index e0e3096a154127d8cbf576bd765f985aaa4f74ac..9ddd0d90794e80f979cab56ca9339e79b8c138f0 100644 --- a/src/containers/stage.jsx +++ b/src/containers/stage.jsx @@ -423,6 +423,7 @@ class Stage extends React.Component { Stage.propTypes = { isColorPicking: PropTypes.bool, isFullScreen: PropTypes.bool.isRequired, + isStarted: PropTypes.bool, micIndicator: PropTypes.bool, onActivateColorPicker: PropTypes.func, onDeactivateColorPicker: PropTypes.func, diff --git a/src/lib/app-state-hoc.jsx b/src/lib/app-state-hoc.jsx index 7d1fe2ed42be50e932865ff091cc574f6f7a09d6..c7c076e33881e5a2c995806a8e1b4a867384f2b5 100644 --- a/src/lib/app-state-hoc.jsx +++ b/src/lib/app-state-hoc.jsx @@ -113,7 +113,8 @@ const AppStateHOC = function (WrappedComponent, localesOnly) { } AppStateWrapper.propTypes = { isFullScreen: PropTypes.bool, - isPlayerOnly: PropTypes.bool + isPlayerOnly: PropTypes.bool, + showTelemetryModal: PropTypes.bool }; return AppStateWrapper; }; diff --git a/src/lib/project-fetcher-hoc.jsx b/src/lib/project-fetcher-hoc.jsx index 888e378f525402a787469f69c9649884e6875c29..3f4613719893bc2fc973283f9c8580d0e0ffeaf7 100644 --- a/src/lib/project-fetcher-hoc.jsx +++ b/src/lib/project-fetcher-hoc.jsx @@ -115,8 +115,10 @@ const ProjectFetcherHOC = function (WrappedComponent) { assetHost: PropTypes.string, canSave: PropTypes.bool, intl: intlShape.isRequired, + isCreatingNew: PropTypes.bool, isFetchingWithId: PropTypes.bool, isLoadingProject: PropTypes.bool, + isShowingProject: PropTypes.bool, loadingState: PropTypes.oneOf(LoadingStates), onActivateTab: PropTypes.func, onError: PropTypes.func, diff --git a/src/lib/project-saver-hoc.jsx b/src/lib/project-saver-hoc.jsx index ee56b4b582c0453960aba4fe82db60b34490ba93..2dbc3374712b88c4ed5f4a924d30353a48b08d7a 100644 --- a/src/lib/project-saver-hoc.jsx +++ b/src/lib/project-saver-hoc.jsx @@ -343,6 +343,7 @@ const ProjectSaverHOC = function (WrappedComponent) { } ProjectSaverComponent.propTypes = { + autoSaveIntervalSecs: PropTypes.number.isRequired, autoSaveTimeoutId: PropTypes.number, canCreateNew: PropTypes.bool, canSave: PropTypes.bool, @@ -358,12 +359,16 @@ const ProjectSaverHOC = function (WrappedComponent) { isShowingWithoutId: PropTypes.bool, isUpdating: PropTypes.bool, loadingState: PropTypes.oneOf(LoadingStates), + locale: PropTypes.string.isRequired, onAutoUpdateProject: PropTypes.func, onCreateProject: PropTypes.func, onCreatedProject: PropTypes.func, onProjectError: PropTypes.func, onProjectTelemetryEvent: PropTypes.func, onRemixing: PropTypes.func, + onSetProjectSaver: PropTypes.func.isRequired, + onSetProjectThumbnailer: PropTypes.func.isRequired, + onSetProjectUnchanged: PropTypes.func.isRequired, onShowAlert: PropTypes.func, onShowCopySuccessAlert: PropTypes.func, onShowCreatingCopyAlert: PropTypes.func, @@ -377,6 +382,7 @@ const ProjectSaverHOC = function (WrappedComponent) { projectChanged: PropTypes.bool, reduxProjectId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), reduxProjectTitle: PropTypes.string, + setAutoSaveTimeoutId: PropTypes.func.isRequired, vm: PropTypes.instanceOf(VM).isRequired }; ProjectSaverComponent.defaultProps = { diff --git a/src/lib/vm-listener-hoc.jsx b/src/lib/vm-listener-hoc.jsx index bac53a51409228b649b4514ee5150965e7b57ee9..746936cb5dbd82338e76f877541fe07b0bf74e1d 100644 --- a/src/lib/vm-listener-hoc.jsx +++ b/src/lib/vm-listener-hoc.jsx @@ -60,9 +60,9 @@ const vmListenerHOC = function (WrappedComponent) { this.props.vm.postIOData('userData', {username: this.props.username}); } - // Re-request a targets update when the shouldEmitTargetsUpdate state changes to true + // Re-request a targets update when the shouldEmitUpdate state changes to true // i.e. when the editor transitions out of fullscreen/player only modes - if (this.props.shouldEmitTargetsUpdate && !prevProps.shouldEmitTargetsUpdate) { + if (this.props.shouldEmitUpdates && !prevProps.shouldEmitUpdates) { this.props.vm.emitTargetsUpdate(false /* Emit the event, but do not trigger project change */); } } @@ -148,8 +148,10 @@ const vmListenerHOC = function (WrappedComponent) { onKeyUp: PropTypes.func, onMicListeningUpdate: PropTypes.func.isRequired, onMonitorsUpdate: PropTypes.func.isRequired, + onProjectChanged: PropTypes.func.isRequired, onProjectRunStart: PropTypes.func.isRequired, onProjectRunStop: PropTypes.func.isRequired, + onProjectSaved: PropTypes.func.isRequired, onRuntimeStarted: PropTypes.func.isRequired, onShowExtensionAlert: PropTypes.func.isRequired, onTargetsUpdate: PropTypes.func.isRequired, diff --git a/src/lib/vm-manager-hoc.jsx b/src/lib/vm-manager-hoc.jsx index fd7e3ed3c1ae7ef630838306dcc60bbd24c71097..7947dfd649e4ee121637e1d0b1a432f289616f15 100644 --- a/src/lib/vm-manager-hoc.jsx +++ b/src/lib/vm-manager-hoc.jsx @@ -107,6 +107,7 @@ const vmManagerHOC = function (WrappedComponent) { fontsLoaded: PropTypes.bool, isLoadingWithId: PropTypes.bool, isPlayerOnly: PropTypes.bool, + isStarted: PropTypes.bool, loadingState: PropTypes.oneOf(LoadingStates), locale: PropTypes.string, messages: PropTypes.objectOf(PropTypes.string),