ComponentsServicesService Category Grid

Services

Service Category Grid

A dedicated category browser for service apps. BuilderServiceCategoryGrid renders a 2- or 3-column grid of backend service categories, with optional image, icon, subtitle, provider count, price range, and badge. Tapping a card either filters a sibling Service List in place or navigates to another screen with the category pre-selected.

Layout2 or 3 columns

Set columns to 2 or 3. Two columns works best on most phones; three suits tablets or compact category cards.

Filter modeIn-place or navigate

Leave detailScreenId empty for sibling filtering, or set it to navigate and pass category as a nav param.

TierFree

Available on all plans.

What it does

Four things worth knowing

Two tap modes, no custom logic

Use the same component for both flows: in-place filtering of a sibling Service List, or navigation to a separate screen with the category already selected.

In-place filtering path

When detailScreenId is empty, the grid emits onCategoryFilter. AppPlayer forwards that selection to a sibling Service List via activeCategoryFilter.

Navigation path

When detailScreenId is set, the grid navigates and passes category as a nav param so the target Service List can pre-filter on load.

Backend-sourced categories and rich cards

Categories come from the same backend data managed in Admin Service Manager. Leave selectedCategoryNames empty to show all categories, or provide exact names to show only a subset. Each card can display image, icon, title, subtitle, provider count, price range, and badge.

Builder setup

Find it, drop it, choose the tap mode

Where to find itAdd it to a browse screen

  1. Component picker → ServicesService Category Grid.
  2. Place it above a Service List on a home or browse screen.
  3. Use it either for sibling filtering or for navigation to a separate category screen.

Before you publishThree things to check

  1. For in-place filtering, keep detailScreenId empty and place Service Category Grid plus Service List on the same screen.
  2. For navigation, set detailScreenId to a screen that contains a Service List.
  3. On that target screen, set showCategoryFilter: false if only one category should appear.
Category: ServicesComponent: BuilderServiceCategoryGridRegistry key: service-category-gridTier: Free
Props

Selection, layout, and navigation

PropTypeDefaultDescription
selectedCategoryNamesbackend-category-picker[]Pick which categories to show. Empty = all categories.
columnsselect2Choose 2 or 3 columns.
detailScreenIdscreen-selectScreen all categories navigate to; receives category as a navigation param.
Toggles & fixed rules

Make it yours

Visibility toggles are available for each optional card element. Some presentation details stay fixed in code for the MVP so the grid remains consistent across screens.

PropDefaultWhat it controls
showImagetrueCategory image visibility.
showIcontrueIcon visibility.
showSubtitletrueSubtitle visibility.
showProviderCounttrueProvider count visibility.
showPriceRangetruePrice range visibility.
showBadgetrueBadge visibility.
Tips

Common mistakes to avoid

Pick one interaction mode per grid

If you set detailScreenId, the grid navigates on tap. If you leave it empty, it filters a sibling Service List in place. Do not mix both expectations on one grid instance.

Selected names must match exactly

If you provide selectedCategoryNames, those values must match backend category names exactly or the missing categories will not render.

Some presentation rules are fixed

Image height, card border radius, card spacing, icon size, and max category count are intentionally fixed in code for the MVP. Do not expect those controls in the property editor.

Hide the target chip bar when needed

When navigating to a category-specific Service List screen, set showCategoryFilter: false there if only one category should appear. It keeps the target screen cleaner.