0.12.6 • Published 1 month ago

@snack-uikit/notification v0.12.6

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
1 month ago

Notification

Installation

npm i @snack-uikit/notification

Changelog

TODO:

  • remove custom hook for droplist keyboard handles

Example

import { NotificationCard, NotificationPanel } from '@snack-uikit/notification';

const cards = [
  {
    id: 'cardId',
    label: ['Category', 'Subcategory'].join('・'),
    appearance: 'errorCritical',
    title: 'Title truncate two line',
    content: `Demo content.`,
    link: {
      text: 'Link to detailed information',
      href: '#',
    },
    date: 'DD.MM.YYYY HH:MM',
    actions: [
      {
        option: 'action 1',
        onClick: handleActionClick,
      },
      {
        option: 'action 2',
        onClick: handleActionClick,
      },
    ],
  }
];

// ...

<NotificationPanel
  title='Notifications'
  triggerElement={<ButtonTonal label='open' />}
  readAllButton={{
    label: 'Mark all as read',
    onClick() {},
  }}
  chips={[
    {
      label: 'all',
      checked: true,
      onChange() { /* */ },
    },
    {
      label: 'unread',
      checked: false,
      onChange() { /* */ },
    },
  ]}
  content={
    !cards.length ? (
      <NotificationPanel.Blank
        icon={PlaceholderSVG}
        title='No notifications'
        description={'Here you will see new event notifications\nwhen something happens'}
      />
    ) : (
      cards.map(card => <NotificationCard {...card} key={card.id} />)
    )
  }
/>

NotificationCard

Компонент карточки уведомления

Props

nametypedefault valuedescription
date*string-Дата уведомления
content*ReactNode-Контент уведомления
title*string-Заголовок уведомления
id*string-Идентификатор уведомления
appearanceenum Appearance: "neutral", "error", "errorCritical", "warning", "success"neutralТип уведомления
labelstring-Лейбл перед заголовком
unreadboolean-Управление состоянием прочитано/не прочитано
linkOmit<LinkProps, "data-test-id" \| "appearance" \| "size" \| "textMode">-Ссылка
onClickMouseEventHandler<HTMLDivElement>-Колбэк клика по карточке
onVisible(cardId: string) => void-Колбэк при попадании карточки в область видимости на 80%
primaryButtonOmit<ButtonTonalProps, "data-test-id" \| "appearance" \| "size">-Кнопка главного действия у карточки
secondaryButtonOmit<ButtonSimpleProps, "data-test-id" \| "appearance" \| "size">-Кнопка второстепенного действия у карточки
actionsAction[]-Дополнительные действия у карточки
classNamestring-CSS-класс

NotificationPanel

Компонент панели для уведомлений

Props

nametypedefault valuedescription
title*string-Заголовок панели
settingsNotificationPanelSettingsProps-Кнопка настроек и выпадающий список
chipsOmit<ChipToggleProps, "data-test-id" \| "size">[]-Чипы для фильтрации
readAllButtonOmit<ButtonFunctionProps, "data-test-id"> & { onClick: MouseEventHandler<HTMLElement>; }-Кнопка в "шапке" панели
footerButton{ label: string; onClick: MouseEventHandler<HTMLButtonElement>; }-Кнопка внизу панели
classNamestring-CSS-класс
loadingboolean-Состояние загрузки
contentReactNode-Контент для отрисовки (e.g NotificationCard | NotificationPanel.Blank)
skeletonsAmountnumber2Количество скелетонов карточек для отображения при загрузке
scrollEndRefRefObject<HTMLDivElement>-Ссылка на элемент, обозначающий самый конец прокручиваемого списка
scrollContainerRefRefObject<HTMLElement>-Ссылка на контейнер, который скроллится

NotificationPanel.Blank

Props

nametypedefault valuedescription
titlestring-Заголовок
classNamestring-CSS-класс
iconPick<IconPredefinedProps, "appearance" \| "icon" \| "decor">-Иконка
descriptionReactNode-Подзаголовок

NotificationPanel.Divider

Props

nametypedefault valuedescription
text*string-Текст разделителя
classNamestring-CSS-класс

NotificationPanelPopover

Компонент-обёртка для NotificationPanel для использования как выпадающий элемент

Props

nametypedefault valuedescription
children*ReactNode \| ChildrenFunction-Триггер поповера (подробнее читайте ниже)
content*ReactElement<NotificationPanelProps, typeof NotificationPanel>-
contentClassNamestring-CSS-класс для элемента содержащего контент
classNamestring-CSS-класс
triggerClassNamestring-CSS-класс триггера
openboolean-Управляет состоянием показан/не показан.
onOpenChange(isOpen: boolean) => void-Колбек отображения компонента. Срабатывает при изменении состояния open.
hoverDelayOpennumber-Задержка открытия по ховеру
hoverDelayClosenumber-Задержка закрытия по ховеру
offsetnumber0Отступ поповера от его триггер-элемента (в пикселях).
closeOnEscapeKeybooleantrueЗакрывать ли по нажатию на кнопку Esc
triggerClickByKeysbooleantrueВызывается ли попоповер по нажатию клавиш Enter/Space (при trigger = click)
triggerRefForwardedRef<HTMLElement \| ReferenceType>-Ref ссылка на триггер
triggerenum Trigger: "click", "hover", "focusVisible", "focus", "hoverAndFocusVisible", "hoverAndFocus", "clickAndFocusVisible"clickУсловие отображения поповера: - click - открывать по клику - hover - открывать по ховеру - focusVisible - открывать по focus-visible - focus - открывать по фокусу - hoverAndFocusVisible - открывать по ховеру и focus-visible - hoverAndFocus - открывать по ховеру и фокусу - clickAndFocusVisible - открывать по клику и focus-visible
placementenum Placement: "left", "left-start", "left-end", "right", "right-start", "right-end", "top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end"bottom-endПоложение поповера относительно своего триггера (children).
0.9.8

8 months ago

0.9.7

8 months ago

0.9.9

8 months ago

0.9.4

8 months ago

0.9.3

8 months ago

0.9.6

8 months ago

0.9.5

8 months ago

0.10.9

6 months ago

0.10.1

7 months ago

0.10.2

7 months ago

0.10.3

7 months ago

0.10.4

7 months ago

0.10.5

7 months ago

0.10.6

7 months ago

0.10.7

7 months ago

0.10.8

7 months ago

0.10.0

8 months ago

0.10.18

5 months ago

0.10.19

4 months ago

0.10.14

5 months ago

0.10.15

5 months ago

0.10.16

5 months ago

0.10.17

5 months ago

0.10.10

6 months ago

0.10.11

6 months ago

0.10.12

6 months ago

0.10.13

5 months ago

0.10.20

4 months ago

0.10.21

4 months ago

0.10.22

4 months ago

0.10.23

4 months ago

0.10.24

4 months ago

0.11.10

3 months ago

0.9.10

8 months ago

0.11.8

4 months ago

0.11.9

4 months ago

0.11.0

4 months ago

0.11.1

4 months ago

0.11.2

4 months ago

0.11.3

4 months ago

0.11.4

4 months ago

0.11.5

4 months ago

0.11.6

4 months ago

0.11.7

4 months ago

0.9.2

8 months ago

0.12.0

3 months ago

0.12.1

2 months ago

0.12.2

2 months ago

0.12.3

2 months ago

0.12.4

2 months ago

0.12.5

2 months ago

0.12.6

2 months ago

0.8.0

9 months ago

0.9.0

9 months ago

0.9.1

9 months ago

0.7.59

9 months ago

0.7.58

9 months ago

0.7.57

9 months ago

0.7.55

10 months ago

0.7.54

10 months ago

0.7.56

9 months ago

0.7.53

10 months ago

0.7.33

1 year ago

0.7.32

1 year ago

0.7.35

1 year ago

0.7.34

1 year ago

0.7.31

1 year ago

0.7.30

1 year ago

0.7.37

1 year ago

0.7.36

1 year ago

0.7.39

1 year ago

0.7.38

1 year ago

0.7.29

1 year ago

0.7.28

1 year ago

0.7.27

1 year ago

0.7.51

10 months ago

0.7.50

11 months ago

0.7.52

10 months ago

0.7.44

11 months ago

0.7.43

12 months ago

0.7.46

11 months ago

0.7.45

11 months ago

0.7.40

12 months ago

0.7.42

12 months ago

0.7.41

12 months ago

0.7.48

11 months ago

0.7.47

11 months ago

0.7.49

11 months ago

0.7.26

1 year ago

0.7.25

1 year ago

0.7.24

1 year ago

0.7.23

1 year ago

0.7.22

1 year ago

0.7.21

1 year ago

0.7.20

1 year ago

0.7.19

1 year ago

0.7.18

1 year ago

0.7.17

1 year ago

0.7.16

1 year ago

0.7.15

1 year ago

0.7.14

1 year ago

0.7.13

1 year ago

0.7.12

1 year ago

0.7.11

1 year ago

0.7.10

1 year ago

0.7.9

1 year ago

0.7.8

1 year ago

0.7.7

1 year ago

0.7.6

1 year ago

0.7.4

1 year ago

0.7.3

1 year ago

0.7.5

1 year ago

0.7.2

1 year ago

0.7.1

1 year ago

0.7.0

1 year ago

0.6.17

1 year ago

0.6.16

1 year ago

0.6.15

1 year ago

0.6.14

1 year ago

0.6.13

1 year ago

0.6.12

1 year ago

0.6.11

1 year ago

0.6.9

1 year ago

0.6.10

1 year ago

0.6.8

1 year ago

0.6.7

1 year ago

0.6.6

1 year ago

0.6.5

1 year ago

0.6.4

1 year ago

0.6.3

1 year ago

0.6.2

1 year ago

0.6.1

1 year ago

0.5.5

1 year ago

0.5.4

2 years ago

0.5.3

2 years ago

0.5.2

2 years ago

0.5.1

2 years ago

0.5.0

2 years ago

0.4.2

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago