Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2017
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. _handleKeyDown = (key: number) => {
  2. switch (key) {
  3. case keyCodes.up:
  4. this._selectNewActive(x => x - 1);
  5. break;
  6. case keyCodes.down:
  7. this._selectNewActive(x => x + 1);
  8. break;
  9. case keyCodes.center:
  10. if (this.state.activeSelectable) {
  11. this.state.activeSelectable.onPress();
  12. }
  13. break;
  14. }
  15.  
  16. return true;
  17. }
  18.  
  19. _selectNewActive(idxModifier: Function) {
  20. if (this.state.activeSelectable) { // blur active Selectable
  21. this.state.activeSelectable.onBlur();
  22. }
  23.  
  24. const sortedSelectables = this.state.selectables.sort((a, b) => (a.y - b.y));
  25. if (this.state.activeSelectable) { // select next Selectable
  26. const idx = sortedSelectables.indexOf(this.state.activeSelectable);
  27. const newIdx = idxModifier(idx || 0);
  28. if (newIdx >= 0 && newIdx < sortedSelectables.length) {
  29. sortedSelectables[newIdx].onFocus();
  30. this.setState({ activeSelectable: sortedSelectables[newIdx] });
  31. } else {
  32. this.setState({ activeSelectable: null });
  33. }
  34. } else { // select first Selectable
  35. sortedSelectables[0].onFocus();
  36. this.setState({ activeSelectable: sortedSelectables[0] });
  37. }
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement