From 3d51bd6b84d927f0b07869088b07af529e0fb959 Mon Sep 17 00:00:00 2001 From: EnixCoda Date: Fri, 22 Feb 2019 13:35:52 +0800 Subject: [PATCH] refactor: only run detectOS once --- src/components/Node.tsx | 6 +++--- src/utils/general.ts | 9 +++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/components/Node.tsx b/src/components/Node.tsx index f023836..5075da2 100644 --- a/src/components/Node.tsx +++ b/src/components/Node.tsx @@ -3,7 +3,7 @@ import Icon from 'components/Icon' import cx from 'utils/cx' import LoadingIndicator from 'components/LoadingIndicator' import { TreeNode } from 'utils/VisibleNodesGenerator' -import { detectOS, OperatingSystems } from 'utils/general' +import { os, OperatingSystems } from 'utils/general' function getIconType(node: TreeNode) { switch (node.type) { @@ -27,8 +27,8 @@ type Props = { export default class Node extends React.PureComponent { onClick: React.MouseEventHandler = event => { if ( - (detectOS() === OperatingSystems.macOS && event.metaKey) || - (detectOS() === OperatingSystems.Windows && event.ctrlKey) + (os === OperatingSystems.macOS && event.metaKey) || + (os === OperatingSystems.Windows && event.ctrlKey) ) { // Open in new tab return diff --git a/src/utils/general.ts b/src/utils/general.ts index 718f7e4..5705670 100644 --- a/src/utils/general.ts +++ b/src/utils/general.ts @@ -21,7 +21,7 @@ export enum OperatingSystems { others = 'unknown', } -export function detectOS(): OperatingSystems { +function detectOS(): OperatingSystems { const { navigator: { userAgent }, } = window @@ -30,12 +30,13 @@ export function detectOS(): OperatingSystems { return OperatingSystems.others } +export const os = detectOS() + export function friendlyFormatShortcut(shortcut?: string) { if (!shortcut) return '' - const OS = detectOS() - if (OS === OperatingSystems.Windows) { + if (os === OperatingSystems.Windows) { return shortcut.replace(/meta/, 'win') - } else if (OS === OperatingSystems.macOS) { + } else if (os === OperatingSystems.macOS) { return shortcut .replace(/meta/, '⌘') .replace(/ctrl/, '⌃')