isActivated

Метод isActivated библиотеки Driver.js предназначен для проверки состояния текущего экземпляра драйвера — активен ли он в данный момент. Этот метод возвращает логическое значение (true или false), что позволяет программно контролировать запуск и завершение интерактивных туров.

const driver = new Driver();

console.log(driver.isActivated()); // false
driver.start();
console.log(driver.isActivated()); // true

Основные особенности

  • Тип возвращаемого значения: Boolean.

  • Возвращаемое значение:

    • true — если тур активен и элементы подсветки отображаются на странице.
    • false — если тур завершён или ещё не запущен.
  • Метод не принимает аргументов.

Сценарии применения

  1. Контроль повторного запуска тура Перед вызовом start() можно проверить, активен ли уже тур, чтобы избежать наложения подсветок и конфликтов с событиями:

    if (!driver.isActivated()) {
        driver.start();
    }
  2. Условное отображение подсказок В сложных интерфейсах с динамическими элементами проверка состояния позволяет корректно запускать подсказки:

    document.querySelector("#help-btn").addEventListener("click", () => {
        if (!driver.isActivated()) {
            driver.start();
        }
    });
  3. Синхронизация с другими компонентами Можно отслеживать состояние драйвера для временной блокировки интерфейса:

    if (driver.isActivated()) {
        disableFormInteractions();
    } else {
        enableFormInteractions();
    }

Взаимодействие с другими методами

Метод isActivated тесно связан с жизненным циклом Driver.js:

  • start() — активирует тур, после чего isActivated() вернёт true.
  • reset() — завершает тур и сбрасывает состояние, isActivated() возвращает false.
  • highlight() — подсвечивает элемент, при этом isActivated() остаётся true до вызова reset() или завершения тура.
  • next() / previous() — переход между шагами не влияет на возвращаемое значение isActivated(), пока тур активен.

Примеры расширенного использования

Проверка перед динамическим обновлением шагов:

if (driver.isActivated()) {
    driver.reset();
    driver.defineSteps([
        { element: "#step1", popover: { title: "Шаг 1", description: "Описание шага 1" } },
        { element: "#step2", popover: { title: "Шаг 2", description: "Описание шага 2" } }
    ]);
    driver.start();
}

Интеграция с таймерами и событиями:

setInterval(() => {
    if (!driver.isActivated() && shouldStartTour()) {
        driver.start();
    }
}, 1000);

Рекомендации по использованию

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

Метод isActivated является простым, но критически важным инструментом для контроля состояния интерактивных подсказок и правильного управления жизненным циклом Driver.js.