Skip to content
This repository has been archived by the owner on Jan 14, 2022. It is now read-only.

Latest commit

 

History

History
40 lines (34 loc) · 1.17 KB

lock.md

File metadata and controls

40 lines (34 loc) · 1.17 KB

Блокировка навигации

Например, вам нужно не выпускать пользователя из игры: с этой задачей отлично справится блокировка. Есть два типа блокировки:

  • LockMode.ALL - блокирует абсолютно все методы навигации
  • LockMode.POPSTATE - блокирует только попытки навигации пользователем с помощью кнопок "Назад" и "Вперёд" в браузере. Работает очень нестабильно

Пример:

type Props = {
  nav: string;
};

const Game: FC<Props> = ({ nav }) => {
  const { back, lock, unlock } = useRouter();

  useEffect(() => lock(LockMode.ALL), []);

  return (
    <Panel nav={nav}>
      <PanelHeader
        left={<PanelHeaderBack onClick={back} />}
      >
        Игра
      </PanelHeader>

      <Div>
        {/* Вжух, гонки! */}
      </Div>

      <Div>
        <Button
          size="l"
          onClick={unlock}
        >
          Разблокировать
        </Button>
      </Div>
    </Panel>
  );
};