---
title: Položky příkazové nabídky
description: Zpřístupněte front komponenty jako rychlé akce a položky příkazového menu (Cmd+K) pomocí defineCommandMenuItem.
icon: terminal
---

**Položka příkazového menu** je most mezi uživatelem a [front komponentou](/l/cs/developers/extend/apps/layout/front-components). Registruje komponentu v příkazovém menu Twenty (Cmd+K) a volitelně také jako připnuté tlačítko rychlé akce v pravém horním rohu stránky.

```ts src/command-menu-items/open-dashboard.command-menu-item.ts
import { defineCommandMenuItem } from 'twenty-sdk/define';

export default defineCommandMenuItem({
  universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
  label: 'Open Dashboard',
  shortLabel: 'Dashboard',
  isPinned: true,
  availabilityType: 'GLOBAL',
  frontComponentUniversalIdentifier: '74c526eb-cb68-4cf7-b05c-0dd8c288d948',
});
```

## Konfigurační pole

| Pole                                    | Povinné | Popis                                                                                                                                                                                                                                                                                      |
| --------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `universalIdentifier`                   | Ano     | Stabilní jedinečné ID pro příkaz                                                                                                                                                                                                                                                           |
| `label`                                 | Ano     | Plný popisek zobrazený v příkazovém menu (Cmd+K)                                                                                                                                                                                                                                           |
| `frontComponentUniversalIdentifier`     | Ano     | `universalIdentifier` frontendové komponenty, kterou tento příkaz otevírá                                                                                                                                                                                                                  |
| `shortLabel`                            | Ne      | Kratší popisek zobrazený na připnutém tlačítku rychlé akce                                                                                                                                                                                                                                 |
| `icon`                                  | Ne      | **Zastaralé** — ignorováno ve prospěch ikony aplikace; při nastavení sestavení vypíše varování                                                                                                                                                                                             |
| `isPinned`                              | Ne      | Pokud je `true`, zobrazí příkaz jako tlačítko rychlé akce v pravém horním rohu stránky                                                                                                                                                                                                     |
| `availabilityType`                      | Ne      | Určuje, kde se příkaz zobrazuje: `'GLOBAL'` (vždy dostupné), `'GLOBAL_OBJECT_CONTEXT'` (pouze na stránkách s kontextem objektu — indexové a záznamové stránky), `'RECORD_SELECTION'` (pouze když jsou vybrány záznamy) nebo `'FALLBACK'` (zobrazeno, když neodpovídají žádné jiné příkazy) |
| `availabilityObjectUniversalIdentifier` | Ne      | Omezí příkaz na stránky konkrétního typu objektu (např. pouze u záznamů Company)                                                                                                                                                                                                           |
| `conditionalAvailabilityExpression`     | Ne      | Logický výraz, který dynamicky řídí viditelnost (viz níže)                                                                                                                                                                                                                                 |

## Příkazy bez rozhraní

Položka příkazového menu spárovaná s [front komponentou bez rozhraní](/l/cs/developers/extend/apps/layout/front-components#headless-vs-non-headless) je idiomatický způsob, jak dodat akci na jedno kliknutí — spustit kód, přejít na stránku nebo potvrdit a provést. Stránka Front Components popisuje [SDK Command komponenty](/l/cs/developers/extend/apps/layout/front-components#sdk-command-components) (`Command`, `CommandLink`, `CommandModal`, `CommandOpenSidePanelPage`), které obsluhují pattern akce-a-unmount.

Typický průběh: bezhlavá komponenta vykreslí `<Command execute={...} />` (viz [úplný příklad](/l/cs/developers/extend/apps/layout/front-components#sdk-command-components)) a položka v nabídce příkazů na ni ukazuje:

```ts src/command-menu-items/run-action.command-menu-item.ts
import { defineCommandMenuItem } from 'twenty-sdk/define';

export default defineCommandMenuItem({
  universalIdentifier: 'f6a7b8c9-d0e1-2345-fabc-456789012345',
  label: 'Run my action',
  frontComponentUniversalIdentifier: 'e5f6a7b8-c9d0-1234-efab-345678901234',
});
```

## Výrazy podmíněné dostupnosti

Pole `conditionalAvailabilityExpression` vám umožní řídit viditelnost příkazu na základě aktuálního kontextu stránky. Pro sestavení výrazů importujte typované proměnné a operátory z `twenty-sdk`:

```ts src/command-menu-items/bulk-update.command-menu-item.ts
import {
  defineCommandMenuItem,
  objectPermissions,
  everyEquals,
} from 'twenty-sdk/define';

export default defineCommandMenuItem({
  universalIdentifier: '...',
  label: 'Bulk Update',
  availabilityType: 'RECORD_SELECTION',
  frontComponentUniversalIdentifier: '...',
  conditionalAvailabilityExpression: everyEquals(
    objectPermissions,
    'canUpdateObjectRecords',
    true,
  ),
});
```

<Note>
  `RECORD_SELECTION` již znamená neprázdný výběr — použijte `numberOfSelectedRecords` pouze pro konkrétní počty (např. `>= 2`).
</Note>

### Kontextové proměnné

Tyto proměnné reprezentují aktuální stav stránky:

| Proměnná                       | Typ       | Popis                                                                |
| ------------------------------ | --------- | -------------------------------------------------------------------- |
| `pageType`                     | `string`  | Aktuální typ stránky (např. `'RecordIndexPage'`, `'RecordShowPage'`) |
| `isInSidePanel`                | `boolean` | Zda je komponenta vykreslena v postranním panelu                     |
| `numberOfSelectedRecords`      | `number`  | Počet aktuálně vybraných záznamů                                     |
| `isSelectAll`                  | `boolean` | Zda je aktivní "vybrat vše"                                          |
| `selectedRecords`              | `array`   | Vybrané objekty záznamů                                              |
| `favoriteRecordIds`            | `array`   | ID oblíbených záznamů                                                |
| `objectPermissions`            | `object`  | Oprávnění pro aktuální typ objektu                                   |
| `targetObjectReadPermissions`  | `object`  | Oprávnění ke čtení pro cílový objekt                                 |
| `targetObjectWritePermissions` | `object`  | Oprávnění k zápisu pro cílový objekt                                 |
| `featureFlags`                 | `object`  | Aktivní příznaky funkcí                                              |
| `objectMetadataItem`           | `object`  | Metadata aktuálního typu objektu                                     |
| `hasAnySoftDeleteFilterOnView` | `boolean` | Zda má aktuální zobrazení filtr soft-delete                          |

### Operátory

Kombinujte proměnné do logických výrazů:

| Operátor                            | Popis                                                                          |
| ----------------------------------- | ------------------------------------------------------------------------------ |
| `isDefined(value)`                  | `true`, pokud hodnota není null/undefined                                      |
| `isNonEmptyString(value)`           | `true`, pokud je hodnota neprázdným řetězcem                                   |
| `includes(array, value)`            | `true`, pokud pole obsahuje danou hodnotu                                      |
| `includesEvery(array, prop, value)` | `true`, pokud vlastnost každé položky zahrnuje danou hodnotu                   |
| `every(array, prop)`                | `true`, pokud je vlastnost u každé položky pravdivá (truthy)                   |
| `everyDefined(array, prop)`         | `true`, pokud je vlastnost definována u každé položky                          |
| `everyEquals(array, prop, value)`   | `true`, pokud se vlastnost rovná hodnotě u každé položky                       |
| `some(array, prop)`                 | `true`, pokud je vlastnost pravdivá (truthy) alespoň u jedné položky           |
| `someDefined(array, prop)`          | `true`, pokud je vlastnost definována alespoň u jedné položky                  |
| `someEquals(array, prop, value)`    | `true`, pokud se vlastnost rovná hodnotě alespoň u jedné položky               |
| `someNonEmptyString(array, prop)`   | `true`, pokud má vlastnost alespoň u jedné položky hodnotu neprázdného řetězce |
| `none(array, prop)`                 | `true`, pokud je vlastnost u všech položek nepravdivá (falsy)                  |
| `noneDefined(array, prop)`          | `true`, pokud je vlastnost u všech položek nedefinovaná                        |
| `noneEquals(array, prop, value)`    | `true`, pokud se vlastnost nerovná hodnotě u žádné položky                     |
