@danyarubcov/adaptivitynavigation
TypeScript icon, indicating that this package has built-in type declarations

1.10.3 • Public • Published

Для чего нужна эта библиотека?

  • Для адаптивного ui навигации в зависимости от размеров экрана (В соответствии с VKUI StyleGuide)

Установка

Используя npm:

$ npm i @danyarubcov/adaptivitynavigation

Используя yarn:

$ yarn add @danyarubcov/adaptivitynavigation

Использование

NavigationProvider

Для начала нужно обернуть приложение в NavigationProvider

// App.jsx
import { NavigationProvider } from "@danyarubcov/adaptivitynavigation";
// import activeStory from your storage (Redux or any)
const App = () => {
  <NavigationProvider activeStory={activeStory}>
    <App />
  </NavigationProvider>;
};

Важно

Библиотека базируется на хуке useAdaptivity, поэтому Ваше приложение должно быть обернуто в AdaptivityProvider

Пример
// index.js
import ReactDOM from "react-dom";
import { AdaptivityProvider, AppRoot } from "@vkontakte/vkui";
import App from "./App";

ReactDOM.render(
  <AdaptivityProvider>
    <AppRoot>
      <App />
    </AppRoot>
  </AdaptivityProvider>,
  document.getElementById("root")
);

buttons

NavigationProvider ожидает в себе набор кнопок, которые в дальнейшем будут использоваться для навигации. NavigationButton нужно передать в пропс buttons, который инкапсулирует поведение TabbarItem и Cell

Пример

// App.jsx
import {
  NavigationProvider,
  NavigationButton,
} from "@danyarubcov/adaptivitynavigation";
// import activeStory from your storage (Redux or any)
const App = () => {
  <NavigationProvider
    activeStory={activeStory}
    buttons={
      <Fragment>
        <NavigationButton
          selected={activeStory === "main"}
          data-story="main"
          onClick={(e) =>
            alert("You click to button " + e.currentTarget.dataset.story)
          }
          text="Сервисы"
        >
          <Icon28ServicesOutline />
        </NavigationButton>
        <NavigationButton
          selected={activeStory === "clips"}
          data-story="clips"
          onClick={(e) =>
            alert("You click to button " + e.currentTarget.dataset.story)
          }
          text="Клипы"
        >
          <Icon28ClipOutline />
        </NavigationButton>
      </Fragment>
    }
  >
    <App />
  </NavigationProvider>;
};

Package Sidebar

Install

npm i @danyarubcov/adaptivitynavigation

Weekly Downloads

0

Version

1.10.3

License

MIT

Unpacked Size

11.7 kB

Total Files

17

Last publish

Collaborators

  • danyarubcov