From 1498bcfac6460dfb70b50599c7394b89970cee29 Mon Sep 17 00:00:00 2001 From: Evan Morikawa Date: Fri, 6 May 2016 16:24:40 -0700 Subject: [PATCH] fix(lint): final linter fixes fix(lint): final set of linter fixes --- build/config/eslint.json | 4 +- .../lib/template-picker.jsx | 4 +- .../lib/template-status-bar.jsx | 4 - .../composer-translate/lib/main.jsx | 15 ++-- .../composer/lib/account-contact-field.jsx | 2 +- .../composer/lib/collapsed-participants.jsx | 6 +- .../composer/lib/compose-button.jsx | 5 +- .../composer/lib/composer-header-actions.jsx | 21 +++-- .../composer/lib/composer-header.jsx | 18 ++-- .../composer/lib/composer-view.jsx | 25 ++++-- .../composer/lib/image-file-upload.jsx | 4 +- .../composer/lib/send-action-button.jsx | 9 +- .../draft-list/lib/draft-list-toolbar.jsx | 3 +- .../lib/github-contact-card-section.jsx | 86 ++++++++----------- .../lib/autoload-images-header.jsx | 4 +- .../message-list/lib/email-frame.jsx | 3 +- .../message-list/lib/find-in-thread.jsx | 74 +++++++++------- .../preferences/lib/preferences-root.jsx | 10 ++- .../lib/tabs/keymaps/command-item.jsx | 7 +- ...ers.js => mousetrap-keybinding-helpers.js} | 0 .../lib/tabs/preferences-appearance.jsx | 54 +++++------- .../thread-snooze/lib/snooze-actions.es6 | 2 +- .../lib/delta-streaming-connection.es6 | 2 +- src/flux/nylas-long-connection.es6 | 1 - src/pro | 2 +- 25 files changed, 191 insertions(+), 174 deletions(-) rename internal_packages/preferences/lib/tabs/keymaps/{mousestrap-keybinding-helpers.js => mousetrap-keybinding-helpers.js} (100%) diff --git a/build/config/eslint.json b/build/config/eslint.json index fb26081f3..27b7b20ca 100644 --- a/build/config/eslint.json +++ b/build/config/eslint.json @@ -34,12 +34,12 @@ "quote-props": ["error", "consistent-as-needed", { "keywords": true }], "no-param-reassign": ["error", { "props": false }], "semi": "off", - "import/no-unresolved": ["error", {"ignore": ["nylas-exports", "nylas-component-kit", "electron", "nylas-store", "react-dom/server", "nylas-observables", "windows-shortcuts"]}], + "import/no-unresolved": ["error", {"ignore": ["nylas-exports", "nylas-component-kit", "electron", "nylas-store", "react-dom/server", "nylas-observables", "windows-shortcuts", "moment-round", "chrono-node", "event-kit"]}], "react/no-multi-comp": "off", "react/prop-types": ["error", {"ignore": ["children"]}], "react/sort-comp": "error" }, "settings": { - "import/resolver": {"node": {"extensions": [".es6", ".jsx", ".coffee", ".json", ".cjsx"]}} + "import/resolver": {"node": {"extensions": [".es6", ".jsx", ".coffee", ".json", ".cjsx", ".js"]}} } } diff --git a/internal_packages/composer-templates/lib/template-picker.jsx b/internal_packages/composer-templates/lib/template-picker.jsx index 4beb4904e..6894148ea 100644 --- a/internal_packages/composer-templates/lib/template-picker.jsx +++ b/internal_packages/composer-templates/lib/template-picker.jsx @@ -52,7 +52,7 @@ class TemplatePicker extends React.Component { _onChooseTemplate = (template) => { Actions.insertTemplateId({templateId: template.id, draftClientId: this.props.draftClientId}); Actions.closePopover() - }; + } _onManageTemplates = () => { Actions.showTemplates(); @@ -95,7 +95,7 @@ class TemplatePicker extends React.Component { items={this.state.templates} itemKey={(item) => item.id} itemContent={(item) => item.name} - onSelect={this._onChooseTemplate.bind(this)} + onSelect={this._onChooseTemplate} /> ); } diff --git a/internal_packages/composer-templates/lib/template-status-bar.jsx b/internal_packages/composer-templates/lib/template-status-bar.jsx index eb955270a..1ae4e30e1 100644 --- a/internal_packages/composer-templates/lib/template-status-bar.jsx +++ b/internal_packages/composer-templates/lib/template-status-bar.jsx @@ -7,10 +7,6 @@ class TemplateStatusBar extends React.Component { draft: React.PropTypes.object.isRequired, }; - constructor() { - super(); - } - shouldComponentUpdate(nextProps) { return (this._usingTemplate(nextProps) !== this._usingTemplate(this.props)); } diff --git a/internal_packages/composer-translate/lib/main.jsx b/internal_packages/composer-translate/lib/main.jsx index 773a2eaae..d3cf4ab9c 100644 --- a/internal_packages/composer-translate/lib/main.jsx +++ b/internal_packages/composer-translate/lib/main.jsx @@ -115,9 +115,9 @@ class TranslateButton extends React.Component { return ( item } - itemContent={ (item) => item } + items={Object.keys(YandexLanguages)} + itemKey={(item) => item} + itemContent={(item) => item} headerComponents={headerComponents} defaultSelectedIndex={-1} onSelect={this._onTranslate} @@ -144,14 +144,17 @@ class TranslateButton extends React.Component { tabIndex={-1} className="btn btn-toolbar pull-right" onClick={this._onClickTranslateButton} - title="Translate email body…"> + title="Translate email body…" + > + url="nylas://composer-translate/assets/icon-composer-translate@2x.png" + />   + mode={RetinaImg.Mode.ContentIsMask} + /> ); } diff --git a/internal_packages/composer/lib/account-contact-field.jsx b/internal_packages/composer/lib/account-contact-field.jsx index c30373e94..731161c68 100644 --- a/internal_packages/composer/lib/account-contact-field.jsx +++ b/internal_packages/composer/lib/account-contact-field.jsx @@ -21,7 +21,7 @@ export default class AccountContactField extends React.Component { _renderAccountSelector() { if (!this.props.value) { return ( - + ); } diff --git a/internal_packages/composer/lib/collapsed-participants.jsx b/internal_packages/composer/lib/collapsed-participants.jsx index a429fe540..d800ff808 100644 --- a/internal_packages/composer/lib/collapsed-participants.jsx +++ b/internal_packages/composer/lib/collapsed-participants.jsx @@ -118,7 +118,8 @@ export default class CollapsedParticipants extends React.Component { return ( + className="collapsed-contact regular-contact" + > + className="collapsed-composer-participants" + > {this._renderNumRemaining()} {toDisplay} diff --git a/internal_packages/composer/lib/compose-button.jsx b/internal_packages/composer/lib/compose-button.jsx index f141f3ae9..e923f6db9 100644 --- a/internal_packages/composer/lib/compose-button.jsx +++ b/internal_packages/composer/lib/compose-button.jsx @@ -14,8 +14,9 @@ export default class ComposeButton extends React.Component { ); } diff --git a/internal_packages/composer/lib/composer-header-actions.jsx b/internal_packages/composer/lib/composer-header-actions.jsx index 707c4f5c5..0f584383f 100644 --- a/internal_packages/composer/lib/composer-header-actions.jsx +++ b/internal_packages/composer/lib/composer-header-actions.jsx @@ -23,23 +23,29 @@ export default class ComposerHeaderActions extends React.Component { if (this.props.participantsFocused) { if (!this.props.enabledFields.includes(Fields.Cc)) { items.push( - this.props.onShowAndFocusField(Fields.Cc) }>Cc + this.props.onShowAndFocusField(Fields.Cc)} + >Cc ); } if (!this.props.enabledFields.includes(Fields.Bcc)) { items.push( - this.props.onShowAndFocusField(Fields.Bcc) }>Bcc + this.props.onShowAndFocusField(Fields.Bcc)} + >Bcc ); } } if (!this.props.enabledFields.includes(Fields.Subject)) { items.push( - this.props.onShowAndFocusField(Fields.Subject) }>Subject + this.props.onShowAndFocusField(Fields.Subject)} + >Subject ); } @@ -49,7 +55,8 @@ export default class ComposerHeaderActions extends React.Component { className="action show-popout" key="popout" title="Popout composer…" - onClick={this._onPopoutComposer}> + onClick={this._onPopoutComposer} + > { - const active = Fields.ParticipantFields.find((fieldName) => - this.refs[fieldName] ? ReactDOM.findDOMNode(this.refs[fieldName]).contains(lastFocusedEl) : false + const active = Fields.ParticipantFields.find((fieldName) => { + return this.refs[fieldName] ? ReactDOM.findDOMNode(this.refs[fieldName]).contains(lastFocusedEl) : false + } ); this.setState({ participantsFocused: false, @@ -180,7 +181,8 @@ export default class ComposerHeader extends React.Component { ref="participantsContainer" className="expanded-participants" onFocusIn={this._onFocusInParticipants} - onFocusOut={this._onFocusOutParticipants}> + onFocusOut={this._onFocusOutParticipants} + > {content} ); @@ -193,14 +195,16 @@ export default class ComposerHeader extends React.Component { return (
+ className="compose-subject-wrap" + > + onChange={this._onChangeSubject} + />
); } @@ -232,7 +236,7 @@ export default class ComposerHeader extends React.Component { key="cc" field="cc" change={this._onChangeParticipants} - onEmptied={ () => this.hideField(Fields.Cc) } + onEmptied={() => this.hideField(Fields.Cc)} className="composer-participant-field cc-field" participants={{to, cc, bcc}} draft={this.props.draft} @@ -248,7 +252,7 @@ export default class ComposerHeader extends React.Component { key="bcc" field="bcc" change={this._onChangeParticipants} - onEmptied={ () => this.hideField(Fields.Bcc) } + onEmptied={() => this.hideField(Fields.Bcc)} className="composer-participant-field bcc-field" participants={{to, cc, bcc}} draft={this.props.draft} diff --git a/internal_packages/composer/lib/composer-view.jsx b/internal_packages/composer/lib/composer-view.jsx index 30591d6fe..28c1059e0 100644 --- a/internal_packages/composer/lib/composer-view.jsx +++ b/internal_packages/composer/lib/composer-view.jsx @@ -1,6 +1,7 @@ import _ from 'underscore'; import React from 'react'; import ReactDOM from 'react-dom'; +import {remote} from 'electron' import { Utils, @@ -152,7 +153,8 @@ export default class ComposerView extends React.Component { className="compose-body" ref="composeBody" onMouseUp={this._onMouseUpComposerBody} - onMouseDown={this._onMouseDownComposerBody}> + onMouseDown={this._onMouseDownComposerBody} + > {this._renderBodyRegions()} {this._renderFooterRegions()} @@ -248,7 +250,8 @@ export default class ComposerView extends React.Component { draftClientId: this.props.draft.clientId, session: this.props.session, }} - direction="column"/> + direction="column" + /> ); } @@ -337,7 +340,8 @@ export default class ComposerView extends React.Component { className="btn btn-toolbar btn-trash" style={{order: 100}} title="Delete draft" - onClick={this._onDestroyDraft}> + onClick={this._onDestroyDraft} + > @@ -346,7 +350,8 @@ export default class ComposerView extends React.Component { className="btn btn-toolbar btn-attach" style={{order: 50}} title="Attach file" - onClick={this._onSelectAttachment}> + onClick={this._onSelectAttachment} + > @@ -480,7 +485,6 @@ export default class ComposerView extends React.Component { return false; } - const {remote} = require('electron'); const dialog = remote.require('dialog'); const {to, cc, bcc, body, files, uploads} = this.props.draft; @@ -635,18 +639,21 @@ export default class ComposerView extends React.Component { localHandlers={this._keymapHandlers()} className={"message-item-white-wrap composer-outer-wrap"} tabIndex="-1" - ref="composerWrap"> + ref="composerWrap" + > this.setState({isDropping}) } - onDrop={this._onDrop}> + onDragStateChange={({isDropping}) => this.setState({isDropping})} + onDrop={this._onDrop} + >
+ mode={RetinaImg.Mode.ContentIsMask} + /> Drop to attach
diff --git a/internal_packages/composer/lib/image-file-upload.jsx b/internal_packages/composer/lib/image-file-upload.jsx index 0aa08661e..e2ae765af 100644 --- a/internal_packages/composer/lib/image-file-upload.jsx +++ b/internal_packages/composer/lib/image-file-upload.jsx @@ -17,7 +17,7 @@ export default class ImageFileUpload extends FileUpload { return (
- +
@@ -25,7 +25,7 @@ export default class ImageFileUpload extends FileUpload {
{this.props.upload.filename}
- + drag start
); diff --git a/internal_packages/composer/lib/send-action-button.jsx b/internal_packages/composer/lib/send-action-button.jsx index c4ec4e312..dd1569e6a 100644 --- a/internal_packages/composer/lib/send-action-button.jsx +++ b/internal_packages/composer/lib/send-action-button.jsx @@ -8,6 +8,8 @@ const CONFIG_KEY = "core.sending.defaultSendType"; export default class SendActionButton extends React.Component { static displayName = "SendActionButton"; + static containerRequired = false + static propTypes = { draft: React.PropTypes.object, isValidDraft: React.PropTypes.func, @@ -32,8 +34,6 @@ export default class SendActionButton extends React.Component { this.unsub(); } - static containerRequired = false - primaryClick() { this._onPrimaryClick(); } @@ -139,7 +139,8 @@ export default class SendActionButton extends React.Component { tabIndex={-1} className={"btn btn-toolbar btn-normal btn-emphasis btn-text btn-send"} style={{order: -100}} - onClick={this._onPrimaryClick}> + onClick={this._onPrimaryClick} + > {this._contentForAction(this.state.actionConfigs[0])} ); @@ -151,7 +152,7 @@ export default class SendActionButton extends React.Component { const menu = ( actionConfig.configKey } + itemKey={(actionConfig) => actionConfig.configKey} itemContent={this._contentForAction} onSelect={this._onSendWithAction} /> diff --git a/internal_packages/draft-list/lib/draft-list-toolbar.jsx b/internal_packages/draft-list/lib/draft-list-toolbar.jsx index bf359b687..650b7b261 100644 --- a/internal_packages/draft-list/lib/draft-list-toolbar.jsx +++ b/internal_packages/draft-list/lib/draft-list-toolbar.jsx @@ -33,7 +33,8 @@ class DraftListToolbar extends Component { const toolbarElement = ( + exposedProps={{selection, items}} + /> ) return ( diff --git a/internal_packages/github-contact-card/lib/github-contact-card-section.jsx b/internal_packages/github-contact-card/lib/github-contact-card-section.jsx index 13bf885e1..841f778ea 100644 --- a/internal_packages/github-contact-card/lib/github-contact-card-section.jsx +++ b/internal_packages/github-contact-card/lib/github-contact-card-section.jsx @@ -3,61 +3,55 @@ import GithubUserStore from "./github-user-store"; import {React} from 'nylas-exports'; // Small React component that renders a single Github repository -class GithubRepo extends React.Component { - static displayName = 'GithubRepo'; +const GithubRepo = function GithubRepo(props) { + const {repo} = props; - static propTypes = { - // This component takes a `repo` object as a prop. Listing props is optional - // but enables nice React warnings when our expectations aren't met - repo: React.PropTypes.object.isRequired, - }; - - render() { - const {repo} = this.props; - - return ( -
-
{repo.stargazers_count}
- {repo.full_name} -
- ); - } + return ( +
+
{repo.stargazers_count}
+ {repo.full_name} +
+ ); } +GithubRepo.propTypes = { + // This component takes a `repo` object as a prop. Listing props is optional + // but enables nice React warnings when our expectations aren't met + repo: React.PropTypes.object.isRequired, +}; // Small React component that renders the user's Github profile. -class GithubProfile extends React.Component { - static displayName = 'GithubProfile'; +const GithubProfile = function GithubProfile(props) { + const {profile} = props; - static propTypes = { - // This component takes a `profile` object as a prop. Listing props is optional - // but enables nice React warnings when our expectations aren't met. - profile: React.PropTypes.object.isRequired, - } + // Transform the profile's array of repos into an array of React elements + const repoElements = _.map(profile.repos, (repo) => { + return + }); - render() { - const {profile} = this.props; - - // Transform the profile's array of repos into an array of React elements - const repoElements = _.map(profile.repos, (repo) => { - return - }); - - // Remember - this looks like HTML, but it's actually CJSX, which is converted into - // Coffeescript at transpile-time. We're actually creating a nested tree of Javascript - // objects here that *represent* the DOM we want. - return ( -
- - {profile.login} -
{repoElements}
-
- ); - } + // Remember - this looks like HTML, but it's actually CJSX, which is converted into + // Coffeescript at transpile-time. We're actually creating a nested tree of Javascript + // objects here that *represent* the DOM we want. + return ( +
+ github logo + {profile.login} +
{repoElements}
+
+ ); +} +GithubProfile.propTypes = { + // This component takes a `profile` object as a prop. Listing props is optional + // but enables nice React warnings when our expectations aren't met. + profile: React.PropTypes.object.isRequired, } export default class GithubContactCardSection extends React.Component { static displayName = 'GithubContactCardSection'; + static containerStyles = { + order: 10, + } + constructor(props) { super(props); this.state = this._getStateFromStores(); @@ -102,10 +96,6 @@ export default class GithubContactCardSection extends React.Component { ); } - static containerStyles = { - order: 10, - } - render() { return (
diff --git a/internal_packages/message-autoload-images/lib/autoload-images-header.jsx b/internal_packages/message-autoload-images/lib/autoload-images-header.jsx index 3b1430b96..41787c1e1 100644 --- a/internal_packages/message-autoload-images/lib/autoload-images-header.jsx +++ b/internal_packages/message-autoload-images/lib/autoload-images-header.jsx @@ -42,11 +42,11 @@ export default class AutoloadImagesHeader extends React.Component { return ( diff --git a/internal_packages/message-list/lib/email-frame.jsx b/internal_packages/message-list/lib/email-frame.jsx index 0b0b29171..1c5bc5ef3 100644 --- a/internal_packages/message-list/lib/email-frame.jsx +++ b/internal_packages/message-list/lib/email-frame.jsx @@ -142,7 +142,8 @@ export default class EmailFrame extends React.Component {
+ style={{height: this._lastComputedHeight}} + > -
-
+
+
- + -
{this._selectionText()}
+
{this._selectionText()}
-
- +
+ + + +
-
+
- - -
) diff --git a/internal_packages/preferences/lib/preferences-root.jsx b/internal_packages/preferences/lib/preferences-root.jsx index 7d472a689..0ab633937 100644 --- a/internal_packages/preferences/lib/preferences-root.jsx +++ b/internal_packages/preferences/lib/preferences-root.jsx @@ -14,6 +14,8 @@ class PreferencesRoot extends React.Component { static displayName = 'PreferencesRoot'; + static containerRequired = false; + constructor() { super(); this.state = this.getStateFromStores(); @@ -51,8 +53,6 @@ class PreferencesRoot extends React.Component { } } - static containerRequired = false; - _localHandlers() { const stopPropagation = (e) => { e.stopPropagation(); @@ -100,8 +100,10 @@ class PreferencesRoot extends React.Component { return ( - + {bodyElement} diff --git a/internal_packages/preferences/lib/tabs/keymaps/command-item.jsx b/internal_packages/preferences/lib/tabs/keymaps/command-item.jsx index 8289abf44..d35055bbf 100644 --- a/internal_packages/preferences/lib/tabs/keymaps/command-item.jsx +++ b/internal_packages/preferences/lib/tabs/keymaps/command-item.jsx @@ -4,7 +4,7 @@ import _ from 'underscore'; import { Flexbox } from 'nylas-component-kit'; import fs from 'fs'; -import {keyAndModifiersForEvent} from './mousestrap-keybinding-helpers'; +import {keyAndModifiersForEvent} from './mousetrap-keybinding-helpers'; export default class CommandKeybinding extends React.Component { static propTypes = { @@ -67,7 +67,7 @@ export default class CommandKeybinding extends React.Component { splitKeystrokes.forEach((keystroke, kidx) => { elements.push({this._formatKeystrokes(keystroke)}); if (kidx < splitKeystrokes.length - 1) { - elements.push( then ); + elements.push( then ); } }); return ( @@ -143,7 +143,8 @@ export default class CommandKeybinding extends React.Component { onKeyDown={this._onKey} onKeyPress={this._onKey} onFocus={this._onEdit} - onBlur={this._onFinishedEditing}> + onBlur={this._onFinishedEditing} + >
{this.props.label}
diff --git a/internal_packages/preferences/lib/tabs/keymaps/mousestrap-keybinding-helpers.js b/internal_packages/preferences/lib/tabs/keymaps/mousetrap-keybinding-helpers.js similarity index 100% rename from internal_packages/preferences/lib/tabs/keymaps/mousestrap-keybinding-helpers.js rename to internal_packages/preferences/lib/tabs/keymaps/mousetrap-keybinding-helpers.js diff --git a/internal_packages/preferences/lib/tabs/preferences-appearance.jsx b/internal_packages/preferences/lib/tabs/preferences-appearance.jsx index cc13492f4..b352bf6e0 100644 --- a/internal_packages/preferences/lib/tabs/preferences-appearance.jsx +++ b/internal_packages/preferences/lib/tabs/preferences-appearance.jsx @@ -1,7 +1,6 @@ import React from 'react'; import {RetinaImg, Flexbox} from 'nylas-component-kit'; - class AppearanceModeSwitch extends React.Component { static displayName = 'AppearanceModeSwitch'; @@ -33,7 +32,8 @@ class AppearanceModeSwitch extends React.Component { mode={mode} key={mode} active={this.state.value === mode} - onClick={() => this.setState({value: mode})} /> + onClick={() => this.setState({value: mode})} + /> ); } @@ -47,7 +47,8 @@ class AppearanceModeSwitch extends React.Component { + className="item" + > {this._renderModeOptions()}
Apply Layout
@@ -57,36 +58,27 @@ class AppearanceModeSwitch extends React.Component { } +const AppearanceModeOption = function AppearanceModeOption(props) { + let classname = "appearance-mode"; + if (props.active) classname += " active"; -class AppearanceModeOption extends React.Component { - static propTypes = { - mode: React.PropTypes.string.isRequired, - active: React.PropTypes.bool, - onClick: React.PropTypes.func, - } + const label = { + list: 'Single Panel', + split: 'Two Panel', + }[props.mode]; - constructor() { - super(); - } - - render() { - let classname = "appearance-mode"; - if (this.props.active) classname += " active"; - - const label = { - 'list': 'Single Panel', - 'split': 'Two Panel', - }[this.props.mode]; - - return ( -
- -
{label}
-
- ); - } + return ( +
+ +
{label}
+
+ ); +} +AppearanceModeOption.propTypes = { + mode: React.PropTypes.string.isRequired, + active: React.PropTypes.bool, + onClick: React.PropTypes.func, } - class PreferencesAppearance extends React.Component { @@ -101,7 +93,6 @@ class PreferencesAppearance extends React.Component { NylasEnv.commands.dispatch("window:launch-theme-picker"); } - render() { return (
@@ -111,7 +102,6 @@ class PreferencesAppearance extends React.Component {
); } - } export default PreferencesAppearance; diff --git a/internal_packages/thread-snooze/lib/snooze-actions.es6 b/internal_packages/thread-snooze/lib/snooze-actions.es6 index a52f68274..7ebdc5011 100644 --- a/internal_packages/thread-snooze/lib/snooze-actions.es6 +++ b/internal_packages/thread-snooze/lib/snooze-actions.es6 @@ -4,7 +4,7 @@ const SnoozeActions = Reflux.createActions([ 'snoozeThreads', ]) -for (const key in SnoozeActions) { +for (const key of Object.keys(SnoozeActions)) { SnoozeActions[key].sync = true } diff --git a/internal_packages/worker-sync/lib/delta-streaming-connection.es6 b/internal_packages/worker-sync/lib/delta-streaming-connection.es6 index 95e78d457..de299caa9 100644 --- a/internal_packages/worker-sync/lib/delta-streaming-connection.es6 +++ b/internal_packages/worker-sync/lib/delta-streaming-connection.es6 @@ -28,7 +28,7 @@ class DeltaStreamingConnection { if (cursor) { return callback(cursor) } - this.api.makeRequest({ + return this.api.makeRequest({ path: "/delta/latest_cursor", accountId: this.accountId, method: 'POST', diff --git a/src/flux/nylas-long-connection.es6 b/src/flux/nylas-long-connection.es6 index 4927a7180..1ecce4e70 100644 --- a/src/flux/nylas-long-connection.es6 +++ b/src/flux/nylas-long-connection.es6 @@ -3,7 +3,6 @@ import _ from 'underscore' import url from 'url' import {Emitter} from 'event-kit' - const CONNECTION_TIMEOUT = 60 * 60 * 1000 const RESULTS_THROTTLE = 400 diff --git a/src/pro b/src/pro index d2ba2ad62..dbdce0e2d 160000 --- a/src/pro +++ b/src/pro @@ -1 +1 @@ -Subproject commit d2ba2ad629341375009b6270c3906c5933e1a255 +Subproject commit dbdce0e2dcc09a1c7460e8945feaeda1b66492ef