support shift modifier
This commit is contained in:
parent
214a5103f3
commit
cd6f7e7788
2 changed files with 36 additions and 1 deletions
|
@ -1,6 +1,17 @@
|
|||
const modifierdKeyName = (name) => {
|
||||
if (name.length === 1) {
|
||||
return name.toUpperCase();
|
||||
} else if (name === 'Escape') {
|
||||
return 'Esc';
|
||||
}
|
||||
return name;
|
||||
};
|
||||
|
||||
const mapKey = (e) => {
|
||||
if (e.ctrlKey) {
|
||||
return '<C-' + e.key.toUpperCase() + '>';
|
||||
return '<C-' + modifierdKeyName(e.key) + '>';
|
||||
} else if (e.shiftKey && e.key.length !== 1) {
|
||||
return '<S-' + modifierdKeyName(e.key) + '>';
|
||||
}
|
||||
return e.key;
|
||||
};
|
||||
|
|
|
@ -40,6 +40,30 @@ describe('InputComponent', () => {
|
|||
component.onKeyDown({ key: 'a', ctrlKey: true });
|
||||
})
|
||||
|
||||
it('press X', () => {
|
||||
let component = new InputComponent(window.document);
|
||||
component.onKey((key) => {
|
||||
expect(key).is.equals('X');
|
||||
});
|
||||
component.onKeyDown({ key: 'X', shiftKey: true });
|
||||
})
|
||||
|
||||
it('press <Shift> + <Esc>', () => {
|
||||
let component = new InputComponent(window.document);
|
||||
component.onKey((key) => {
|
||||
expect(key).is.equals('<S-Esc>');
|
||||
});
|
||||
component.onKeyDown({ key: 'Escape', shiftKey: true });
|
||||
})
|
||||
|
||||
it('press <Ctrl> + <Esc>', () => {
|
||||
let component = new InputComponent(window.document);
|
||||
component.onKey((key) => {
|
||||
expect(key).is.equals('<C-Esc>');
|
||||
});
|
||||
component.onKeyDown({ key: 'Escape', ctrlKey: true });
|
||||
})
|
||||
|
||||
it('does not invoke only meta keys', () => {
|
||||
let component = new InputComponent(window.document);
|
||||
component.onKey((key) => {
|
||||
|
|
Reference in a new issue