0.2.1 • Published 3 years ago

@n3/react-page-blocks v0.2.1

Weekly downloads
47
License
MIT
Repository
gitlab
Last release
3 years ago

@n3/react-page-blocks

Шапка и сайдбар для приложений на базе @n3/kit.

import {
  Header,
  Sidebar,
  Layout,
  LayoutWithoutSidebar,
  useLayoutState,
  LocalStorageLayout,
  parseLayoutFromLocalStorage,
} from '@n3/react-page-blocks';
  • Header - шапка страницы
  • Sidebar - сайдбар страницы
  • Layout - компонент, включающий в себя шапку и сайдбар
  • LayoutWithoutSidebar - компонент, включающий в себя шапку и Grid, центрирующий контент
  • LocalStorageLayout - аналогичен Layout, а также хранит состояние открытости/закрытости пунктов в localStorage
  • useLayoutState - хук для получения состояния Layout (возвращает null, если Layout не испоьзуется)
  • parseLayoutFromLocalStorage - парсинг состояния Layout из localStorage

Props

Header

НазваниеОбязательностьТипЗначение по умолчаниюОписание
logo+HeaderLogoParamsЛоготип в левой части
isUserBlockHiddenbooleanfalseСкрыть ли блок текущего пользователя (аватар + имя + дропдаун с действиями)
showAvatarbooleanОтображать ли аватар текущего пользователя
avatarstringАватар текщего пользователя (отобразится плейсхолдер в случае, если аватар не задан)
userNameReactNodeИмя текщего пользователя
dropdownOptionsHeaderDropdownOption[]Опции выпадающего меню
menuHeaderMenuItem[]Левое меню
rightMenuHeaderMenuItem[]Правое меню
withPusherbooleanfalseДобавить ли dom-элемент для отступа сверху страницы, равного высоте шапки
counters{ key: string: number; }Счётчики
countersMaxNumbernumberМаксимальное число в счётчиках
collapsiblebooleanОтображение иконки раскрытия бокового меню на меленьких разрешениях
openMenu() => voidФункция раскрытия бокового меню

Sidebar

НазваниеОбязательностьТипЗначение по умолчаниюОписание
menuCollapsiblebooleantrueВозможность схлопывания меню в иконки
linksGroups+(SidebarLinksGroup | SidebarLink)[]Описание пунктов
counters{ key: string: number; }"{}"Счётчики
countersMaxNumbernumbernullМаксимальное число в счётчиках
showCountersInOpenedStatebooleanfalseПоказывать ли счётчики у открытых групп
collapsiblebooleantrueВозможность скрытия меню на маленьких экранах
collapsedbooleantrueСкрыто ли меню на маленьком экране
openedGroups{ key: string: boolean; }"{}"Объект, показывающий, какие группы открыты
openedByDefaultbooleanfalseОткрыты ли по умолчанию группы, id которых отстуствуют в openedGroups
menuCollapsedbooleanfalseСхлопнуто ли меню в иконки
closeMenu() => void"(): void => {}"Обработчик закрытия меню
setMenuCollapsed(nextValue: boolean) => void"(): void => {}"Обработчик схлопывания меню в иконки@param nextValue - новое состояние схлопнутости
onToggleGroup(groupId: string, opened: boolean) => void"(): void => {}"Обработчик скрытия/раскрытия пунктов меню@param groupId - id группы@param opened - новое состояние открытости/закрытости

Параметры link

НазваниеОбязательностьТипЗначение по умолчаниюОписание
type+"link"
id+string
title+ReactNodeЗаголовок ссылки
renderIconRenderSidebarIconnullФункция рендера иконки первого уровня
payload+{ url: string; target?: string; isAnchor?: boolean; }

Параметры group

НазваниеОбязательностьТипЗначение по умолчаниюОписание
type+"group"
id+string
title+ReactNodeЗаголовок группы
renderIconRenderSidebarIconnullФункция рендера иконки первого уровня
payload+{ links: (SidebarLinksGroup | SidebarLink)[]; }

Layout

НазваниеОбязательностьТипЗначение по умолчаниюОписание
header+HeaderParamsОбъект props компонента Header
sidebar+SidebarParamsОбъект props компонента Sidebar
collapsiblebooleantrueВозможность скрытия меню на маленьких экранах
menuCollapsedbooleanfalseСхлопнуто ли меню в иконки
openedGroups{ key: string: boolean; }"{}"Объект, показывающий, какие группы открыты
counters{ key: string: number; }"{}"Счётчики
countersMaxNumbernumbernullМаксимальное число в счётчиках
children+((renderProps: LayoutContextValue) => ReactNode)Функция рендера контента@param renderProps
onCollapseMenu(nextValue: boolean) => void"(): void => {}"Обработчик схлопывания меню в иконки@param nextValue - новое состояние схлопнутости
onToggleGroup(groupId: string, opened: boolean) => void"(): void => {}"Обработчик скрытия/раскрытия пунктов меню@param groupId - id группы@param opened - новое состояние открытости/закрытости

LayoutWithoutSidebar

НазваниеОбязательностьТипЗначение по умолчаниюОписание
header+HeaderParamsОбъект props компонента Header
counters{ key: string: number; }{}Счётчики
countersMaxNumbernumbernullМаксимальное число в счётчиках
hasGridbooleantrueОборачивать ли содержимое в компонент Grid
gridGridProps{}Объект props компонента Grid
childrenReactNodenullКонтент