diff --git a/devtools/.eslintrc b/devtools/.eslintrc index 0f9c90b4c050..498bc5622be2 100644 --- a/devtools/.eslintrc +++ b/devtools/.eslintrc @@ -42,7 +42,7 @@ "react/prefer-es6-class": [1, "never"], // Disabled temporarily until errors are fixed. "react/prop-types": 0, - "react/sort-comp": [1, { + "react/sort-comp": [2, { order: [ "lifecycle", "everything-else", diff --git a/devtools/client/dom/content/components/dom-tree.js b/devtools/client/dom/content/components/dom-tree.js index 5b9eb321b19d..3a0777573a44 100644 --- a/devtools/client/dom/content/components/dom-tree.js +++ b/devtools/client/dom/content/components/dom-tree.js @@ -26,6 +26,8 @@ const PropTypes = React.PropTypes; * Renders DOM panel tree. */ var DomTree = React.createClass({ + displayName: "DomTree", + propTypes: { object: PropTypes.any, filter: PropTypes.string, @@ -33,8 +35,6 @@ var DomTree = React.createClass({ grips: PropTypes.object, }, - displayName: "DomTree", - /** * Filter DOM properties. Return true if the object * should be visible in the tree. diff --git a/devtools/client/dom/content/components/main-frame.js b/devtools/client/dom/content/components/main-frame.js index 7acf4ef95767..0855e87f1b9b 100644 --- a/devtools/client/dom/content/components/main-frame.js +++ b/devtools/client/dom/content/components/main-frame.js @@ -22,14 +22,14 @@ const PropTypes = React.PropTypes; * from two main parts: toolbar and tree. */ var MainFrame = React.createClass({ + displayName: "MainFrame", + propTypes: { object: PropTypes.any, filter: PropTypes.string, dispatch: PropTypes.func.isRequired, }, - displayName: "MainFrame", - /** * Render DOM panel content */ diff --git a/devtools/client/dom/content/components/main-toolbar.js b/devtools/client/dom/content/components/main-toolbar.js index 38f1f903d5c1..9caf77cd8b84 100644 --- a/devtools/client/dom/content/components/main-toolbar.js +++ b/devtools/client/dom/content/components/main-toolbar.js @@ -28,13 +28,13 @@ const PropTypes = React.PropTypes; * within the 'Headers' panel. */ var MainToolbar = React.createClass({ + displayName: "MainToolbar", + propTypes: { object: PropTypes.any.isRequired, dispatch: PropTypes.func.isRequired, }, - displayName: "MainToolbar", - onRefresh: function () { this.props.dispatch(fetchProperties(this.props.object)); }, diff --git a/devtools/client/dom/content/components/search-box.js b/devtools/client/dom/content/components/search-box.js index 51f01eca80eb..129f9a640921 100644 --- a/devtools/client/dom/content/components/search-box.js +++ b/devtools/client/dom/content/components/search-box.js @@ -21,12 +21,12 @@ const PropTypes = React.PropTypes; * top right corner of the application. */ var SearchBox = React.createClass({ + displayName: "SearchBox", + propTypes: { onSearch: PropTypes.func, }, - displayName: "SearchBox", - componentWillUnmount: function () { // Clean up an existing timeout. if (this.searchTimeout) { diff --git a/devtools/client/jsonview/components/headers-panel.js b/devtools/client/jsonview/components/headers-panel.js index 508bae4761e2..9229aaa01e0e 100644 --- a/devtools/client/jsonview/components/headers-panel.js +++ b/devtools/client/jsonview/components/headers-panel.js @@ -19,13 +19,13 @@ define(function (require, exports, module) { * s responsible for rendering its content. */ let HeadersPanel = createClass({ + displayName: "HeadersPanel", + propTypes: { actions: PropTypes.object, data: PropTypes.object, }, - displayName: "HeadersPanel", - getInitialState: function () { return { data: {} @@ -51,12 +51,12 @@ define(function (require, exports, module) { * within the 'Headers' panel. */ let HeadersToolbar = createFactory(createClass({ + displayName: "HeadersToolbar", + propTypes: { actions: PropTypes.object, }, - displayName: "HeadersToolbar", - // Commands onCopy: function (event) { diff --git a/devtools/client/jsonview/components/headers.js b/devtools/client/jsonview/components/headers.js index dfb8e7be228e..a11558f224b6 100644 --- a/devtools/client/jsonview/components/headers.js +++ b/devtools/client/jsonview/components/headers.js @@ -17,12 +17,12 @@ define(function (require, exports, module) { * received or response headers. */ let Headers = createClass({ + displayName: "Headers", + propTypes: { data: PropTypes.object, }, - displayName: "Headers", - getInitialState: function () { return {}; }, @@ -58,6 +58,8 @@ define(function (require, exports, module) { * name + value pairs. */ let HeaderList = createFactory(createClass({ + displayName: "HeaderList", + propTypes: { headers: PropTypes.arrayOf(PropTypes.shape({ name: PropTypes.string, @@ -65,8 +67,6 @@ define(function (require, exports, module) { })) }, - displayName: "HeaderList", - getInitialState: function () { return { headers: [] diff --git a/devtools/client/jsonview/components/json-panel.js b/devtools/client/jsonview/components/json-panel.js index 51b79f0d4347..b2fa216f4b42 100644 --- a/devtools/client/jsonview/components/json-panel.js +++ b/devtools/client/jsonview/components/json-panel.js @@ -24,6 +24,8 @@ define(function (require, exports, module) { * inspection of JSON structure. */ let JsonPanel = createClass({ + displayName: "JsonPanel", + propTypes: { data: PropTypes.oneOfType([ PropTypes.string, @@ -35,8 +37,6 @@ define(function (require, exports, module) { actions: PropTypes.object, }, - displayName: "JsonPanel", - getInitialState: function () { return {}; }, @@ -154,12 +154,12 @@ define(function (require, exports, module) { * This template represents a toolbar within the 'JSON' panel. */ let JsonToolbar = createFactory(createClass({ + displayName: "JsonToolbar", + propTypes: { actions: PropTypes.object, }, - displayName: "JsonToolbar", - // Commands onSave: function (event) { diff --git a/devtools/client/jsonview/components/main-tabbed-area.js b/devtools/client/jsonview/components/main-tabbed-area.js index 9e55b27f72a6..ce5197a2b9aa 100644 --- a/devtools/client/jsonview/components/main-tabbed-area.js +++ b/devtools/client/jsonview/components/main-tabbed-area.js @@ -19,6 +19,8 @@ define(function (require, exports, module) { * responsible for rendering the basic tab layout. */ let MainTabbedArea = createClass({ + displayName: "MainTabbedArea", + propTypes: { jsonText: PropTypes.string, tabActive: PropTypes.number, @@ -32,8 +34,6 @@ define(function (require, exports, module) { ]) }, - displayName: "MainTabbedArea", - getInitialState: function () { return { json: {}, diff --git a/devtools/client/jsonview/components/reps/tabs.js b/devtools/client/jsonview/components/reps/tabs.js index ae5507727b92..3a065de20215 100644 --- a/devtools/client/jsonview/components/reps/tabs.js +++ b/devtools/client/jsonview/components/reps/tabs.js @@ -31,6 +31,8 @@ define(function (require, exports, module) { *
*/ let Tabs = React.createClass({ + displayName: "Tabs", + propTypes: { className: React.PropTypes.oneOfType([ React.PropTypes.array, @@ -47,8 +49,6 @@ define(function (require, exports, module) { ]).isRequired }, - displayName: "Tabs", - getDefaultProps: function () { return { tabActive: 1 @@ -168,6 +168,8 @@ define(function (require, exports, module) { * Renders simple tab 'panel'. */ let Panel = React.createClass({ + displayName: "Panel", + propTypes: { title: React.PropTypes.string.isRequired, children: React.PropTypes.oneOfType([ @@ -176,8 +178,6 @@ define(function (require, exports, module) { ]).isRequired }, - displayName: "Panel", - render: function () { return DOM.div({}, this.props.children diff --git a/devtools/client/jsonview/components/reps/toolbar.js b/devtools/client/jsonview/components/reps/toolbar.js index 397b16b10e24..52a35ffbe871 100644 --- a/devtools/client/jsonview/components/reps/toolbar.js +++ b/devtools/client/jsonview/components/reps/toolbar.js @@ -14,6 +14,8 @@ define(function (require, exports, module) { * Renders a simple toolbar. */ let Toolbar = React.createClass({ + displayName: "Toolbar", + propTypes: { children: React.PropTypes.oneOfType([ React.PropTypes.array, @@ -21,8 +23,6 @@ define(function (require, exports, module) { ]) }, - displayName: "Toolbar", - render: function () { return ( DOM.div({className: "toolbar"}, @@ -36,14 +36,14 @@ define(function (require, exports, module) { * Renders a simple toolbar button. */ let ToolbarButton = React.createClass({ + displayName: "ToolbarButton", + propTypes: { active: React.PropTypes.bool, disabled: React.PropTypes.bool, children: React.PropTypes.string, }, - displayName: "ToolbarButton", - render: function () { let props = Object.assign({className: "btn"}, this.props); return ( diff --git a/devtools/client/jsonview/components/search-box.js b/devtools/client/jsonview/components/search-box.js index 50720693cc19..fc9bcbcb8ef8 100644 --- a/devtools/client/jsonview/components/search-box.js +++ b/devtools/client/jsonview/components/search-box.js @@ -19,12 +19,12 @@ define(function (require, exports, module) { * top right corner of the application. */ let SearchBox = createClass({ + displayName: "SearchBox", + propTypes: { actions: PropTypes.object, }, - displayName: "SearchBox", - onSearch: function (event) { let searchBox = event.target; let win = searchBox.ownerDocument.defaultView; diff --git a/devtools/client/jsonview/components/text-panel.js b/devtools/client/jsonview/components/text-panel.js index 77348eab29ed..26b9a3f915f0 100644 --- a/devtools/client/jsonview/components/text-panel.js +++ b/devtools/client/jsonview/components/text-panel.js @@ -17,13 +17,13 @@ define(function (require, exports, module) { * JSON as a text received from the server. */ let TextPanel = createClass({ + displayName: "TextPanel", + propTypes: { actions: PropTypes.object, data: PropTypes.string }, - displayName: "TextPanel", - getInitialState: function () { return {}; }, @@ -47,12 +47,12 @@ define(function (require, exports, module) { * 'Raw Data' panel. */ let TextToolbar = createFactory(createClass({ + displayName: "TextToolbar", + propTypes: { actions: PropTypes.object, }, - displayName: "TextToolbar", - // Commands onPrettify: function (event) { diff --git a/devtools/client/responsive.html/app.js b/devtools/client/responsive.html/app.js index f72ce7d273bb..00726709afd6 100644 --- a/devtools/client/responsive.html/app.js +++ b/devtools/client/responsive.html/app.js @@ -28,6 +28,8 @@ const { updateDeviceList } = require("./devices"); const Types = require("./types"); let App = createClass({ + displayName: "App", + propTypes: { devices: PropTypes.shape(Types.devices).isRequired, location: Types.location.isRequired, @@ -36,8 +38,6 @@ let App = createClass({ viewports: PropTypes.arrayOf(PropTypes.shape(Types.viewport)).isRequired, }, - displayName: "App", - onBrowserMounted() { window.postMessage({ type: "browser-mounted" }, "*"); }, diff --git a/devtools/client/responsive.html/components/browser.js b/devtools/client/responsive.html/components/browser.js index d26b3f847cc4..e3d5c9adb723 100644 --- a/devtools/client/responsive.html/components/browser.js +++ b/devtools/client/responsive.html/components/browser.js @@ -22,14 +22,14 @@ module.exports = createClass({ * Any changes in props will cause the