apps/wpcom-block-editor/src/calypso/iframe-bridge-server.js
function handlePostLockTakeover( calypsoPort ) {
	const unsubscribe = subscribe( () => {
		const isLocked = select( 'core/editor' ).isPostLocked();
		const isLockTakeover = select( 'core/editor' ).isPostLockTakeover();
		const allPostsButton = document.querySelector( 'div.editor-post-locked-modal__buttons > a' );

		const isPostTakeoverDialog = isLocked && isLockTakeover && allPostsButton;

		if ( isPostTakeoverDialog ) {
			//handle All Posts button click event
			allPostsButton.addEventListener(
				'click',
				event => {
					event.preventDefault();
					calypsoPort.postMessage( { action: 'goToAllPosts' } );
				},
				false
			);

			//overrides the all posts link just in case the user treats the link... as a link.
			if ( calypsoifyGutenberg && calypsoifyGutenberg.closeUrl ) {
				allPostsButton.setAttribute( 'target', '_parent' );
				allPostsButton.setAttribute( 'href', calypsoifyGutenberg.closeUrl );
			}

			unsubscribe();
		}
	} );
}
function handlePostLockTakeover( calypsoPort ) {
	const unsubscribe = subscribe( () => {
		const isLocked = select( 'core/editor' ).isPostLocked();
		const isLockTakeover = select( 'core/editor' ).isPostLockTakeover();
		const allPostsButton = document.querySelector( 'div.editor-post-locked-modal__buttons > a' );

		const isPostTakeoverDialog = isLocked && isLockTakeover && allPostsButton;

		if ( isPostTakeoverDialog ) {
			//handle All Posts button click event
			allPostsButton.addEventListener(
				'click',
				event => {
					event.preventDefault();
					calypsoPort.postMessage( { action: 'goToAllPosts' } );
				},
				false
			);

			//overrides the all posts link just in case the user treats the link... as a link.
			if ( calypsoifyGutenberg && calypsoifyGutenberg.closeUrl ) {
				allPostsButton.setAttribute( 'target', '_parent' );
				allPostsButton.setAttribute( 'href', calypsoifyGutenberg.closeUrl );
			}

			unsubscribe();
		}
	} );
}
function handlePostLockTakeover ( calypsoPort ) { const unsubscribe = subscribe ( ( ) => { const isLocked = select ( 'core/editor' ) . isPostLocked ( ) ; const isLockTakeover = select ( 'core/editor' ) . isPostLockTakeover ( ) ; const allPostsButton = document . querySelector ( 'div.editor-post-locked-modal__buttons > a' ) ; const isPostTakeoverDialog = isLocked && isLockTakeover && allPostsButton ; if ( isPostTakeoverDialog ) { //handle All Posts button click event allPostsButton . addEventListener ( 'click' , event => { event . preventDefault ( ) ; calypsoPort . postMessage ( { action : 'goToAllPosts' } ) ; } , false ) ; //overrides the all posts link just in case the user treats the link... as a link. if ( calypsoifyGutenberg && calypsoifyGutenberg . closeUrl ) { allPostsButton . setAttribute ( 'target' , '_parent' ) ; allPostsButton . setAttribute ( 'href' , calypsoifyGutenberg . closeUrl ) ; } unsubscribe ( ) ; } } ) ; }
Listens for post lock status changing to locked, and for the post to have been taken over
by another user, adding an event handler for the All Posts button.

@param {MessagePort} calypsoPort Port used for communication with parent frame.
Listens for post lock status changing to locked and for the post to have been taken over by another user adding an event handler for the All Posts button .