import {Meta} from '@storybook/addon-docs/blocks'

<Meta title='@dxtmisha/ru/figma-code/Classes/FigmaFramesSelected - Управление выбранными фреймами'/>

# Класс FigmaFramesSelected

Статический утилитарный класс для управления, кэширования и синхронизации списка выбранных фреймов в среде плагина Figma. Он отвечает за долговременное хранение и двустороннюю связь между плагином и UI плагина относительно состояния выбора фреймов.

## Ключевые особенности

- **Постоянное хранение** — Использует `FigmaStorage` для сохранения списка идентификаторов выбранных фреймов между перезагрузками плагина.
- **Автоматическое кэширование** — Эффективно управляет кэшем выбранных идентификаторов по принципу синглтона для быстрого доступа.
- **Интеграция с мессенджером** — Упрощает двустороннюю связь для получения и обновления состояния выбора.

## Статические методы

### `has`

Проверяет, выбран ли в данный момент фрейм с указанным идентификатором.

**Параметры:**
- `id: string` — Уникальный идентификатор узла Figma (ID фрейма).

**Возвращает:** `boolean` — `true`, если фрейм выбран, `false` в противном случае.

```typescript
const has = FigmaFramesSelected.has('123:456')
```

### `get`

Получает текущий список идентификаторов выбранных фреймов, используя кэш при его наличии.

**Возвращает:** `string[]` — Массив идентификаторов выбранных фреймов.

```typescript
const selectedIds = FigmaFramesSelected.get()
```

### `toggle`

Переключает состояние выбора фрейма.

**Параметры:**
- `id: string` — Уникальный идентификатор узла Figma (ID фрейма).
- `selected: boolean` — Выбрать (`true`) или отменить выбор (`false`) фрейма.

**Возвращает:** `void`

```typescript
FigmaFramesSelected.toggle('123:456', true)
```

### `add`

Добавляет идентификатор фрейма в список выбора и обновляет хранилище.

**Параметры:**
- `id: string` — Уникальный идентификатор узла Figma (ID фрейма) для добавления.

**Возвращает:** `void`

```typescript
FigmaFramesSelected.add('123:456')
```

### `remove`

Удаляет идентификатор фрейма из списка выбора и обновляет хранилище.

**Параметры:**
- `id: string` — Уникальный идентификатор узла Figma (ID фрейма) для удаления.

**Возвращает:** `void`

```typescript
FigmaFramesSelected.remove('123:456')
```

### `send`

Настраивает прослушиватели событий через мессенджер плагина для обработки запросов списка выбора и обновлений из UI.

**Возвращает:** `void`

```typescript
FigmaFramesSelected.send()
```
