@_themis/usescheme 中文文档教程

发布于 4年前 浏览 26 项目主页 更新于 3年前

Возможности

  • Установка темы
  • Смена текущей темы на альтернативную

Установка

Используя npm:

$ npm i @_themis/usescheme

Используя 纱线:

$ yarn add @_themis/usescheme

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

SchemeProvider

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

// index.js
import { SchemeProvider } from "@_themis/usescheme";

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

Важно

SchemeProvider инкапсулирует внутри себя логик у получения и установки темы от bridge。 Онтак же внутри себя работает с компонентом VKUI ConfigProvider,以及 принимает в себя все валидные для него сва.йств Если ваше приложение у же обёрнуто в ConfigProvider, повторите эти ш аги:

  • Замените ConfigProvider на SchemeProvider
  • Передайте ему пропсы, которые были до этого, исключая scheme и appearance

Было:

// index.js
ReactDOM.render(
  <ConfigProvider isWebView={true} scheme={...}>
    <App />
  </ConfigProvider>,
  document.getElementById("root")
);

Стало:

// index.js
import { SchemeProvider } from "@_themis/usescheme";

ReactDOM.render(
  <SchemeProvider isWebView={true}>
    <App />
  </SchemeProvider>,
  document.getElementById("root")
);

useScheme

Хук useScheme возвращает объ Описание его свойств:

СвойствоОписание
schemeСодержит в себе текущую тему приложения (space_gray или bright_light)
setSchemeУстанавливает текущую тему приложения (space_gray или bright_light)
toggleSchemeУстанавливает альтернативную тему.

Пример

// settings.js
import { useScheme } from "@_themis/usescheme";

export default function Settings() {
  const { scheme, toggleScheme } = useScheme();

  return (
    <Panel id="settings">
        <PanelHeader>Настройки</PanelHeader>

        <SimpleCell after={<Switch onClick={toggleScheme} checked={scheme === "space_gray"} />}>
            Тёмная тема
        </SimpleCell>
    </Panel>
  );
};

Возможности

  • Установка темы
  • Смена текущей темы на альтернативную

Установка

Используя npm:

$ npm i @_themis/usescheme

Используя yarn:

$ yarn add @_themis/usescheme

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

SchemeProvider

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

// index.js
import { SchemeProvider } from "@_themis/usescheme";

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

Важно

SchemeProvider инкапсулирует внутри себя логику получения и установки темы от bridge. Он так же внутри себя работает с компонентом VKUI ConfigProvider, и принимает в себя все валидные для него свойства. Если ваше приложение уже обёрнуто в ConfigProvider, повторите эти шаги:

  • Замените ConfigProvider на SchemeProvider
  • Передайте ему пропсы, которые были до этого, исключая scheme и appearance

Было:

// index.js
ReactDOM.render(
  <ConfigProvider isWebView={true} scheme={...}>
    <App />
  </ConfigProvider>,
  document.getElementById("root")
);

Стало:

// index.js
import { SchemeProvider } from "@_themis/usescheme";

ReactDOM.render(
  <SchemeProvider isWebView={true}>
    <App />
  </SchemeProvider>,
  document.getElementById("root")
);

useScheme

Хук useScheme возвращает объект. Описание его свойств:

СвойствоОписание
schemeСодержит в себе текущую тему приложения (space_gray или bright_light)
setSchemeУстанавливает текущую тему приложения (space_gray или bright_light)
toggleSchemeУстанавливает альтернативную тему.

Пример

// settings.js
import { useScheme } from "@_themis/usescheme";

export default function Settings() {
  const { scheme, toggleScheme } = useScheme();

  return (
    <Panel id="settings">
        <PanelHeader>Настройки</PanelHeader>

        <SimpleCell after={<Switch onClick={toggleScheme} checked={scheme === "space_gray"} />}>
            Тёмная тема
        </SimpleCell>
    </Panel>
  );
};
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文