Skip to content
This repository was archived by the owner on May 18, 2026. It is now read-only.

feat: add default hidden functionality to extension library#515

Merged
takaokouji merged 7 commits into
developfrom
feat/issue-18-extension-filter
Jan 14, 2026
Merged

feat: add default hidden functionality to extension library#515
takaokouji merged 7 commits into
developfrom
feat/issue-18-extension-filter

Conversation

@takaokouji

Copy link
Copy Markdown

This PR adds the ability to hide certain extensions by default in the extension library, as requested in smalruby/smalruby3-develop#18.

Changes:

  • Redux: Created extension-filter.js to manage showAllExtensions state and integrated it into gui.js.
  • Metadata: Added defaultHidden: true to makeymakey, microbit, ev3, boost, wedo2, and gdxfor in lib/libraries/extensions/index.jsx.
  • Components:
    • Updated Modal component to support headerActions prop (Generic pattern).
    • Updated LibraryComponent to pass headerActions to Modal.
    • Updated ExtensionLibrary container to provide the "Show all extensions" checkbox.
  • Styles: Added extension-library.css and updated modal.css.
  • Localization: Added gui.extensionLibrary.showAllExtensions to en.js, ja.js, and ja-Hira.js.

Verification:

  • Ran lint: npm run test:lint passed.
  • Ran build: npm run build passed.

Fixes smalruby/smalruby3-develop#18

- Create extension-filter reducer to manage showAllExtensions state
- Add defaultHidden: true to Makey Makey, micro:bit, LEGO EV3, LEGO BOOST,
  WeDo 2.0, and Go Direct Force & Acceleration
- Implement headerActions pattern in Modal component
- Add 'Show all extensions' checkbox to ExtensionLibrary
- Persist showAllExtensions setting in localStorage
- Add translations for the new checkbox label

Fixes smalruby/smalruby3-develop#18

Co-Authored-By: Gemini <noreply@google.com>
takaokouji and others added 6 commits January 14, 2026 23:33
- Change microbitMore name to 'micro:bit'
- Update description to include 'with Microbit More'
- Update Japanese and German translations accordingly
- Add 'mbit' to cspell.json

Co-Authored-By: Gemini <noreply@google.com>
…ensions

- Extension IDs are strings, but LibraryItem expected only numbers.
- Updated id PropType to accept both numbers and strings.

Fixes PropType warning in extension library modal.
…nd accessibility enhancements

- Allow ?showAllExtensions=true/false to override localStorage settings
- Migrate KoshienTestModal to use headerActions pattern
- Add aria-label to 'Show all extensions' checkbox for screen readers

Co-Authored-By: Gemini <noreply@google.com>
- Removed onReload and onStop from propTypes and conditional rendering logic.
- Removed unused reloadIcon and stopIcon imports.
- Kept loading state and progressBar functionality as they are still used.

Co-Authored-By: Gemini <noreply@google.com>
- Removed onReload and onStop from propTypes and conditional rendering logic.
- Removed unused reloadIcon and stopIcon imports.
- Kept loading state and progressBar functionality as they are still used.

Co-Authored-By: Gemini <noreply@google.com>
- Modified SeleniumHelper.loadUri to automatically append showAllExtensions=true
  to the test URI.
- This ensures that hidden extensions like EV3 are accessible to tests that
  interact with the extension library UI.
- Fixes CI failure in test/integration/connection-modal.test.js.

Co-Authored-By: Gemini <noreply@google.com>
@takaokouji takaokouji merged commit 45f3ef9 into develop Jan 14, 2026
2 checks passed
@takaokouji takaokouji deleted the feat/issue-18-extension-filter branch January 14, 2026 15:44
github-actions Bot pushed a commit that referenced this pull request Jan 14, 2026
…-extension-filter

feat: add default hidden functionality to extension library
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: 拡張機能ライブラリにデフォルト非表示機能を追加

1 participant