Skip to content
This repository has been archived by the owner on Mar 4, 2020. It is now read-only.

fix(SelectableList): Items in list should be selectable #566

Merged
merged 39 commits into from
Dec 19, 2018

Conversation

sophieH29
Copy link
Contributor

@sophieH29 sophieH29 commented Dec 5, 2018

ezgif com-video-to-gif

The current implementation of a Selectable list just gives the ability to navigate within a list and update tabindexes appropriately, but still, a selection is not handled when clicking on items or use keys like Enter or Space.
This PR aims to improve list items selection as well as fix the defect #464, #565

With this PR, it is possible to select items by clicking or pressing Enter or Space. Also selectedItemIndex is an autocontrolled prop, so the client will be able to set defaulSelectedItemIndex to specify if some item should be selected in a list by default

Fixes #464
Fixes #565

@sophieH29 sophieH29 changed the title fix(List): Items in list should be selectable fix(SelectableList): Items in list should be selectable Dec 5, 2018
@kuzhelov kuzhelov added needs author feedback Author's opinion is asked and removed 🚀 ready for review labels Dec 11, 2018
@kuzhelov kuzhelov added 🚀 ready for review and removed needs author feedback Author's opinion is asked labels Dec 14, 2018
@alinais alinais added this to sophieH29 in Core Team Dec 14, 2018
src/components/List/ListItem.tsx Show resolved Hide resolved
src/components/List/ListItem.tsx Outdated Show resolved Hide resolved
@sophieH29 sophieH29 merged commit d1a9105 into master Dec 19, 2018
@sophieH29 sophieH29 deleted the fix/selectable-list-aria-selected branch December 19, 2018 09:29
mnajdova pushed a commit that referenced this pull request Dec 19, 2018
* Reflect which item is selected in list

* Make list derived from autocontrolled component

* small fix

* Update ListExampleSelection.tsx

* Update ListExampleSelection.shorthand.tsx

* Small improvement

* Rename *ItemIndex -> *Index

* Names refactoring

* Minor improvements

* update changelog

* Add onSelectedIndexChange

* Add some tests

* Small improvements afer CR

* Small improvements afer CR

* Small improvements afer CR

* create focus handler when List is constructed

* fix changelog

* changelog
mnajdova pushed a commit that referenced this pull request Dec 19, 2018
* feat(menuItem: add menu prop)

* Only one submenu open at a time

* Fix bug: submenu noe closes on clicking a menuItem with no submenu

* Code cleanup

* Remove the activeIndex prop passed to the menuItem

* Remove Popup and implement submenu without it

* initial keyboard support

* left/right arrow handling

* simplify keyboard handlers

* -fixed import in the MenuItem

* -added submenuIndicator
-small fixes in the styles and the way the submenu is generated

* -clicking on leaf element should close the submenus (the same should be done for enter/space)
-applied consistent (left-right) navigation for horizontal menu and (up-down) navigation for vertical menu

* -implemented outside click to close all menus
-implemented enter key on leaf menu item to close the menu

* -fixed import

* -refactored MenuItem handlers - fixed issues
-removed onClick handler for the Menu (not necessary for now)
-added onKeyDown in the creation of the MenuItem in the Menu component for handling the action prop

* -added setActiveIndex callback and removed onKeyDown in the creation of MenuItems in the Menu component

* -right arrow key is closing the submenus and goes to the next element if the menu is horizontal, or is focusing the first MenuItem if it is vertical

* -handled left arrow key

* -changed ref
-focus trap wip

* -added Ref component instead of using the itemRef on the ElementType
-removed subscription for focus

* -fixes

* -moved ref //TODO: figure out tests failing

* -close menu on outside focus

* -improved comments

* -fixed escape key not focusing the active element
-changed parentRef to inSubmenu boolean

* -fixing key problems
-added dependency for generating id

* -refactored submenuRef element

* fix broken tests

* -added comments in the tests
-changed the submenuDomElement so submenuRef

* -renamed inSubmenu to submenu prop in the Menu

* -fixed with the auto-controlled prop in the Menu

* -added state interface in the Menu
-improved menu variables' names

* -fixed variables in examples

* -remove state initialization in the MenuItem component

* -added new handler for escape
-changed submenu examples titles

* -refactored conditions using doesNodeContainClick

* -renamed submenu* props to menu in the MenuItem component
-changed setActiveIndex with onActiveChanged
-introduced different styles for the hovering vs active elements

* -improved example
-fixed issue with the condition for the active prop

* -exported MenuState
-added correct typings to the menuStyles

* -fixed underlined active + hovered style

* -fixed border corner clipped by adding custom styles for the first child menu items and the last child menu items in vertical menu

* -addressed comments on PR

* chore: prepare release 0.15.0 [ci skip]

* 0.15.0

* fix(Prototype): Fix Popover prototype after breaking changes (#623)

* chore: cache results of vulnerability scans (#621)

* implement caching strategy

* adjust file name of scan marker

* add yarn lock hash to marker file name

* add change to build config

* fix dir name in build config

* improve caching strategy

* just restore cache

* temporary remove lint and tests

* try

* fix caching strategy

* try

* try

* try

* try epoch

* create file on scan

* return lint and test steps

* introduce comment for the caching approach taken

* remove unnecessary function

* simplify expression for marker file name

* feat(text): color prop (#597)

* feat(text): color prop

* addressed comments

* changelog

* amended changelog

* made text color override other props that change color

* feat(header): header and header description color prop (#628)

* feat(header): header and header description color prop

* changelog

* fixed examples

* addressed PR comments

* fix(Popup): allow to 'detach' from trigger and RTL adjustments (#612)

* introduce offset prop

* correct description of supported values

* update changelog

* introduce fix

* ensure RTL is properly applied to complex offset expressions

* rename method to make logic more expressive

* add unit tests

* remove unnecessary grid props from offset example

* update changelog

* fix(SelectableList): Items in list should be selectable (#566)

* Reflect which item is selected in list

* Make list derived from autocontrolled component

* small fix

* Update ListExampleSelection.tsx

* Update ListExampleSelection.shorthand.tsx

* Small improvement

* Rename *ItemIndex -> *Index

* Names refactoring

* Minor improvements

* update changelog

* Add onSelectedIndexChange

* Add some tests

* Small improvements afer CR

* Small improvements afer CR

* Small improvements afer CR

* create focus handler when List is constructed

* fix changelog

* changelog

* docs(Examples): allow to use TS in examples (#617)

* docs(Examples): allow to use TS in examples

* add jsdoc

* fix typo

* rename file

* add comment

* `createExample` to `createExampleSourceCode`

* rework with `path.relative()`

* remove JSON files on remove tsx

* create getRelativePathToSource function

* -updated changelog

* -updated changelog

* -updated changelog with breaking changes
-removed TODO comment

* -fixed imports in examples
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
No open projects
Core Team
  
sophieH29
Development

Successfully merging this pull request may close these issues.

Selectable list focus handling [Selection list] Aria-selected is not changing the state, is always false
4 participants