Select tables and groups
Use the table selector to choose individual tables from a floor plan, select whole zones or table types when the reservation mode allows it, and review capacity or warning states before saving the reservation.
In this article
The table selector connects reservation work with the real floor plan. Operators can choose tables directly, check the selected count and capacity, and spot when a multi-table choice does not match a configured combination.
The selector does not save a reservation by itself. It returns the selected table IDs to the reservation editor or direct selector page; the reservation is only updated when the containing workflow saves it.
Before you start
- Work inside a selected organisation and location. In the GB demo, use Harbor Demo Group and Harbor Soho.
- Open the selector with a valid `layoutId` so the floor plan can load zones, tables, table types and configured combinations.
- The operator needs permission to view or manage reservations or layouts for the location; the floor plan API must also allow layout viewing.
- Open the selector from a reservation editor to see reservation-specific warnings such as insufficient capacity, unavailable tables, double turns or active tickets. The direct selector route only shows floor-plan-based capacity and combination warnings.
Instructions
- 1.
Open the selector
From Liam Scott's reservation in Harbor Soho, open the reservation editor, set Mode of tables to Assign tables when needed, then choose Select tables. The selector can also open directly with `/:orgId/:locationId/reservations/tables/select?layoutId={layoutId}`.
- 2.
Review the floor plan
Check that the expected tables are visible before choosing them. Use pan, zoom and refit controls to frame the floor plan; on web, wait for the canvas renderer to finish preparing before interacting with the plan.
- 3.
Select or remove tables
Tap a table to add it to the selection, and tap it again to remove it. The selector ignores pan and pinch gestures as table taps, keeps only tables that exist in the loaded plan, removes duplicates and orders the selected IDs internally.
- 4.
Read capacity and combination warnings
In Assign tables mode, the bottom summary shows Maximum capacity, guest capacity and the number of selected tables. A single table uses its own capacity; several tables use a matching configured combination when one exists, otherwise the selector sums the tables and shows Combination not configured.
- 5.
Use groups when available
When the reservation uses Preferred or Required mode, group chips can appear for zones or table types. Tapping a group selects all selectable tables in that group; tapping it again removes them if they are already all selected. Zone groups also centre the floor plan on that zone.
- 6.
Return and save from the reservation
Use Back to return from the selector. In the reservation editor, the selection remains in the editor state and is saved only when the operator saves the reservation. In the direct selector route, `sessionId` keeps the selection only as a temporary in-memory draft.
Validations and limits
- If organisation, location or `layoutId` is missing, the page reports that the requested floor plan could not be found.
- If the operator cannot view the selector, the page shows a permission message; there is also a known edge case where reservation permissions can open the page but the layout API still requires layout viewing.
- If the floor plan is loading, fails, has no tables, or the web canvas renderer cannot be prepared, the selector shows the corresponding empty, loading or error state instead of an interactive plan.
- Tables marked unavailable or with an active ticket cannot be newly added, but a table that was already selected can still be removed.
- The capacity summary appears only in Assign tables mode when the container enables it. Insufficient capacity, double-turn and invalid-combination warnings are visual warnings, not tap blockers.
- A multi-table selection must exactly match a configured table combination to avoid the Combination not configured warning.
- Saving a reservation with a table mode other than Indifferent is blocked when no table is selected. Waitlist reservations convert Assign tables to Indifferent and clear the selection for saving.
Expected result
The selected table IDs return to the direct selector page or reservation editor. The selector itself does not persist table assignments; reservation changes are persisted only by the containing reservation workflow.