[Headless Front component] Support multiple selected record (#20268)

# Introduction

Support multiple selected record ids for headless front components

### Changes

**Added:**
- `recordIds: string[]` field to `FrontComponentExecutionContext`
- `useRecordIds()` hook to get all selected record IDs

**Deprecated:**
- `recordId` field - use `recordIds` instead
- `useRecordId()` hook - use `useRecordIds()` instead

Backward compatibility is preserved
This commit is contained in:
Paul Rastoin
2026-05-05 14:53:22 +02:00
committed by GitHub
parent 41a7d6928b
commit 820f97f53d
18 changed files with 163 additions and 57 deletions
@@ -23,11 +23,11 @@ import { useNavigateApp } from '~/hooks/useNavigateApp';
export const useFrontComponentExecutionContext = ({
frontComponentId,
commandMenuItemId,
recordId,
selectedRecordIds,
}: {
frontComponentId: string;
commandMenuItemId?: string;
recordId?: string;
selectedRecordIds?: string[];
}): {
executionContext: FrontComponentExecutionContext;
frontComponentHostCommunicationApi: FrontComponentHostCommunicationApi;
@@ -127,7 +127,8 @@ export const useFrontComponentExecutionContext = ({
const executionContext: FrontComponentExecutionContext = {
frontComponentId,
userId: currentUser?.id ?? null,
recordId: recordId ?? null,
recordId: selectedRecordIds?.length === 1 ? selectedRecordIds[0] : null,
selectedRecordIds: selectedRecordIds ?? [],
};
const unmountFrontComponent: FrontComponentHostCommunicationApi['unmountFrontComponent'] =