draft-js
Version:
A React framework for building text editors.
38 lines (35 loc) • 1.19 kB
Flow
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
* @flow strict
* @emails oncall+draft_js
*/
;
const UserAgent = require("fbjs/lib/UserAgent");
const isSoftNewlineEvent = require("./isSoftNewlineEvent");
const isOSX = UserAgent.isPlatform('Mac OS X');
const KeyBindingUtil = {
/**
* Check whether the ctrlKey modifier is *not* being used in conjunction with
* the altKey modifier. If they are combined, the result is an `altGraph`
* key modifier, which should not be handled by this set of key bindings.
*/
isCtrlKeyCommand: function (e: SyntheticKeyboardEvent<>): boolean {
return !!e.ctrlKey && !e.altKey;
},
isOptionKeyCommand: function (e: SyntheticKeyboardEvent<>): boolean {
return isOSX && e.altKey;
},
usesMacOSHeuristics: function (): boolean {
return isOSX;
},
hasCommandModifier: function (e: SyntheticKeyboardEvent<>): boolean {
return isOSX ? !!e.metaKey && !e.altKey : KeyBindingUtil.isCtrlKeyCommand(e);
},
isSoftNewlineEvent
};
module.exports = KeyBindingUtil;