<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[8600] sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src: WC Blocks: Refactor away deprecated `componentWillMount` function</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="http://meta.trac.wordpress.org/changeset/8600">8600</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"http://meta.trac.wordpress.org/changeset/8600","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>vedjain</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2019-04-05 10:45:15 +0000 (Fri, 05 Apr 2019)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>WC Blocks: Refactor away deprecated `componentWillMount` function

We use `componentWillMount` and `componentWillUnmount` method in bunch of places. This method is soon to be deprecated, so it makes sense to move away from it.
As per best practices, we moved all `componentWillMount` method to inside constructor, since we were not subscribing to any events / not creating any side effects.

Fixes https://github.com/WordPress/wordcamp.org/issues/63</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcorganizerseditjs">sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/organizers/edit.js</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcorganizersorganizersselectjs">sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/organizers/organizers-select.js</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcsessionseditjs">sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sessions/edit.js</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcsessionssessionsselectjs">sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sessions/sessions-select.js</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcsharedfeaturedimageinspectorcontroljs">sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/shared/featured-image/inspector-control.js</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcspeakerseditjs">sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/speakers/edit.js</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcspeakersspeakersselectjs">sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/speakers/speakers-select.js</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcsponsorsblockcontentjs">sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/block-content.js</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcsponsorsblockcontrolsjs">sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/block-controls.js</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcsponsorseditjs">sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/edit.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcorganizerseditjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/organizers/edit.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/organizers/edit.js   2019-04-05 10:44:58 UTC (rev 8599)
+++ sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/organizers/edit.js     2019-04-05 10:45:15 UTC (rev 8600)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -42,9 +42,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        allOrganizerPosts : null,
</span><span class="cx" style="display: block; padding: 0 10px">                        allOrganizerTerms : null,
</span><span class="cx" style="display: block; padding: 0 10px">                };
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               this.fetchOrganizerDetails();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        componentWillMount() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ fetchOrganizerDetails() {
</ins><span class="cx" style="display: block; padding: 0 10px">                 this.isStillMounted = true;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                const allOrganizerPosts = apiFetch( {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -55,18 +57,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        path: addQueryArgs( '/wp/v2/organizer_team', ALL_TERMS_QUERY ),
</span><span class="cx" style="display: block; padding: 0 10px">                } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( this.isStillMounted ) {
-                       this.setState( {
-                               allOrganizerPosts : allOrganizerPosts, // Promise
-                               allOrganizerTerms : allOrganizerTerms, // Promise
-                       } );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         this.state = {
+                       allOrganizerPosts : allOrganizerPosts, // Promise
+                       allOrganizerTerms : allOrganizerTerms, // Promise
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        componentWillUnmount() {
-               this.isStillMounted = false;
-       }
-
</del><span class="cx" style="display: block; padding: 0 10px">         render() {
</span><span class="cx" style="display: block; padding: 0 10px">                const { mode } = this.props.attributes;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcorganizersorganizersselectjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/organizers/organizers-select.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/organizers/organizers-select.js      2019-04-05 10:44:58 UTC (rev 8599)
+++ sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/organizers/organizers-select.js        2019-04-05 10:45:15 UTC (rev 8600)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -29,12 +29,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                this.buildSelectOptions = this.buildSelectOptions.bind( this );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                this.fetchSelectOptions( props );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        componentWillMount() {
-               this.isStillMounted = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ fetchSelectOptions( props ) {
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                const { allOrganizerPosts, allOrganizerTerms } = this.props;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         const { allOrganizerPosts, allOrganizerTerms } = props;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                const parsedPosts = allOrganizerPosts.then(
</span><span class="cx" style="display: block; padding: 0 10px">                        ( fetchedPosts ) => {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -47,9 +47,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        };
</span><span class="cx" style="display: block; padding: 0 10px">                                } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                if ( this.isStillMounted ) {
-                                       this.setState( { wcb_organizer: posts } );
-                               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         this.setState( { wcb_organizer: posts } );
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -64,9 +62,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        };
</span><span class="cx" style="display: block; padding: 0 10px">                                } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                if ( this.isStillMounted ) {
-                                       this.setState( { wcb_organizer_team: terms } );
-                               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         this.setState( { wcb_organizer_team: terms } );
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcsessionseditjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sessions/edit.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sessions/edit.js     2019-04-05 10:44:58 UTC (rev 8599)
+++ sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sessions/edit.js       2019-04-05 10:45:15 UTC (rev 8600)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -39,14 +39,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">        constructor( props ) {
</span><span class="cx" style="display: block; padding: 0 10px">                super( props );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                this.state = {
-                       allSessionPosts      : null,
-                       allSessionTracks     : null,
-                       allSessionCategories : null,
-               };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         this.fetchSessionDetails();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        componentWillMount() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ fetchSessionDetails() {
</ins><span class="cx" style="display: block; padding: 0 10px">                 this.isStillMounted = true;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                const allSessionPosts = apiFetch( {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -59,19 +55,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        path: addQueryArgs( `/wp/v2/session_category`, ALL_TERMS_QUERY ),
</span><span class="cx" style="display: block; padding: 0 10px">                } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( this.isStillMounted ) {
-                       this.setState( {
-                               allSessionPosts      : allSessionPosts, // Promise
-                               allSessionTracks     : allSessionTracks, // Promise
-                               allSessionCategories : allSessionCategories, // Promise
-                       } );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         this.state = {
+                       allSessionPosts: allSessionPosts, // Promise
+                       allSessionTracks: allSessionTracks, // Promise
+                       allSessionCategories: allSessionCategories, // Promise
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        componentWillUnmount() {
-               this.isStillMounted = false;
-       }
-
</del><span class="cx" style="display: block; padding: 0 10px">         render() {
</span><span class="cx" style="display: block; padding: 0 10px">                const { mode } = this.props.attributes;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcsessionssessionsselectjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sessions/sessions-select.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sessions/sessions-select.js  2019-04-05 10:44:58 UTC (rev 8599)
+++ sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sessions/sessions-select.js    2019-04-05 10:45:15 UTC (rev 8600)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -28,12 +28,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                this.buildSelectOptions = this.buildSelectOptions.bind( this );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                this.fetchSelectOptions( props );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        componentWillMount() {
-               this.isStillMounted = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ fetchSelectOptions( props ) {
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                const { allSessionPosts, allSessionTracks, allSessionCategories } = this.props;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         const { allSessionPosts, allSessionTracks, allSessionCategories } = props;
</ins><span class="cx" style="display: block; padding: 0 10px">                 const promises = [];
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                promises.push( allSessionPosts.then(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -49,9 +49,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        };
</span><span class="cx" style="display: block; padding: 0 10px">                                } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                if ( this.isStillMounted ) {
-                                       this.setState( { wcb_session: posts } );
-                               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         this.setState( { wcb_session: posts } );
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px">                ).catch() );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -67,10 +65,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                                };
</span><span class="cx" style="display: block; padding: 0 10px">                                        } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        if ( this.isStillMounted ) {
-                                               const [ firstTerm ] = terms;
-                                               this.setState( { [ firstTerm.type ]: terms } );
-                                       }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 const [ firstTerm ] = terms;
+                                       this.setState( { [ firstTerm.type ]: terms } );
</ins><span class="cx" style="display: block; padding: 0 10px">                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                        ).catch() );
</span><span class="cx" style="display: block; padding: 0 10px">                } );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -80,10 +76,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                } );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        componentWillUnmount() {
-               this.isStillMounted = false;
-       }
-
</del><span class="cx" style="display: block; padding: 0 10px">         buildSelectOptions( mode ) {
</span><span class="cx" style="display: block; padding: 0 10px">                const { getOwnPropertyDescriptors } = Object;
</span><span class="cx" style="display: block; padding: 0 10px">                const options = [];
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcsharedfeaturedimageinspectorcontroljs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/shared/featured-image/inspector-control.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/shared/featured-image/inspector-control.js   2019-04-05 10:44:58 UTC (rev 8599)
+++ sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/shared/featured-image/inspector-control.js     2019-04-05 10:45:15 UTC (rev 8600)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -40,7 +40,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * Implements inspector control for FeaturedImage component defined in ./index.js. Uses and sets attribute `featured_image_height` and `featured_image_width`.
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> class FeaturedImageInspectorControls extends Component {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        componentWillMount() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+       constructor( props ) {
+               super( props );
</ins><span class="cx" style="display: block; padding: 0 10px">                 this.availableSizes = sizePresets.map( ( size ) => size.value );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcspeakerseditjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/speakers/edit.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/speakers/edit.js     2019-04-05 10:44:58 UTC (rev 8599)
+++ sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/speakers/edit.js       2019-04-05 10:45:15 UTC (rev 8600)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -40,13 +40,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">        constructor( props ) {
</span><span class="cx" style="display: block; padding: 0 10px">                super( props );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                this.state = {
-                       allSpeakerPosts : null,
-                       allSpeakerTerms : null,
-               };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         this.fetchSpeakers();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        componentWillMount() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ fetchSpeakers() {
</ins><span class="cx" style="display: block; padding: 0 10px">                 this.isStillMounted = true;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                const allSpeakerPosts = apiFetch( {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -56,18 +53,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        path: addQueryArgs( `/wp/v2/speaker_group`, ALL_TERMS_QUERY ),
</span><span class="cx" style="display: block; padding: 0 10px">                } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( this.isStillMounted ) {
-                       this.setState( {
-                               allSpeakerPosts : allSpeakerPosts, // Promise
-                               allSpeakerTerms : allSpeakerTerms, // Promise
-                       } );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         this.state = {
+                       allSpeakerPosts : allSpeakerPosts, // Promise
+                       allSpeakerTerms : allSpeakerTerms, // Promise
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        componentWillUnmount() {
-               this.isStillMounted = false;
-       }
-
</del><span class="cx" style="display: block; padding: 0 10px">         render() {
</span><span class="cx" style="display: block; padding: 0 10px">                const { mode } = this.props.attributes;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcspeakersspeakersselectjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/speakers/speakers-select.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/speakers/speakers-select.js  2019-04-05 10:44:58 UTC (rev 8599)
+++ sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/speakers/speakers-select.js    2019-04-05 10:45:15 UTC (rev 8600)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -28,13 +28,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                this.buildSelectOptions = this.buildSelectOptions.bind( this );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                this.fetchSelectOptions( props );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        componentWillMount() {
-               this.isStillMounted = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ fetchSelectOptions( props ) {
+               const { allSpeakerPosts, allSpeakerTerms } = props;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                const { allSpeakerPosts, allSpeakerTerms } = this.props;
-
</del><span class="cx" style="display: block; padding: 0 10px">                 const parsedPosts = allSpeakerPosts.then(
</span><span class="cx" style="display: block; padding: 0 10px">                        ( fetchedPosts ) => {
</span><span class="cx" style="display: block; padding: 0 10px">                                const posts = fetchedPosts.map( ( post ) => {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -46,9 +45,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        };
</span><span class="cx" style="display: block; padding: 0 10px">                                } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                if ( this.isStillMounted ) {
-                                       this.setState( { wcb_speaker: posts } );
-                               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         this.setState( { wcb_speaker: posts } );
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -63,9 +60,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        };
</span><span class="cx" style="display: block; padding: 0 10px">                                } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                if ( this.isStillMounted ) {
-                                       this.setState( { wcb_speaker_group: terms } );
-                               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         this.setState( { wcb_speaker_group: terms } );
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -74,10 +69,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                } );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        componentWillUnmount() {
-               this.isStillMounted = false;
-       }
-
</del><span class="cx" style="display: block; padding: 0 10px">         buildSelectOptions( mode ) {
</span><span class="cx" style="display: block; padding: 0 10px">                const { getOwnPropertyDescriptors } = Object;
</span><span class="cx" style="display: block; padding: 0 10px">                const options = [];
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcsponsorsblockcontentjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/block-content.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/block-content.js    2019-04-05 10:44:58 UTC (rev 8599)
+++ sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/block-content.js      2019-04-05 10:45:15 UTC (rev 8600)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -35,8 +35,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">        const featuredImageSizes = get( sponsorPost, '_embedded.wp:featuredmedia[0].media_details.sizes', {} );
</span><span class="cx" style="display: block; padding: 0 10px">        const displayContent = 'full' === content ? sponsorPost.content.rendered.trim() : sponsorPost.excerpt.rendered.trim();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        console.log("content is: ", content, displayContent);
-
</del><span class="cx" style="display: block; padding: 0 10px">         return (
</span><span class="cx" style="display: block; padding: 0 10px">                <div className={ 'wordcamp-sponsor-details wordcamp-sponsor-details-' + escapeAttribute( sponsorPost.slug ) }>
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcsponsorsblockcontrolsjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/block-controls.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/block-controls.js   2019-04-05 10:44:58 UTC (rev 8599)
+++ sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/block-controls.js     2019-04-05 10:45:15 UTC (rev 8600)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -47,6 +47,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * Implements sponsor block controls.
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> class SponsorBlockControls extends BlockControls {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">         constructor( props ) {
</span><span class="cx" style="display: block; padding: 0 10px">                super( props );
</span><span class="cx" style="display: block; padding: 0 10px">                this.state = {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -56,6 +57,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        selectedPosts    : [],
</span><span class="cx" style="display: block; padding: 0 10px">                        sponsorTermOrder : [],
</span><span class="cx" style="display: block; padding: 0 10px">                };
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               this.fetchSelectOptions( props );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -100,11 +103,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * Initialize posts and terms arrays and sets loading state till promises
</span><span class="cx" style="display: block; padding: 0 10px">         * are not resolved. We will also set posts and terms in array that we want to display.
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        componentWillMount() {
-               this.isStillMounted = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ fetchSelectOptions( props ) {
+               const { sponsorPosts, sponsorLevels, siteSettings } = props;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                const { sponsorPosts, sponsorLevels, siteSettings } = this.props;
-
</del><span class="cx" style="display: block; padding: 0 10px">                 const parsedPosts = sponsorPosts.then(
</span><span class="cx" style="display: block; padding: 0 10px">                        ( fetchedPosts ) => {
</span><span class="cx" style="display: block; padding: 0 10px">                                const posts = fetchedPosts.map(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -119,10 +120,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                                };
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="cx" style="display: block; padding: 0 10px">                                );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                if ( this.isStillMounted ) {
-                                       this.setState( { fetchedPosts } );
-                                       this.setState( { posts } );
-                               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         this.setState( { fetchedPosts } );
+                               this.setState( { posts } );
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px">                ).catch( ( e ) => {
</span><span class="cx" style="display: block; padding: 0 10px">                        console.error( 'Error fetching data', e );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -139,10 +138,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        };
</span><span class="cx" style="display: block; padding: 0 10px">                                } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                if ( this.isStillMounted ) {
-                                       this.setState( { fetchedTerms } );
-                                       this.setState( { terms } );
-                               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         this.setState( { fetchedTerms } );
+                               this.setState( { terms } );
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px">                ).catch( ( e ) => {
</span><span class="cx" style="display: block; padding: 0 10px">                        console.error( 'Error fetching data', e );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -162,10 +159,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                } );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        componentWillUnmount() {
-               this.isStillMounted = false;
-       }
-
</del><span class="cx" style="display: block; padding: 0 10px">         /**
</span><span class="cx" style="display: block; padding: 0 10px">         * Sets `mode`, `term_ids` and `post_ids` attribute when `Apply` button is
</span><span class="cx" style="display: block; padding: 0 10px">         * clicked. Pass `onChange` prop to override.
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcsponsorseditjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/edit.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/edit.js     2019-04-05 10:44:58 UTC (rev 8599)
+++ sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/edit.js       2019-04-05 10:45:15 UTC (rev 8600)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25,10 +25,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">        constructor( props ) {
</span><span class="cx" style="display: block; padding: 0 10px">                super( props );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                this.state = {};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         this.fetchSponsors();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        componentWillMount() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ fetchSponsors() {
</ins><span class="cx" style="display: block; padding: 0 10px">                 const sponsorQuery = {
</span><span class="cx" style="display: block; padding: 0 10px">                        orderby  : 'title',
</span><span class="cx" style="display: block; padding: 0 10px">                        order    : 'asc',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -43,13 +43,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        _embed   : true,
</span><span class="cx" style="display: block; padding: 0 10px">                };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                this.setState(
-                       {
-                               sponsorPosts  : apiFetch( { path: addQueryArgs( '/wp/v2/sponsors', sponsorQuery ) } ),
-                               sponsorLevels : apiFetch( { path: addQueryArgs( '/wp/v2/sponsor_level', sponsorLevelQuery ) } ),
-                               siteSettings  : apiFetch( { path: addQueryArgs( '/wp/v2/settings', {} ) } ),
-                       }
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         this.state = {
+                       sponsorPosts  : apiFetch( { path: addQueryArgs( '/wp/v2/sponsors', sponsorQuery ) } ),
+                       sponsorLevels : apiFetch( { path: addQueryArgs( '/wp/v2/sponsor_level', sponsorLevelQuery ) } ),
+                       siteSettings  : apiFetch( { path: addQueryArgs( '/wp/v2/settings', {} ) } ),
+               }
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span></span></pre>
</div>
</div>

</body>
</html>