Skip to content

Way.Shell 2.1: notice, hidden Ways and the panel at the root - #1

Merged
jacalapa merged 1 commit into
mainfrom
feat/shell-2.1
Oct 17, 2026
Merged

jacalapa merged 1 commit into
mainfrom
feat/shell-2.1

Conversation

@jacalapa

Copy link
Copy Markdown
Contributor

For an app made entirely of Ways, so its pages look like one app. Polyglot is the first: its own pages become Ways next to the CultureWay editor, in one panel at /.

Changes

  • ShellOptions.Notice: a note above every Way, in the panel and on a Way's own page (e.g. "this is a public demo").
  • WayModule.IsHidden: the panel does not list the Way in its menu, but it still opens at #/{id}/, e.g. an account page linked from the user's name (AccountUrl = "~/#/account/"). The panel opens the first visible Way.
  • UseWayShell("/"): the panel as the app's home page. A convention narrows Reiho's catch-all route to / itself. Without it, every address the host does not map would get the panel's 404, or a redirect to sign-in when the panel requires authorization (an API client with a key would get 302 instead of 404). MapWay at the root is still refused.

The module contract stays at 2: existing modules and the @kododo-dev/way-shell 2.0 preset work unchanged.

Tests

  • .NET: 53 on net8.0, net9.0 and net10.0 (new: notice and hidden in the settings, a hidden Way, the panel at the root with and without a path base, unknown addresses still 404).
  • npm: typecheck, lint, 31 tests, build.
  • Shell demo (now with a notice and a hidden "Account" Way) in Production: 40/40 in Chrome, Edge, Firefox and WebKit.
  • Polyglot on a local 2.1.0 package: 119 tests, browser scenarios 33/33 in all four browsers.

For an app made entirely of Ways (Polyglot), so its pages look like one app:

- ShellOptions.Notice: a note above every Way, e.g. that the app is a public
  demo.
- WayModule.IsHidden: a Way the panel does not list in its menu, still opened
  at #/{id}/, e.g. an account page the user's name links to. The panel opens
  the first visible Way.
- UseWayShell("/"): the panel as the app's home page. It answers only at "/"
  itself; Reiho's catch-all there would answer every address the host does
  not map, with the panel's 404 or its sign-in instead of the host's.

The module contract stays at 2.
@jacalapa
jacalapa merged commit e364c21 into main Oct 17, 2026
2 checks passed
@jacalapa
jacalapa deleted the feat/shell-2.1 branch October 17, 2026 20:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant