Skip to content

Commit 155397f

Browse files
author
Mint de Wit
committed
chore: callback stability
1 parent cfbaba9 commit 155397f

File tree

1 file changed

+37
-34
lines changed

1 file changed

+37
-34
lines changed

meteor/client/ui/Shelf/BucketPanel.tsx

Lines changed: 37 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -959,45 +959,48 @@ interface DropzoneHolderProps {
959959
const DropzoneHolder = (props: DropzoneHolderProps) => {
960960
const [dropzoneElementRef, setDropzoneElementRef] = React.useState<HTMLIFrameElement | null>(null)
961961

962-
const onMessage = (event: MessageEvent) => {
963-
// filter out messages from this panel
964-
if (event.source !== dropzoneElementRef?.contentWindow) return
965-
966-
switch (event.data?.event) {
967-
case 'drop':
968-
RundownViewEventBus.emit(RundownViewEvents.ITEM_DROPPED, {
969-
id: props.id,
970-
bucketId: props.bucketId,
971-
ev: event,
972-
})
973-
if (props.onDragLeave) props.onDragLeave()
974-
break
975-
case 'data':
976-
if (event.data.data.trim().endsWith('</mos>')) {
962+
const onMessage = React.useCallback(
963+
(event: MessageEvent) => {
964+
// filter out messages from this panel
965+
if (event.source !== dropzoneElementRef?.contentWindow) return
966+
967+
switch (event.data?.event) {
968+
case 'drop':
977969
RundownViewEventBus.emit(RundownViewEvents.ITEM_DROPPED, {
978970
id: props.id,
979971
bucketId: props.bucketId,
980-
message: event.data.data,
981972
ev: event,
982973
})
983-
}
984-
break
985-
case 'error':
986-
RundownViewEventBus.emit(RundownViewEvents.ITEM_DROPPED, {
987-
id: props.id,
988-
bucketId: props.bucketId,
989-
error: event.data.message,
990-
ev: event,
991-
})
992-
break
993-
case 'dragEnter':
994-
if (props.onDragEnter) props.onDragEnter()
995-
break
996-
case 'dragLeave':
997-
if (props.onDragLeave) props.onDragLeave()
998-
break
999-
}
1000-
}
974+
if (props.onDragLeave) props.onDragLeave()
975+
break
976+
case 'data':
977+
if (event.data.data.trim().endsWith('</mos>')) {
978+
RundownViewEventBus.emit(RundownViewEvents.ITEM_DROPPED, {
979+
id: props.id,
980+
bucketId: props.bucketId,
981+
message: event.data.data,
982+
ev: event,
983+
})
984+
}
985+
break
986+
case 'error':
987+
RundownViewEventBus.emit(RundownViewEvents.ITEM_DROPPED, {
988+
id: props.id,
989+
bucketId: props.bucketId,
990+
error: event.data.message,
991+
ev: event,
992+
})
993+
break
994+
case 'dragEnter':
995+
if (props.onDragEnter) props.onDragEnter()
996+
break
997+
case 'dragLeave':
998+
if (props.onDragLeave) props.onDragLeave()
999+
break
1000+
}
1001+
},
1002+
[dropzoneElementRef, props.onDragEnter, props.onDragLeave]
1003+
)
10011004

10021005
React.useEffect(() => {
10031006
if (!dropzoneElementRef) return

0 commit comments

Comments
 (0)