diff --git a/build/config/eslint.json b/build/config/eslint.json index d8647c271..aacf276d0 100644 --- a/build/config/eslint.json +++ b/build/config/eslint.json @@ -31,12 +31,12 @@ "quotes": "off", "quote-props": ["error", "consistent-as-needed", { "keywords": true }], "semi": "off", - "import/no-unresolved": ["error", {"ignore": ["nylas-exports", "nylas-component-kit"]}], + "import/no-unresolved": ["error", {"ignore": ["nylas-exports", "nylas-component-kit", "electron", "nylas-store", "react-dom/server"]}], "react/no-multi-comp": "off", "react/prop-types": ["error", {"ignore": ["children"]}], "react/sort-comp": "error" }, "settings": { - "import/resolver": {"node": {"extensions": [".es6", ".jsx", ".coffee", ".json"]}} + "import/resolver": {"node": {"extensions": [".es6", ".jsx", ".coffee", ".json", ".cjsx"]}} } } diff --git a/internal_packages/composer-emoji/lib/categorized-emoji.es6 b/internal_packages/composer-emoji/lib/categorized-emoji.es6 index 3d17a66d6..54159aa80 100644 --- a/internal_packages/composer-emoji/lib/categorized-emoji.es6 +++ b/internal_packages/composer-emoji/lib/categorized-emoji.es6 @@ -203,7 +203,7 @@ const categorizedEmojiList = { 'eyeglasses', 'dark_sunglasses', 'ring', - 'closed_umbrella' + 'closed_umbrella', ], 'Nature': [ 'dog', @@ -351,7 +351,7 @@ const categorizedEmojiList = { 'umbrella', 'droplet', 'sweat_drops', - 'ocean' + 'ocean', ], 'Food and Drink': [ 'green_apple', @@ -420,7 +420,7 @@ const categorizedEmojiList = { 'coffee', 'baby_bottle', 'fork_and_knife', - 'knife_fork_plate' + 'knife_fork_plate', ], 'Activity': [ 'soccer', @@ -479,7 +479,7 @@ const categorizedEmojiList = { 'dart', 'game_die', 'slot_machine', - 'bowling' + 'bowling', ], 'Travel and Places': [ 'car', @@ -596,7 +596,7 @@ const categorizedEmojiList = { 'mosque', 'synagogue', 'kaaba', - 'shinto_shrine' + 'shinto_shrine', ], 'Objects': [ 'watch', @@ -775,7 +775,7 @@ const categorizedEmojiList = { 'lower_left_crayon', 'lower_left_paintbrush', 'mag', - 'mag_right' + 'mag_right', ], 'Symbols': [ 'heart', @@ -1046,7 +1046,7 @@ const categorizedEmojiList = { 'clock930', 'clock1030', 'clock1130', - 'clock1230' + 'clock1230', ], 'Flags': [ 'flag-ac', @@ -1305,7 +1305,7 @@ const categorizedEmojiList = { 'flag-yt', 'flag-za', 'flag-zm', - 'flag-zw' - ] + 'flag-zw', + ], } export default categorizedEmojiList diff --git a/internal_packages/thread-snooze/lib/snooze-store.es6 b/internal_packages/thread-snooze/lib/snooze-store.es6 index 3ae305429..f9e9572dd 100644 --- a/internal_packages/thread-snooze/lib/snooze-store.es6 +++ b/internal_packages/thread-snooze/lib/snooze-store.es6 @@ -57,7 +57,7 @@ class SnoozeStore { }; onSnoozeThreads = (threads, snoozeDate, label) => { - this.recordSnoozeEvent(threads, label) + this.recordSnoozeEvent(threads, snoozeDate, label) const accounts = AccountStore.accountsForItems(threads) const promises = accounts.map((acc) => { diff --git a/src/browser/application.es6 b/src/browser/application.es6 index 172fdfde7..cda7854f2 100644 --- a/src/browser/application.es6 +++ b/src/browser/application.es6 @@ -1,3 +1,5 @@ +/* eslint global-require: "off" */ + import SystemTrayManager from './system-tray-manager'; import WindowManager from './window-manager'; import FileListCache from './file-list-cache'; @@ -165,7 +167,8 @@ export default class Application extends EventEmitter { } if (!fs.existsSync(filePath)) { - return callback(null); + callback(null); + return } if (retries > 0) { @@ -530,8 +533,8 @@ export default class Application extends EventEmitter { this._sourceWindows[params.taskId] = sourceWindow const targetWindowKey = { - "work": WindowManager.WORK_WINDOW, - "main": WindowManager.MAIN_WINDOW, + work: WindowManager.WORK_WINDOW, + main: WindowManager.MAIN_WINDOW, }[params.window]; if (!targetWindowKey) { throw new Error("We don't support running in that window"); @@ -576,17 +579,17 @@ export default class Application extends EventEmitter { const mainWindow = this.windowManager.get(WindowManager.MAIN_WINDOW) if (focusedBrowserWindow) { switch (command) { - case 'window:reload': - focusedBrowserWindow.reload(); - break; - case 'window:toggle-dev-tools': - focusedBrowserWindow.toggleDevTools(); - break; - case 'window:close': - focusedBrowserWindow.close(); - break; - default: - break; + case 'window:reload': + focusedBrowserWindow.reload(); + break; + case 'window:toggle-dev-tools': + focusedBrowserWindow.toggleDevTools(); + break; + case 'window:close': + focusedBrowserWindow.close(); + break; + default: + break; } } else if (mainWindow) { mainWindow.sendCommand(command, ...args); @@ -662,7 +665,8 @@ export default class Application extends EventEmitter { // :specPath - The directory to load specs from. // :safeMode - A Boolean that, if true, won't run specs from ~/.nylas/packages // and ~/.nylas/dev/packages, defaults to false. - runSpecs(specWindowOptions) { + runSpecs(specWindowOptionsArg) { + const specWindowOptions = specWindowOptionsArg; let {resourcePath} = specWindowOptions; if ((resourcePath !== this.resourcePath) && (!fs.existsSync(resourcePath))) { resourcePath = this.resourcePath; diff --git a/src/components/fixed-popover.jsx b/src/components/fixed-popover.jsx index 74bed133b..53e6d70dd 100644 --- a/src/components/fixed-popover.jsx +++ b/src/components/fixed-popover.jsx @@ -29,6 +29,8 @@ const OFFSET_PADDING = 11.5; **/ class FixedPopover extends Component { + static Directions = Directions; + static propTypes = { children: PropTypes.element, direction: PropTypes.string, @@ -142,8 +144,6 @@ class FixedPopover extends Component { } }; - static Directions = Directions; - focusElementWithTabIndex = () => { if (!this.mounted) { return; @@ -230,80 +230,80 @@ class FixedPopover extends Component { let pointerStyle = {}; switch (direction) { - case Up: - containerStyle = { - // Place container on the top left corner of the rect - top: originRect.top, - left: originRect.left, - width: originRect.width, - } - popoverStyle = { - // Center, place on top of container, and adjust 10px for the pointer - transform: `translate(${offset.x || 0}px) translate(-50%, calc(-100% - 10px))`, - left: originRect.width / 2, - } - pointerStyle = { - // Center, and place on top of our container - transform: 'translate(-50%, -100%)', - left: originRect.width, // Don't divide by 2 because of zoom - } - break; - case Down: - containerStyle = { - // Place container on the bottom left corner of the rect - top: originRect.top + originRect.height, - left: originRect.left, - width: originRect.width, - } - popoverStyle = { - // Center and adjust 10px for the pointer (already positioned at the bottom of container) - transform: `translate(${offset.x || 0}px) translate(-50%, 10px)`, - left: originRect.width / 2, - } - pointerStyle = { - // Center, already positioned at the bottom of container - transform: 'translate(-50%, 0) rotateX(180deg)', - left: originRect.width, // Don't divide by 2 because of zoom - } - break; - case Left: - containerStyle = { - // Place container on the top left corner of the rect - top: originRect.top, - left: originRect.left, - height: originRect.height, - } - popoverStyle = { - // Center, place on left of container, and adjust 10px for the pointer - transform: `translate(0, ${offset.y || 0}px) translate(calc(-100% - 10px), -50%)`, - top: originRect.height / 2, - } - pointerStyle = { - // Center, and place on left of our container (adjust for rotation) - transform: 'translate(calc(-100% + 13px), -50%) rotate(270deg)', - top: originRect.height, // Don't divide by 2 because of zoom - } - break; - case Right: - containerStyle = { - // Place container on the top right corner of the rect - top: originRect.top, - left: originRect.left + originRect.width, - height: originRect.height, - } - popoverStyle = { - // Center and adjust 10px for the pointer - transform: `translate(0, ${offset.y || 0}px) translate(10px, -50%)`, - top: originRect.height / 2, - } - pointerStyle = { - // Center, already positioned at the right of container (adjust for rotation) - transform: 'translate(-12px, -50%) rotate(90deg)', - top: originRect.height, // Don't divide by 2 because of zoom - } - break; - default: - break; + case Up: + containerStyle = { + // Place container on the top left corner of the rect + top: originRect.top, + left: originRect.left, + width: originRect.width, + } + popoverStyle = { + // Center, place on top of container, and adjust 10px for the pointer + transform: `translate(${offset.x || 0}px) translate(-50%, calc(-100% - 10px))`, + left: originRect.width / 2, + } + pointerStyle = { + // Center, and place on top of our container + transform: 'translate(-50%, -100%)', + left: originRect.width, // Don't divide by 2 because of zoom + } + break; + case Down: + containerStyle = { + // Place container on the bottom left corner of the rect + top: originRect.top + originRect.height, + left: originRect.left, + width: originRect.width, + } + popoverStyle = { + // Center and adjust 10px for the pointer (already positioned at the bottom of container) + transform: `translate(${offset.x || 0}px) translate(-50%, 10px)`, + left: originRect.width / 2, + } + pointerStyle = { + // Center, already positioned at the bottom of container + transform: 'translate(-50%, 0) rotateX(180deg)', + left: originRect.width, // Don't divide by 2 because of zoom + } + break; + case Left: + containerStyle = { + // Place container on the top left corner of the rect + top: originRect.top, + left: originRect.left, + height: originRect.height, + } + popoverStyle = { + // Center, place on left of container, and adjust 10px for the pointer + transform: `translate(0, ${offset.y || 0}px) translate(calc(-100% - 10px), -50%)`, + top: originRect.height / 2, + } + pointerStyle = { + // Center, and place on left of our container (adjust for rotation) + transform: 'translate(calc(-100% + 13px), -50%) rotate(270deg)', + top: originRect.height, // Don't divide by 2 because of zoom + } + break; + case Right: + containerStyle = { + // Place container on the top right corner of the rect + top: originRect.top, + left: originRect.left + originRect.width, + height: originRect.height, + } + popoverStyle = { + // Center and adjust 10px for the pointer + transform: `translate(0, ${offset.y || 0}px) translate(10px, -50%)`, + top: originRect.height / 2, + } + pointerStyle = { + // Center, already positioned at the right of container (adjust for rotation) + transform: 'translate(-12px, -50%) rotate(90deg)', + top: originRect.height, // Don't divide by 2 because of zoom + } + break; + default: + break; } // Set the zoom directly on the style element. Otherwise it won't work with @@ -324,13 +324,14 @@ class FixedPopover extends Component { return (
-
+
+ onBlur={this.onBlur} + >
{children}
diff --git a/src/components/swipe-container.jsx b/src/components/swipe-container.jsx index 3b299b9f4..cd271c459 100644 --- a/src/components/swipe-container.jsx +++ b/src/components/swipe-container.jsx @@ -319,7 +319,7 @@ export default class SwipeContainer extends Component { const {onSwipeLeftClass} = this.props const swipeLeftClass = _.isFunction(onSwipeLeftClass) ? onSwipeLeftClass() : onSwipeLeftClass || '' - backingClass += ' ' + swipeLeftClass; + backingClass += ` ${swipeLeftClass}`; backingStyles.right = 0; backingStyles.width = -currentX + 1; if (targetX < 0) { @@ -329,7 +329,7 @@ export default class SwipeContainer extends Component { const {onSwipeRightClass} = this.props const swipeRightClass = _.isFunction(onSwipeRightClass) ? onSwipeRightClass() : onSwipeRightClass || '' - backingClass += ' ' + swipeRightClass; + backingClass += ` ${swipeRightClass}`; backingStyles.left = 0; backingStyles.width = currentX + 1; if (targetX > 0) { @@ -337,14 +337,16 @@ export default class SwipeContainer extends Component { } } return ( -
+
-
+
{this.props.children}
diff --git a/src/flux/stores/modal-store.jsx b/src/flux/stores/modal-store.jsx index 354f261d4..d2d34bbb1 100644 --- a/src/flux/stores/modal-store.jsx +++ b/src/flux/stores/modal-store.jsx @@ -56,8 +56,8 @@ class ModalStore extends NylasStore { } }; - closeModal = (callback = ()=>{}) => { - ReactDOM.render(, this.container, () => { + closeModal = (callback = () => {}) => { + ReactDOM.render(, this.container, () => { this.isOpen = false; this.trigger(); callback(); diff --git a/src/flux/stores/popover-store.jsx b/src/flux/stores/popover-store.jsx index 5a10b00cd..857f9925e 100644 --- a/src/flux/stores/popover-store.jsx +++ b/src/flux/stores/popover-store.jsx @@ -53,8 +53,8 @@ class PopoverStore extends NylasStore { } }; - closePopover = (callback = ()=>{}) => { - ReactDOM.render(, this.container, () => { + closePopover = (callback = () => {}) => { + ReactDOM.render(, this.container, () => { this.isOpen = false; this.trigger(); callback(); diff --git a/src/flux/tasks/task-factory.es6 b/src/flux/tasks/task-factory.es6 index 0c9642e7e..92d4a3119 100644 --- a/src/flux/tasks/task-factory.es6 +++ b/src/flux/tasks/task-factory.es6 @@ -11,7 +11,7 @@ import Category from '../models/category' const TaskFactory = { - tasksForApplyingCategories({threads, categoriesToRemove = ()=>[], categoriesToAdd = ()=>[], taskDescription} = {}) { + tasksForApplyingCategories({threads, categoriesToRemove = () => [], categoriesToAdd = () => [], taskDescription} = {}) { const byAccount = {} const tasks = [] diff --git a/src/pro b/src/pro index ba395a9cf..6b0b9cff9 160000 --- a/src/pro +++ b/src/pro @@ -1 +1 @@ -Subproject commit ba395a9cf8757a442d09862621b1bc91b52f8fa7 +Subproject commit 6b0b9cff9b710a73ad3ba4e274ffe1ba448f145b diff --git a/src/virtual-dom-utils.es6 b/src/virtual-dom-utils.es6 index 2d35f3f25..1c4716a7b 100644 --- a/src/virtual-dom-utils.es6 +++ b/src/virtual-dom-utils.es6 @@ -2,7 +2,7 @@ import _ from 'underscore' import React from 'react' const VirtualDOMUtils = { - *walk({element, parentNode, childOffset, pruneFn = ()=>{}}) { + *walk({element, parentNode, childOffset, pruneFn = () => {}}) { yield {element, parentNode, childOffset}; if (React.isValidElement(element) && !pruneFn(element)) { const children = element.props.children;