diff --git a/packages/react-code-editor/src/components/CodeEditor/examples/CodeEditorShortcutMainHeader.tsx b/packages/react-code-editor/src/components/CodeEditor/examples/CodeEditorShortcutMainHeader.tsx index d2dd1f5b466..9d9fee84d5a 100644 --- a/packages/react-code-editor/src/components/CodeEditor/examples/CodeEditorShortcutMainHeader.tsx +++ b/packages/react-code-editor/src/components/CodeEditor/examples/CodeEditorShortcutMainHeader.tsx @@ -1,34 +1,49 @@ import React from 'react'; import { CodeEditor, Language } from '@patternfly/react-code-editor'; -import { Grid, GridItem, Chip } from '@patternfly/react-core'; +import { Grid, GridItem, Chip, Radio } from '@patternfly/react-core'; export const CodeEditorShortcutMainHeader: React.FunctionComponent = () => { + type ShortcutMode = 'PC' | 'Mac'; + + const [currentShortcutMode, setCurrentShortcutMode] = React.useState('PC'); + const onEditorDidMount = (editor, monaco) => { editor.layout(); editor.focus(); monaco.editor.getModels()[0].updateOptions({ tabSize: 5 }); }; - const onChange = (value) => { + const onChange = (value: string) => { // eslint-disable-next-line no-console console.log(value); }; + const onShortcutModeChange = (event: React.FormEvent, checked: boolean) => { + if (checked) { + const newMode = event.currentTarget.value as ShortcutMode; + setCurrentShortcutMode(newMode); + } + }; + const shortcuts = [ { - keys: ['Opt', 'F1'], + PC: ['Alt', 'F1'], + Mac: ['Opt', 'F1'], description: 'Accessibility helps' }, { - keys: ['F1'], + PC: ['F1'], + Mac: ['F1'], description: 'View all editor shortcuts' }, { - keys: ['Ctrl', 'Space'], + PC: ['Ctrl', 'Space'], + Mac: ['Opt', 'Esc'], description: 'Activate auto complete' }, { - keys: ['Cmd', 'S'], + PC: ['Ctrl', 'S'], + Mac: ['Cmd', 'S'], description: 'Save' } ]; @@ -38,7 +53,7 @@ export const CodeEditorShortcutMainHeader: React.FunctionComponent = () => { {shortcuts.map((shortcut, index) => ( - {shortcut.keys + {shortcut[currentShortcutMode] .map((key) => ( {key} @@ -57,14 +72,32 @@ export const CodeEditorShortcutMainHeader: React.FunctionComponent = () => { }; return ( - + <> + + + + ); };