Skip to content

Commit c48f364

Browse files
committed
feat: ensure gui container passes onUpdateProjectThumbnail downwards
1 parent 9b1c860 commit c48f364

File tree

5 files changed

+12
-12
lines changed

5 files changed

+12
-12
lines changed

packages/scratch-gui/src/components/gui/gui.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ GUIComponent.propTypes = {
489489
onTelemetryModalOptIn: PropTypes.func,
490490
onTelemetryModalOptOut: PropTypes.func,
491491
onToggleLoginOpen: PropTypes.func,
492-
onUpdateProjectThumbnail: PropTypes.func,
492+
onUpdateProjectThumbnail: PropTypes.func.isRequired,
493493
platform: PropTypes.oneOf(Object.keys(PLATFORM)),
494494
renderLogin: PropTypes.func,
495495
showComingSoon: PropTypes.bool,

packages/scratch-gui/src/components/stage-header/stage-header.jsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,6 @@ const StageHeaderComponent = function (props) {
7777
const onUpdateThumbnail = useCallback(
7878
throttle(
7979
() => {
80-
if (!onUpdateProjectThumbnail) {
81-
return;
82-
}
83-
8480
storeProjectThumbnail(vm, dataURI => {
8581
onUpdateProjectThumbnail(projectId, dataURItoBlob(dataURI));
8682
});

packages/scratch-gui/src/components/stage-wrapper/stage-wrapper.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ StageWrapperComponent.propTypes = {
6262
isRtl: PropTypes.bool.isRequired,
6363
loading: PropTypes.bool,
6464
manuallySaveThumbnails: PropTypes.bool,
65-
onUpdateProjectThumbnail: PropTypes.func,
65+
onUpdateProjectThumbnail: PropTypes.func.isRequired,
6666
stageSize: PropTypes.oneOf(Object.keys(STAGE_DISPLAY_SIZES)).isRequired,
6767
vm: PropTypes.instanceOf(VM).isRequired
6868
};

packages/scratch-gui/src/containers/gui.jsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ class GUI extends React.Component {
9696
loadingStateVisible,
9797
...componentProps
9898
} = this.props;
99-
99+
100100

101101
return (
102102
<GUIComponent
@@ -127,6 +127,7 @@ GUI.propTypes = {
127127
onSeeCommunity: PropTypes.func,
128128
onStorageInit: PropTypes.func,
129129
onUpdateProjectId: PropTypes.func,
130+
onUpdateProjectThumbnail: PropTypes.func,
130131
onVmInit: PropTypes.func,
131132
platform: PropTypes.oneOf(Object.keys(PLATFORM)),
132133
setPlatform: PropTypes.func.isRequired,
@@ -151,8 +152,10 @@ GUI.defaultProps = {
151152

152153
const mapStateToProps = (state, ownProps) => {
153154
const loadingState = state.scratchGui.projectState.loadingState;
155+
const storage = state.scratchGui.config.storage;
156+
const noop = () => {};
154157
return {
155-
storage: state.scratchGui.config.storage,
158+
storage,
156159
activeTabIndex: state.scratchGui.editorTab.activeTabIndex,
157160
alertsVisible: state.scratchGui.alerts.visible,
158161
backdropLibraryVisible: state.scratchGui.modals.backdropLibrary,
@@ -169,6 +172,10 @@ const mapStateToProps = (state, ownProps) => {
169172
isRtl: state.locales.isRtl,
170173
isShowingProject: getIsShowingProject(loadingState),
171174
loadingStateVisible: state.scratchGui.modals.loadingProject,
175+
onUpdateProjectThumbnail:
176+
ownProps.onUpdateProjectThumbnail ??
177+
storage.saveProjectThumbnail?.bind(storage) ??
178+
noop,
172179
platform: ownProps.platform,
173180
projectId: state.scratchGui.projectState.projectId,
174181
soundsTabVisible: state.scratchGui.editorTab.activeTabIndex === SOUNDS_TAB_INDEX,

packages/scratch-gui/src/lib/project-saver-hoc.jsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ const ProjectSaverHOC = function (WrappedComponent) {
391391
onShowSaveSuccessAlert: PropTypes.func,
392392
onShowSavingAlert: PropTypes.func,
393393
onUpdateProjectData: PropTypes.func,
394-
onUpdateProjectThumbnail: PropTypes.func,
394+
onUpdateProjectThumbnail: PropTypes.func.isRequired,
395395
onUpdatedProject: PropTypes.func,
396396
noBeforeUnloadHandler: PropTypes.bool.isRequired,
397397
projectChanged: PropTypes.bool,
@@ -430,9 +430,6 @@ const ProjectSaverHOC = function (WrappedComponent) {
430430
isManualUpdating: getIsManualUpdating(loadingState),
431431
loadingState: loadingState,
432432
locale: state.locales.locale,
433-
onUpdateProjectThumbnail:
434-
ownProps.onUpdateProjectThumbnail ??
435-
storage.saveProjectThumbnail?.bind(storage),
436433
projectChanged: state.scratchGui.projectChanged,
437434
reduxProjectId: state.scratchGui.projectState.projectId,
438435
reduxProjectTitle: state.scratchGui.projectTitle,

0 commit comments

Comments
 (0)