Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Navigation component: Ensure setActiveMenu target exist #25367

Merged
merged 4 commits into from
Sep 18, 2020

Conversation

david-szabo97
Copy link
Member

@david-szabo97 david-szabo97 commented Sep 16, 2020

Fixes: #25249
Depends on: #25340

Description

Check if the target of setActiveMenu exists.

How has this been tested?

yarn storybook:dev
Added a new item in the menu called Navigate to a non-existing menu, when clicking this nothing should happen. Without the changes though, the whole navigation menu would disappear.

Types of changes

Bug fix (non-breaking change which fixes an issue)

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.
  • My code follows the accessibility standards.
  • My code has proper inline documentation.
  • I've included developer documentation if appropriate.
  • I've updated all React Native files affected by any refactorings/renamings in this PR.

@david-szabo97 david-szabo97 added the [Feature] Navigation Component A navigational waterfall component for hierarchy of items. label Sep 16, 2020
@david-szabo97 david-szabo97 self-assigned this Sep 16, 2020
@github-actions
Copy link

github-actions bot commented Sep 16, 2020

Size Change: +15 B (0%)

Total Size: 1.2 MB

Filename Size Change
build/components/index.js 202 kB +15 B (0%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.67 kB 0 B
build/api-fetch/index.js 3.41 kB 0 B
build/autop/index.js 2.83 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 8.53 kB 0 B
build/block-directory/style-rtl.css 943 B 0 B
build/block-directory/style.css 942 B 0 B
build/block-editor/index.js 128 kB 0 B
build/block-editor/style-rtl.css 11.1 kB 0 B
build/block-editor/style.css 11.1 kB 0 B
build/block-library/editor-rtl.css 8.59 kB 0 B
build/block-library/editor.css 8.59 kB 0 B
build/block-library/index.js 135 kB 0 B
build/block-library/style-rtl.css 7.6 kB 0 B
build/block-library/style.css 7.59 kB 0 B
build/block-library/theme-rtl.css 741 B 0 B
build/block-library/theme.css 741 B 0 B
build/block-serialization-default-parser/index.js 1.88 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 47.8 kB 0 B
build/components/style-rtl.css 15.5 kB 0 B
build/components/style.css 15.4 kB 0 B
build/compose/index.js 9.68 kB 0 B
build/core-data/index.js 12.2 kB 0 B
build/data-controls/index.js 1.28 kB 0 B
build/data/index.js 8.55 kB 0 B
build/date/index.js 31.9 kB 0 B
build/deprecated/index.js 772 B 0 B
build/dom-ready/index.js 568 B 0 B
build/dom/index.js 4.47 kB 0 B
build/edit-navigation/index.js 10.7 kB 0 B
build/edit-navigation/style-rtl.css 868 B 0 B
build/edit-navigation/style.css 871 B 0 B
build/edit-post/index.js 305 kB 0 B
build/edit-post/style-rtl.css 6.24 kB 0 B
build/edit-post/style.css 6.22 kB 0 B
build/edit-site/index.js 19 kB 0 B
build/edit-site/style-rtl.css 3.13 kB 0 B
build/edit-site/style.css 3.13 kB 0 B
build/edit-widgets/index.js 16.6 kB 0 B
build/edit-widgets/style-rtl.css 2.75 kB 0 B
build/edit-widgets/style.css 2.75 kB 0 B
build/editor/editor-styles-rtl.css 492 B 0 B
build/editor/editor-styles.css 493 B 0 B
build/editor/index.js 45.3 kB 0 B
build/editor/style-rtl.css 3.8 kB 0 B
build/editor/style.css 3.8 kB 0 B
build/element/index.js 4.64 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.71 kB 0 B
build/format-library/style-rtl.css 547 B 0 B
build/format-library/style.css 548 B 0 B
build/hooks/index.js 2.13 kB 0 B
build/html-entities/index.js 621 B 0 B
build/i18n/index.js 3.57 kB 0 B
build/is-shallow-equal/index.js 711 B 0 B
build/keyboard-shortcuts/index.js 2.52 kB 0 B
build/keycodes/index.js 1.94 kB 0 B
build/list-reusable-blocks/index.js 3.12 kB 0 B
build/list-reusable-blocks/style-rtl.css 476 B 0 B
build/list-reusable-blocks/style.css 476 B 0 B
build/media-utils/index.js 5.32 kB 0 B
build/notices/index.js 1.79 kB 0 B
build/nux/index.js 3.4 kB 0 B
build/nux/style-rtl.css 671 B 0 B
build/nux/style.css 668 B 0 B
build/plugins/index.js 2.56 kB 0 B
build/primitives/index.js 1.41 kB 0 B
build/priority-queue/index.js 789 B 0 B
build/redux-routine/index.js 2.85 kB 0 B
build/rich-text/index.js 13.9 kB 0 B
build/server-side-render/index.js 2.77 kB 0 B
build/shortcode/index.js 1.69 kB 0 B
build/token-list/index.js 1.27 kB 0 B
build/url/index.js 4.06 kB 0 B
build/viewport/index.js 1.85 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

@Copons Copons changed the base branch from master to try/naviation-navigation-tree-context-v2 September 16, 2020 13:31
@Copons
Copy link
Contributor

Copons commented Sep 16, 2020

Heads up: we are removing the internal activeItem state in #25281.
Once that's merged, the changes to setActiveItem in this PR won't be relevant anymore

You can read more about it here: #25281 (comment).

tl;dr
Keeping activeItem internally feels great in the Storybook, but it doesn't have any real use cases.
The activeItem is supposed to be connected to something that happens outside the component (e.g. the current page, or them template part displayed in the editor.
Since the internal and external states are always kept in sync, the internal could easily get in the way of the external.

@Copons
Copy link
Contributor

Copons commented Sep 16, 2020

This looks good to me! ✨
Let's keep it on hold until #25340 and #25281 are merged!

@Copons Copons marked this pull request as ready for review September 16, 2020 13:48
@david-szabo97 david-szabo97 force-pushed the try/naviation-navigation-tree-context-v2 branch from 1e266a4 to f31277c Compare September 17, 2020 08:28
@david-szabo97 david-szabo97 force-pushed the try/navigation-target-menu-check branch from 9ef52f5 to e4e5943 Compare September 17, 2020 08:49
Base automatically changed from try/naviation-navigation-tree-context-v2 to master September 17, 2020 13:35
@Copons
Copy link
Contributor

Copons commented Sep 17, 2020

@david-szabo97 Make sure to rebase and update the PR title and description (activeItem is not relevant anymore) before merging!

@david-szabo97 david-szabo97 changed the title Navigation component: Ensure setActiveItem and setActiveMenu targets exist Navigation component: Ensure setActiveMenu target exist Sep 17, 2020
@david-szabo97
Copy link
Member Author

david-szabo97 commented Sep 17, 2020

Rebased and updated title and description.
Both #25340 and #25281 are merged! Waiting for tests and an approve 😄

@david-szabo97 david-szabo97 force-pushed the try/navigation-target-menu-check branch from f90d681 to 7afed17 Compare September 17, 2020 14:28
@david-szabo97
Copy link
Member Author

Rebased again, should be good now

@david-szabo97 david-szabo97 merged commit 7b3396b into master Sep 18, 2020
@david-szabo97 david-szabo97 deleted the try/navigation-target-menu-check branch September 18, 2020 08:58
@github-actions github-actions bot added this to the Gutenberg 9.1 milestone Sep 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Navigation Component A navigational waterfall component for hierarchy of items.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Navigation Component: Ensure That setActiveItem and setActiveMenu Targets Exist
2 participants