Как добавить прослушиватель событий в Figma currentPage

Я написал плагин с пользовательским интерфейсом для Figma, используя figma-api и TypeScript. Проект состоит из двух основных файлов:

  • code.ts для вызова figma-api

  • ui.html с участием <script>...</script> с пользовательским интерфейсом плагина.

Мой плагин работает с данными выбора на текущей странице, поэтому я отправляю с code.ts в ui данные, например, этого объекта:

figma.currentPage.selection[0]

Как я могу добавить прослушиватель событий в figma.currentPage? Например, если пользователь выбрал какой-то другой элемент на доске Figma, figma.currentPage.selection изменится, и я хочу отправить новые данные в ui,

У тебя есть идеи?

3 ответа

Думаю, это ответ.

figma.on('selectionchange', () => {
  console.log(figma.currentPage.selection);
});

https://www.figma.com/plugin-docs/api/properties/figma-on/

Вероятно, не лучший подход, а скорее быстрый взлом, который работает. Я ищу тот же ответ, но сейчас я делаю это.

По сути, назначьте начальный слой переменной. Затем каждые несколько секунд проверяйте наличие изменений, и если var отличается от предыдущего, назначьте новый.

Я надеюсь, что это поможет, пока мы не получим нормальный способ сделать это.

    var selected;

    selected = figma.currentPage.selection[0];

    setInterval(() => {

      var selectedNew = figma.currentPage.selection[0];

      if (selected != selectedNew) {

        selected = selectedNew;

      }

    }, 3000)

Идеальный способ сделать это — использовать

      figma.on("selectionchange" , () => {
// insert your code here
})

Другие вопросы по тегам