All Docs
FeaturesDepositClearUpdated March 10, 2026

Bulk Actions on List Pages

Bulk Actions on List Pages

From v0.1.73, all major list pages support bulk selection and contextual bulk actions. This is designed for agencies managing large portfolios where performing the same operation across many records one-by-one is impractical.

Supported Pages

Bulk-action support is available on:

  • Properties
  • Tenancies
  • Check-In
  • Check-Out
  • Tenants
  • Archives

How It Works

Selecting Items

When a list page has the selectable prop enabled, each card or row displays a leading checkbox. You can:

  • Click an individual checkbox to select that record.
  • Use a select-all control to select every visible item on the current page.
  • Click a selected checkbox again to deselect it.

Contextual Action Bar

Once one or more items are selected, a contextual action bar slides in above the list. The actions shown depend on which page you are on:

PageAvailable Bulk Actions
TenanciesRun compliance check, Export selected
PropertiesBulk assign to branch, Bulk mark as archived
ArchivesBulk delete
TenantsBulk send reminders
Check-In / Check-Out(actions contextual to workflow stage)

The action bar dismisses automatically when the selection is cleared.

Technical Notes

selectable Prop

List pages accept an optional boolean selectable prop. When true, the selection UI is activated:

<TenanciesList selectable />

When omitted or false, list pages render exactly as before — there is no change to the default behaviour.

useSelectable Hook

Selection state is managed by the shared useSelectable hook. Use it directly if you are building a custom list view that needs the same selection pattern:

const {
  selectedIds,
  isSelected,
  toggleItem,
  selectAll,
  clearSelection,
} = useSelectable(items);
Return valueTypeDescription
selectedIdsSet<string>IDs of currently selected items
isSelected(id)(id: string) => booleanWhether a given item is selected
toggleItem(id)(id: string) => voidSelect or deselect a single item
selectAll()() => voidSelect all items passed to the hook
clearSelection()() => voidDeselect all items

FilterToolbar Integration

The bulk-selection pattern lives inside src/components/filter-toolbar.tsx. The FilterToolbar renders the checkbox controls and the contextual action bar as part of its existing toolbar layout, keeping the UI consistent with search and filter controls already present on every list page.