Activity Discovery

In the web app, FEATURED_PROGRAMS filters PROGRAMS to entries whose featured property is true; the creative showcase and tablet launcher share this subset. Across variants, passing a catalog route to navigation is a handoff, not proof that the destination is registered.

Surface How it selects items Destination handoff
Web creative showcase Presents catalog items as cards. The card passes app.route to its navigation callback. MainLayout places the showcase and tablet launcher together in its apps section.
Web tablet launcher Selecting a tile updates the selected ID; the launcher looks it up and falls back to the first item if there is no match. The launch button passes selected.route to navigation; a separate button opens /apps.
Mogo Moving showcase Uses its own local card list; AppCard receives an item and index, not a route callback. The card is presentation-only; it has no route handoff.
Mogo Moving tablet Simulated device tiles switch the local screen. Separately, the browse-all list looks up IDs in the partial APP_ROUTES map. Only mapped IDs show a route button; clicking it calls navigate(route). Check the destination separately in the route table.
Web AppsHub Maps RAW_APPS entries by ID to FEATURED_PROGRAMS; matches use canonical data and unmatched entries remain as supplied. The card passes app.route to the page’s navigation callback.

The current web route table in mogo-src/app/routes.tsx declares /apps for AppsHubPage, with separate entries for /games and /academy.

[!NOTE] The route table also declares /browse/:groupId/:sectionId? for ProgramBrowsePage. The available evidence does not establish how that page supplies CatalogBrowseView or what grouping rules sectionsForPrograms(programs) applies. Before changing browse membership or section URLs, check ProgramBrowsePage’s imports and props and the programBrowse helper.

How AppsHub filtering works

An item appears only when both conditions pass: its category matches the selected category or the all category (الكل), and the search is empty or appears in the item’s name or description. A text match does not override a category mismatch.