Notification コンポーネントを使用すると、プッシュ(またはローカル)システム通知のように見える必要なメッセージを表示できます。
以下のようなコンポーネントが含まれています
通知
名前 | 型 | デフォルト | 説明 |
---|---|---|---|
button | ReactNode | 通知ボタンのコンテンツ | |
colors | object | Tailwind CSS カラークラスを持つオブジェクト | |
colors.bgIos | string | 'bg-white dark:bg-[#1e1e1e]' | iOS テーマでの通知の背景色 |
colors.bgMaterial | string | 'bg-md-light-surface-5 dark:bg-md-dark-surface-5' | Material テーマでの通知の背景色 |
colors.deleteIconIos | string | 'fill-stone-400 active:fill-stone-200 dark:fill-stone-500 dark:active:fill-stone-700' | iOS テーマでの通知の削除アイコンの色 |
colors.deleteIconMd | string | 'text-md-light-on-surface-variant dark:text-md-dark-on-surface-variant' | Material テーマでの通知の削除アイコンの色 |
colors.subtitleIos | string | 'text-black dark:text-white' | iOS テーマでの通知のサブタイトルの色 |
colors.textMaterial | string | 'text-md-light-on-surface-variant dark:text-md-dark-on-surface-variant' | Material テーマでの通知のテキストの色 |
colors.titleIos | string | 'text-black dark:text-white' | iOS テーマでの通知のタイトルの色 |
colors.titleRightIos | string | 'text-opacity-45 text-black dark:text-white dark:text-opacity-45' | iOS テーマでの通知の右テキストの色 |
colors.titleRightMd | string | 'text-md-light-on-surface-variant before:bg-md-light-on-surface-variant dark:text-md-dark-on-surface-variant before:dark:bg-md-dark-on-surface-variant' | Material テーマでの通知の右テキストの色 |
component | string | 'div' | コンポーネントの HTML 要素 |
icon | ReactNode | 通知アイコンの HTML レイアウトまたは画像 | |
opened | boolean | undefined | 通知の開閉を許可し、初期状態を設定します |
subtitle | ReactNode | 通知の「サブタイトル」領域の内容 | |
text | ReactNode | 通知の「テキスト」領域の内容 | |
title | ReactNode | 通知の「タイトル」領域の内容 | |
titleRightText | ReactNode | 通知の「右タイトルテキスト」領域の内容 | |
translucent | boolean | true | iOS テーマで通知の背景を半透明( |
onClose | function(e) | 閉じる要素のクリックハンドラー |
import React, { useState, useEffect } from 'react';import {Page,Navbar,NavbarBackLink,Block,Notification,Button,Dialog,DialogButton,} from 'konsta/react';import DemoIcon from '../components/DemoIcon';export default function NotificationPage() {const [notificationFull, setNotificationFull] = useState(false);const [notificationWithButton, setNotificationWithButton] = useState(false);const [notificationCloseOnClick, setNotificationCloseOnClick] =useState(false);const [notificationCallbackOnClose, setNotificationCallbackOnClose] =useState(false);const [alertOpened, setAlertOpened] = useState(false);const openNotification = (setter) => {setNotificationFull(false);setNotificationWithButton(false);setNotificationCloseOnClick(false);setNotificationCallbackOnClose(false);setter(true);};useEffect(() => {let timer;if (notificationFull) {timer = setTimeout(() => {setNotificationFull(false);}, 3000);}return () => clearTimeout(timer);}, [notificationFull]);return (<Page><Navbartitle="Notification"/><Notificationopened={notificationFull}icon={<DemoIcon />}title="Konsta UI"titleRightText="now"subtitle="This is a subtitle"text="This is a simple notification message"/><Notificationopened={notificationWithButton}icon={<DemoIcon />}title="Konsta UI"buttononClick={() => setNotificationWithButton(false)}subtitle="Notification with close button"text="Click (x) button to close me"/><Notificationopened={notificationCloseOnClick}icon={<DemoIcon />}title="Konsta UI"titleRightText="now"subtitle="Notification with close on click"text="Click me to close"onClick={() => setNotificationCloseOnClick(false)}/><Notificationopened={notificationCallbackOnClose}icon={<DemoIcon />}title="Konsta UI"titleRightText="now"subtitle="Notification with close on click"text="Click me to close"onClick={() => {setNotificationCallbackOnClose(false);setAlertOpened(true);}}/><Dialogopened={alertOpened}onBackdropClick={() => setAlertOpened(false)}title="Konsta UI"content="Notification closed"buttons={<DialogButton onClick={() => setAlertOpened(false)}>Ok</DialogButton>}/><Block strongIos outlineIos className="space-y-4"><p>Konsta UI comes with simple Notifications component that allows you toshow some useful messages to user and request basic actions.</p><p><Button onClick={() => openNotification(setNotificationFull)}>Full layout notification</Button></p><p><Button onClick={() => openNotification(setNotificationWithButton)}>With Close Button</Button></p><p><Button onClick={() => openNotification(setNotificationCloseOnClick)}>Click to Close</Button></p><p><ButtononClick={() => openNotification(setNotificationCallbackOnClose)}>Callback on Close</Button></p></Block></Page>);}