@tendaui/react 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +2 -0
- package/es/_chunks/dep-0QH2Ee4R.js +34 -0
- package/es/_chunks/dep-0QH2Ee4R.js.map +1 -0
- package/es/_chunks/dep-B7HmDtze.js +199 -0
- package/es/_chunks/dep-B7HmDtze.js.map +1 -0
- package/es/_chunks/dep-BH5n5r1M.js +55 -0
- package/es/_chunks/dep-BH5n5r1M.js.map +1 -0
- package/es/_chunks/dep-BP0-apUT.js +9 -0
- package/es/_chunks/dep-BP0-apUT.js.map +1 -0
- package/es/_chunks/dep-C1XcmShP.js +18 -0
- package/es/_chunks/dep-C1XcmShP.js.map +1 -0
- package/es/_chunks/dep-C36au4Ip.js +104 -0
- package/es/_chunks/dep-C36au4Ip.js.map +1 -0
- package/es/_chunks/dep-CgyDw_YI.js +20 -0
- package/es/_chunks/dep-CgyDw_YI.js.map +1 -0
- package/es/_chunks/dep-CoIiHOgo.js +162 -0
- package/es/_chunks/dep-CoIiHOgo.js.map +1 -0
- package/es/_chunks/dep-Cwish4GD.js +29 -0
- package/es/_chunks/dep-Cwish4GD.js.map +1 -0
- package/es/_chunks/dep-CzLhKWCf.js +56 -0
- package/es/_chunks/dep-CzLhKWCf.js.map +1 -0
- package/es/_chunks/dep-D-UKOauR.js +12 -0
- package/es/_chunks/dep-D-UKOauR.js.map +1 -0
- package/es/_chunks/dep-D6YxJv-F.js +31 -0
- package/es/_chunks/dep-D6YxJv-F.js.map +1 -0
- package/es/_chunks/dep-D7LanWes.js +171 -0
- package/es/_chunks/dep-D7LanWes.js.map +1 -0
- package/es/_chunks/dep-D8jki30S.js +31 -0
- package/es/_chunks/dep-D8jki30S.js.map +1 -0
- package/es/_chunks/dep-DB5wmwh1.js +48 -0
- package/es/_chunks/dep-DB5wmwh1.js.map +1 -0
- package/es/_chunks/dep-DGvfel3I.js +16 -0
- package/es/_chunks/dep-DGvfel3I.js.map +1 -0
- package/es/_chunks/dep-DHWwZ2Nj.js +139 -0
- package/es/_chunks/dep-DHWwZ2Nj.js.map +1 -0
- package/es/_chunks/dep-DN7d1SzH.js +24 -0
- package/es/_chunks/dep-DN7d1SzH.js.map +1 -0
- package/es/_chunks/dep-DZ_0EvBk.js +440 -0
- package/es/_chunks/dep-DZ_0EvBk.js.map +1 -0
- package/es/_chunks/dep-Dk2xX8lh.js +691 -0
- package/es/_chunks/dep-Dk2xX8lh.js.map +1 -0
- package/es/_chunks/dep-DwWrhxkd.js +26 -0
- package/es/_chunks/dep-DwWrhxkd.js.map +1 -0
- package/es/_chunks/dep-EcrDKDlu.js +1677 -0
- package/es/_chunks/dep-EcrDKDlu.js.map +1 -0
- package/es/_chunks/dep-PPA-yoAy.js +16 -0
- package/es/_chunks/dep-PPA-yoAy.js.map +1 -0
- package/es/_chunks/dep-U1T8CQY9.js +4 -0
- package/es/_chunks/dep-U1T8CQY9.js.map +1 -0
- package/es/_chunks/dep-bWaVq_y3.js +14 -0
- package/es/_chunks/dep-bWaVq_y3.js.map +1 -0
- package/es/_chunks/dep-u1x3x6MJ.js +9 -0
- package/es/_chunks/dep-u1x3x6MJ.js.map +1 -0
- package/es/alert/Alert.js +153 -0
- package/es/alert/Alert.js.map +1 -0
- package/es/alert/index.js +23 -0
- package/es/alert/index.js.map +1 -0
- package/es/alert/style/css.js +1 -0
- package/es/alert/style/index.css +172 -0
- package/es/alert/style/index.js +2 -0
- package/es/alert/style/index.js.map +1 -0
- package/es/badge/Badge.js +81 -0
- package/es/badge/Badge.js.map +1 -0
- package/es/badge/index.js +15 -0
- package/es/badge/index.js.map +1 -0
- package/es/badge/style/css.js +1 -0
- package/es/badge/style/index.css +60 -0
- package/es/badge/style/index.js +2 -0
- package/es/badge/style/index.js.map +1 -0
- package/es/button/Button.js +94 -0
- package/es/button/Button.js.map +1 -0
- package/es/button/index.js +28 -0
- package/es/button/index.js.map +1 -0
- package/es/button/style/css.js +1 -0
- package/es/button/style/index.css +1206 -0
- package/es/button/style/index.js +2 -0
- package/es/button/style/index.js.map +1 -0
- package/es/checkbox/Checkbox.js +17 -0
- package/es/checkbox/Checkbox.js.map +1 -0
- package/es/checkbox/CheckboxGroup.js +17 -0
- package/es/checkbox/CheckboxGroup.js.map +1 -0
- package/es/checkbox/index.js +22 -0
- package/es/checkbox/index.js.map +1 -0
- package/es/checkbox/style/css.js +1 -0
- package/es/checkbox/style/index.css +151 -0
- package/es/checkbox/style/index.js +2 -0
- package/es/checkbox/style/index.js.map +1 -0
- package/es/common/Check.js +101 -0
- package/es/common/Check.js.map +1 -0
- package/es/common/FakeArrow.js +28 -0
- package/es/common/FakeArrow.js.map +1 -0
- package/es/common/PluginContainer.js +19 -0
- package/es/common/PluginContainer.js.map +1 -0
- package/es/common/Portal.js +53 -0
- package/es/common/Portal.js.map +1 -0
- package/es/config-provider/ConfigContext.js +17 -0
- package/es/config-provider/ConfigContext.js.map +1 -0
- package/es/config-provider/ConfigProvider.js +45 -0
- package/es/config-provider/ConfigProvider.js.map +1 -0
- package/es/config-provider/index.js +12 -0
- package/es/config-provider/index.js.map +1 -0
- package/es/dialog/Dialog.js +575 -0
- package/es/dialog/Dialog.js.map +1 -0
- package/es/dialog/DialogCard.js +28 -0
- package/es/dialog/DialogCard.js.map +1 -0
- package/es/dialog/index.js +44 -0
- package/es/dialog/index.js.map +1 -0
- package/es/dialog/plugin.js +199 -0
- package/es/dialog/plugin.js.map +1 -0
- package/es/dialog/style/css.js +1 -0
- package/es/dialog/style/index.css +510 -0
- package/es/dialog/style/index.js +2 -0
- package/es/dialog/style/index.js.map +1 -0
- package/es/form/Form.js +190 -0
- package/es/form/Form.js.map +1 -0
- package/es/form/FormContext.js +38 -0
- package/es/form/FormContext.js.map +1 -0
- package/es/form/FormItem.js +39 -0
- package/es/form/FormItem.js.map +1 -0
- package/es/form/FormList.js +306 -0
- package/es/form/FormList.js.map +1 -0
- package/es/form/hooks/useFormItemStyle.js +10 -0
- package/es/form/hooks/useFormItemStyle.js.map +1 -0
- package/es/form/hooks/useInstance.js +326 -0
- package/es/form/hooks/useInstance.js.map +1 -0
- package/es/form/index.js +47 -0
- package/es/form/index.js.map +1 -0
- package/es/form/style/css.js +1 -0
- package/es/form/style/index.css +296 -0
- package/es/form/style/index.js +2 -0
- package/es/form/style/index.js.map +1 -0
- package/es/form/utils/index.js +75 -0
- package/es/form/utils/index.js.map +1 -0
- package/es/hooks/useDragSorter.js +137 -0
- package/es/hooks/useDragSorter.js.map +1 -0
- package/es/index.js +103 -0
- package/es/index.js.map +1 -0
- package/es/input/Input.js +375 -0
- package/es/input/Input.js.map +1 -0
- package/es/input/InputGroup.js +23 -0
- package/es/input/InputGroup.js.map +1 -0
- package/es/input/index.js +23 -0
- package/es/input/index.js.map +1 -0
- package/es/input/style/css.js +1 -0
- package/es/input/style/index.css +450 -0
- package/es/input/style/index.js +2 -0
- package/es/input/style/index.js.map +1 -0
- package/es/loading/Gradient.js +86 -0
- package/es/loading/Gradient.js.map +1 -0
- package/es/loading/Loading.js +147 -0
- package/es/loading/Loading.js.map +1 -0
- package/es/loading/index.js +24 -0
- package/es/loading/index.js.map +1 -0
- package/es/loading/style/css.js +1 -0
- package/es/loading/style/index.css +191 -0
- package/es/loading/style/index.js +2 -0
- package/es/loading/style/index.js.map +1 -0
- package/es/myform/index.js +2 -0
- package/es/myform/index.js.map +1 -0
- package/es/notification/NotifyContainer.js +78 -0
- package/es/notification/NotifyContainer.js.map +1 -0
- package/es/notification/NotifyContext.js +149 -0
- package/es/notification/NotifyContext.js.map +1 -0
- package/es/notification/NotifyItem.js +150 -0
- package/es/notification/NotifyItem.js.map +1 -0
- package/es/notification/index.js +32 -0
- package/es/notification/index.js.map +1 -0
- package/es/notification/style/css.js +1 -0
- package/es/notification/style/index.css +142 -0
- package/es/notification/style/index.js +2 -0
- package/es/notification/style/index.js.map +1 -0
- package/es/popup/Popup.js +790 -0
- package/es/popup/Popup.js.map +1 -0
- package/es/popup/index.js +28 -0
- package/es/popup/index.js.map +1 -0
- package/es/popup/style/css.js +1 -0
- package/es/popup/style/index.css +186 -0
- package/es/popup/style/index.js +2 -0
- package/es/popup/style/index.js.map +1 -0
- package/es/portal/Portal.js +48 -0
- package/es/portal/Portal.js.map +1 -0
- package/es/portal/index.js +7 -0
- package/es/portal/index.js.map +1 -0
- package/es/select/Option.js +118 -0
- package/es/select/Option.js.map +1 -0
- package/es/select/OptionGroup.js +9 -0
- package/es/select/OptionGroup.js.map +1 -0
- package/es/select/PopupContent.js +16 -0
- package/es/select/PopupContent.js.map +1 -0
- package/es/select/Select.js +709 -0
- package/es/select/Select.js.map +1 -0
- package/es/select/index.js +66 -0
- package/es/select/index.js.map +1 -0
- package/es/select/style/css.js +1 -0
- package/es/select/style/index.css +437 -0
- package/es/select/style/index.js +2 -0
- package/es/select/style/index.js.map +1 -0
- package/es/select-input/SelectInput.js +202 -0
- package/es/select-input/SelectInput.js.map +1 -0
- package/es/select-input/hook/useMultiple.js +118 -0
- package/es/select-input/hook/useMultiple.js.map +1 -0
- package/es/select-input/hook/useSingle.js +105 -0
- package/es/select-input/hook/useSingle.js.map +1 -0
- package/es/select-input/index.js +51 -0
- package/es/select-input/index.js.map +1 -0
- package/es/select-input/style/css.js +1 -0
- package/es/select-input/style/index.css +0 -0
- package/es/select-input/style/index.js +2 -0
- package/es/select-input/style/index.js.map +1 -0
- package/es/space/index.js +2 -0
- package/es/space/index.js.map +1 -0
- package/es/style/index.css +490 -0
- package/es/style/index.js +2 -0
- package/es/style/index.js.map +1 -0
- package/es/switch/Switch.js +174 -0
- package/es/switch/Switch.js.map +1 -0
- package/es/switch/index.js +28 -0
- package/es/switch/index.js.map +1 -0
- package/es/switch/style/css.js +1 -0
- package/es/switch/style/index.css +239 -0
- package/es/switch/style/index.js +2 -0
- package/es/switch/style/index.js.map +1 -0
- package/es/tag/Tag.js +1312 -0
- package/es/tag/Tag.js.map +1 -0
- package/es/tag/index.js +21 -0
- package/es/tag/index.js.map +1 -0
- package/es/tag/style/css.js +1 -0
- package/es/tag/style/index.css +236 -0
- package/es/tag/style/index.js +2 -0
- package/es/tag/style/index.js.map +1 -0
- package/es/tag-input/TagInput.js +360 -0
- package/es/tag-input/TagInput.js.map +1 -0
- package/es/tag-input/hooks/useTagList.js +167 -0
- package/es/tag-input/hooks/useTagList.js.map +1 -0
- package/es/tag-input/index.js +35 -0
- package/es/tag-input/index.js.map +1 -0
- package/es/tag-input/style/css.js +1 -0
- package/es/tag-input/style/index.css +223 -0
- package/es/tag-input/style/index.js +2 -0
- package/es/tag-input/style/index.js.map +1 -0
- package/es/tag-input/useTagList.js +167 -0
- package/es/tag-input/useTagList.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotifyContext.js","sources":["../../../components/notification/NotifyContext.tsx"],"sourcesContent":["import React, { createContext, useState, useRef, useCallback, useContext } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport NotifyContainer from \"./NotifyContainer\";\n\n// 1. 定义类型\ntype NotificationType = \"success\" | \"error\" | \"warning\" | \"info\";\n\ninterface Notification {\n id: string;\n type: NotificationType;\n message: string;\n createdAt: number;\n isRemoved: boolean;\n title: string;\n}\n\n// 2. 定义 Context 类型\ninterface NotificationContextType {\n notify: (type: NotificationType, message: Message) => void;\n success: (message: Message) => void;\n error: (message: Message) => void;\n warning: (message: Message) => void;\n info: (message: Message) => void;\n removeNotification: (id: string) => void;\n}\n\n// 3. 创建 Context\nconst NotificationContext = createContext<NotificationContextType | null>(null);\n\n// 4. 生成唯一 ID 的辅助函数\nconst generateId = () => Math.random().toString(36).substr(2, 9);\n\n// 5. Provider 组件\ninterface NotificationProviderProps {\n children: React.ReactNode;\n maxStack?: number;\n displayDuration?: number;\n position?: string;\n}\n\ntype Message = {\n title: string;\n message: string;\n};\nexport const NotificationProvider: React.FC<NotificationProviderProps> = ({\n children,\n maxStack = 5,\n displayDuration = 3000,\n position = \"top-right\"\n}) => {\n const [notifications, setNotifications] = useState<Notification[]>([]);\n const timersRef = useRef<Map<string, NodeJS.Timeout>>(new Map());\n const pausedAtRef = useRef<Map<string, number>>(new Map());\n\n // 定时器相关函数\n const clearNotificationTimer = useCallback((id: string) => {\n const timer = timersRef.current.get(id);\n if (timer) {\n clearTimeout(timer);\n timersRef.current.delete(id);\n }\n }, []);\n\n const startTimer = useCallback(\n (notification: Notification, remainingTime?: number) => {\n const duration = remainingTime ?? displayDuration;\n const timer = setTimeout(() => {\n setNotifications((prev) => prev.map((n) => (n.id === notification.id ? { ...n, isRemoved: true } : n)));\n setTimeout(() => {\n setNotifications((prev) => prev.filter((t) => t.id !== notification.id));\n clearNotificationTimer(notification.id);\n pausedAtRef.current.delete(notification.id);\n }, 400);\n }, duration);\n timersRef.current.set(notification.id, timer);\n },\n [displayDuration, clearNotificationTimer]\n );\n\n // 6. 核心通知函数\n const addNotification = useCallback(\n (type: NotificationType, message: Message) => {\n const newNotification: Notification = {\n id: generateId(),\n type,\n title: message.title,\n message: message.message,\n createdAt: Date.now(),\n isRemoved: false\n };\n\n setNotifications((prev) => {\n const newNotifications = [newNotification, ...prev];\n const removedNotifications = newNotifications.slice(maxStack);\n\n removedNotifications.forEach((notification) => {\n clearNotificationTimer(notification.id);\n pausedAtRef.current.delete(notification.id);\n });\n\n return newNotifications.slice(0, maxStack);\n });\n\n startTimer(newNotification);\n },\n [maxStack, startTimer, clearNotificationTimer]\n );\n\n // 7. 提供的 Context 值\n const contextValue = React.useMemo(\n () => ({\n notify: addNotification,\n success: (message: Message) => addNotification(\"success\", message),\n error: (message: Message) => addNotification(\"error\", message),\n warning: (message: Message) => addNotification(\"warning\", message),\n info: (message: Message) => addNotification(\"info\", message),\n removeNotification: (id: string) => {\n setNotifications((prev) => prev.filter((t) => t.id !== id));\n clearNotificationTimer(id);\n pausedAtRef.current.delete(id);\n }\n }),\n [addNotification, clearNotificationTimer]\n );\n\n // 悬停处理\n const clearAllTimers = useCallback(() => {\n const now = Date.now();\n notifications.forEach((notification) => {\n pausedAtRef.current.set(notification.id, now);\n clearNotificationTimer(notification.id);\n });\n }, [notifications, clearNotificationTimer]);\n\n const restartAllTimers = useCallback(() => {\n notifications.forEach((notification) => {\n const pausedAt = pausedAtRef.current.get(notification.id);\n if (pausedAt) {\n const elapsedTime = pausedAt - notification.createdAt;\n const remainingTime = Math.max(0, displayDuration - elapsedTime);\n startTimer(notification, remainingTime);\n pausedAtRef.current.delete(notification.id);\n }\n });\n }, [notifications, displayDuration, startTimer]);\n\n return (\n <NotificationContext.Provider value={contextValue}>\n {children}\n {createPortal(\n <NotifyContainer\n notifications={notifications as unknown as TdNotificationProps[]}\n onRemove={(id) => contextValue.removeNotification(id)}\n onHoverStart={clearAllTimers}\n onHoverEnd={restartAllTimers}\n data-testid=\"notification-container\"\n maxStack={maxStack}\n position={position}\n />,\n document.body\n )}\n </NotificationContext.Provider>\n );\n};\n\n// 8. 创建自定义 Hook\nexport const useNotification = () => {\n const context = useContext(NotificationContext);\n if (!context) {\n throw new Error(\"useNotification must be used within a NotificationProvider\");\n }\n return context;\n};\n"],"names":["NotificationContext","createContext","generateId","Math","random","toString","substr","NotificationProvider","children","_ref","_ref$maxStack","maxStack","_ref$displayDuration","displayDuration","_ref$position","position","_useState","useState","_useState2","_slicedToArray","notifications","setNotifications","timersRef","useRef","Map","pausedAtRef","clearNotificationTimer","useCallback","id","timer","current","get","clearTimeout","startTimer","notification","remainingTime","duration","setTimeout","prev","map","n","_objectSpread","isRemoved","filter","t","set","addNotification","type","message","newNotification","title","createdAt","Date","now","newNotifications","concat","_toConsumableArray","removedNotifications","slice","forEach","contextValue","React","useMemo","notify","success","error","warning","info","removeNotification","clearAllTimers","restartAllTimers","pausedAt","elapsedTime","max","Provider","value","createPortal","createElement","NotifyContainer","onRemove","onHoverStart","onHoverEnd","document","body","useNotification","context","useContext","Error"],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { _ as _defineProperty } from '../_chunks/dep-Cwish4GD.js';
|
|
2
|
+
import { _ as _toConsumableArray } from '../_chunks/dep-CgyDw_YI.js';
|
|
3
|
+
import { _ as _slicedToArray } from '../_chunks/dep-CzLhKWCf.js';
|
|
4
|
+
import React, { useState, useRef, useLayoutEffect } from 'react';
|
|
5
|
+
import { IconCheckCircleStroked, IconClose, IconInfoCircle, IconAlertTriangle } from '@tendaui/icons';
|
|
6
|
+
import { u as useConfig } from '../_chunks/dep-u1x3x6MJ.js';
|
|
7
|
+
import '../_chunks/dep-D-UKOauR.js';
|
|
8
|
+
import '../config-provider/ConfigContext.js';
|
|
9
|
+
|
|
10
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
|
+
var NotificationItem = function NotificationItem(_ref) {
|
|
13
|
+
var message = _ref.message,
|
|
14
|
+
type = _ref.type,
|
|
15
|
+
heights = _ref.heights,
|
|
16
|
+
setHeights = _ref.setHeights,
|
|
17
|
+
id = _ref.id,
|
|
18
|
+
gap = _ref.gap,
|
|
19
|
+
isExpanded = _ref.isExpanded,
|
|
20
|
+
isRemoved = _ref.isRemoved,
|
|
21
|
+
title = _ref.title;
|
|
22
|
+
var _useState = useState(0),
|
|
23
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
24
|
+
initialHeight = _useState2[0],
|
|
25
|
+
setInitialHeight = _useState2[1];
|
|
26
|
+
var _useState3 = useState(false),
|
|
27
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
28
|
+
isMounted = _useState4[0],
|
|
29
|
+
setIsMounted = _useState4[1];
|
|
30
|
+
var nofityItem = useRef(null);
|
|
31
|
+
var _useConfig = useConfig(),
|
|
32
|
+
prefix = _useConfig.classPrefix;
|
|
33
|
+
React.useEffect(function () {
|
|
34
|
+
setIsMounted(true);
|
|
35
|
+
}, []);
|
|
36
|
+
React.useEffect(function () {
|
|
37
|
+
var notifyNode = nofityItem.current;
|
|
38
|
+
if (notifyNode) {
|
|
39
|
+
var height = notifyNode.getBoundingClientRect().height;
|
|
40
|
+
setInitialHeight(height);
|
|
41
|
+
setHeights(function (h) {
|
|
42
|
+
return [{
|
|
43
|
+
toastId: id,
|
|
44
|
+
height: height,
|
|
45
|
+
message: message,
|
|
46
|
+
type: type
|
|
47
|
+
}].concat(_toConsumableArray(h));
|
|
48
|
+
});
|
|
49
|
+
return function () {
|
|
50
|
+
setHeights(function (h) {
|
|
51
|
+
return h.filter(function (h2) {
|
|
52
|
+
return h2.toastId !== id;
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}, [setHeights, id, message, type]);
|
|
58
|
+
useLayoutEffect(function () {
|
|
59
|
+
if (!isMounted) return;
|
|
60
|
+
var notifyNode = nofityItem.current;
|
|
61
|
+
if (notifyNode) {
|
|
62
|
+
var originalHeight = notifyNode.style.height;
|
|
63
|
+
notifyNode.style.height = "auto";
|
|
64
|
+
var newHeight = notifyNode.getBoundingClientRect().height;
|
|
65
|
+
notifyNode.style.height = originalHeight;
|
|
66
|
+
setInitialHeight(newHeight);
|
|
67
|
+
setHeights(function (heights2) {
|
|
68
|
+
var isExist = heights2.some(function (h) {
|
|
69
|
+
return h.toastId === id;
|
|
70
|
+
});
|
|
71
|
+
if (isExist) {
|
|
72
|
+
return heights2.map(function (h) {
|
|
73
|
+
return h.toastId === id ? _objectSpread(_objectSpread({}, h), {}, {
|
|
74
|
+
height: newHeight,
|
|
75
|
+
message: message,
|
|
76
|
+
type: type
|
|
77
|
+
}) : h;
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
return [{
|
|
81
|
+
toastId: id,
|
|
82
|
+
height: newHeight,
|
|
83
|
+
message: message,
|
|
84
|
+
type: type
|
|
85
|
+
}].concat(_toConsumableArray(heights2));
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}, [isMounted, initialHeight, setHeights, id, message, type]);
|
|
89
|
+
var heightIndex = React.useMemo(function () {
|
|
90
|
+
return heights.findIndex(function (h) {
|
|
91
|
+
return h.toastId === id;
|
|
92
|
+
});
|
|
93
|
+
}, [heights, id]);
|
|
94
|
+
var toastHeightBefore = React.useMemo(function () {
|
|
95
|
+
return heights.reduce(function (acc, h, reduceIndex) {
|
|
96
|
+
if (reduceIndex < heightIndex) {
|
|
97
|
+
return acc + h.height;
|
|
98
|
+
}
|
|
99
|
+
return acc;
|
|
100
|
+
}, 0);
|
|
101
|
+
}, [heightIndex, heights]);
|
|
102
|
+
var offset = React.useMemo(function () {
|
|
103
|
+
return heightIndex * gap + toastHeightBefore;
|
|
104
|
+
}, [toastHeightBefore, heightIndex, gap]);
|
|
105
|
+
return /* @__PURE__ */React.createElement("div", {
|
|
106
|
+
className: "".concat(prefix, "-notify__item"),
|
|
107
|
+
ref: nofityItem,
|
|
108
|
+
style: {
|
|
109
|
+
position: "absolute",
|
|
110
|
+
height: isExpanded ? "auto" : "var(--front-toast-height)",
|
|
111
|
+
width: "var(--toast-width)",
|
|
112
|
+
"--offset": offset + "px",
|
|
113
|
+
"--index": heightIndex,
|
|
114
|
+
"--gap": gap + "px",
|
|
115
|
+
"--z-index": heights.length - heightIndex
|
|
116
|
+
},
|
|
117
|
+
"data-toast": true,
|
|
118
|
+
"data-mounted": isMounted,
|
|
119
|
+
"data-expanded": isExpanded,
|
|
120
|
+
"data-removed": isRemoved,
|
|
121
|
+
"data-front": heightIndex === 0
|
|
122
|
+
}, /* @__PURE__ */React.createElement("div", {
|
|
123
|
+
className: "".concat(prefix, "-notify__content")
|
|
124
|
+
}, /* @__PURE__ */React.createElement("div", {
|
|
125
|
+
className: "".concat(prefix, "-notify__header")
|
|
126
|
+
}, /* @__PURE__ */React.createElement("div", {
|
|
127
|
+
className: "".concat(prefix, "-notify__icon")
|
|
128
|
+
}, type === "success" && /* @__PURE__ */React.createElement(IconCheckCircleStroked, {
|
|
129
|
+
className: "t-icon t-is-success"
|
|
130
|
+
}), type === "error" && /* @__PURE__ */React.createElement(IconClose, {
|
|
131
|
+
className: "t-icon t-is-error"
|
|
132
|
+
}), type === "info" && /* @__PURE__ */React.createElement(IconInfoCircle, {
|
|
133
|
+
className: "t-icon t-is-info"
|
|
134
|
+
}), type === "warning" && /* @__PURE__ */React.createElement(IconAlertTriangle, {
|
|
135
|
+
className: "t-icon t-is-warning"
|
|
136
|
+
}), type === "default" && /* @__PURE__ */React.createElement(IconInfoCircle, {
|
|
137
|
+
className: "t-icon t-is-info"
|
|
138
|
+
})), /* @__PURE__ */React.createElement("div", {
|
|
139
|
+
className: "".concat(prefix, "-notify__title")
|
|
140
|
+
}, title))), /* @__PURE__ */React.createElement("p", {
|
|
141
|
+
className: "".concat(prefix, "-notify__detail"),
|
|
142
|
+
style: {
|
|
143
|
+
opacity: heightIndex === 0 || isExpanded ? 1 : 0,
|
|
144
|
+
transition: "opacity 400ms"
|
|
145
|
+
}
|
|
146
|
+
}, message));
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
export { NotificationItem as default };
|
|
150
|
+
//# sourceMappingURL=NotifyItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotifyItem.js","sources":["../../../components/notification/NotifyItem.tsx"],"sourcesContent":["import React, { useLayoutEffect, useRef, useState } from \"react\";\nimport { TdNotificationProps, HeightItem } from \"./type\";\nimport { IconClose, IconInfoCircle, IconCheckCircleStroked, IconAlertTriangle } from \"@tendaui/icons\";\nimport useConfig from \"../hooks/useConfig\";\n\nconst NotificationItem: React.FC<TdNotificationProps> = ({\n message,\n type,\n heights,\n setHeights,\n id,\n gap,\n isExpanded,\n isRemoved,\n title\n}) => {\n const [initialHeight, setInitialHeight] = useState(0);\n const [isMounted, setIsMounted] = useState(false);\n const nofityItem = useRef<HTMLDivElement>(null);\n const { classPrefix: prefix } = useConfig();\n React.useEffect(() => {\n setIsMounted(true);\n }, []);\n\n React.useEffect(() => {\n const notifyNode = nofityItem.current;\n if (notifyNode) {\n const height = notifyNode.getBoundingClientRect().height;\n setInitialHeight(height);\n setHeights((h: HeightItem[]) => {\n // 如果不存在,则添加\n return [{ toastId: id, height, message, type }, ...h];\n });\n return () => {\n setHeights((h: HeightItem[]) => h.filter((h) => h.toastId !== id));\n };\n }\n }, [setHeights, id, message, type]);\n\n useLayoutEffect(() => {\n if (!isMounted) return;\n const notifyNode = nofityItem.current;\n if (notifyNode) {\n const originalHeight = notifyNode.style.height;\n notifyNode.style.height = \"auto\";\n const newHeight = notifyNode.getBoundingClientRect().height;\n notifyNode.style.height = originalHeight;\n setInitialHeight(newHeight);\n setHeights((heights) => {\n const isExist = heights.some((h) => h.toastId === id);\n if (isExist) {\n // 如果存在,则更新高度\n return heights.map((h) => (h.toastId === id ? { ...h, height: newHeight, message, type } : h));\n }\n // 如果不存在,则添加\n return [{ toastId: id, height: newHeight, message, type }, ...heights];\n });\n }\n }, [isMounted, initialHeight, setHeights, id, message, type]);\n const heightIndex = React.useMemo(() => {\n return heights.findIndex((h) => h.toastId === id);\n }, [heights, id]);\n const toastHeightBefore = React.useMemo(() => {\n return heights.reduce((acc, h, reduceIndex) => {\n if (reduceIndex < heightIndex) {\n return acc + h.height;\n }\n return acc;\n }, 0);\n }, [heightIndex, heights]);\n\n const offset = React.useMemo(() => heightIndex * gap + toastHeightBefore, [toastHeightBefore, heightIndex, gap]);\n\n return (\n <div\n className={`${prefix}-notify__item`}\n ref={nofityItem}\n style={\n {\n position: \"absolute\",\n height: isExpanded ? `auto` : `var(--front-toast-height)`,\n width: `var(--toast-width)`,\n \"--offset\": offset + \"px\",\n \"--index\": heightIndex,\n \"--gap\": gap + \"px\",\n \"--z-index\": heights.length - heightIndex\n } as React.CSSProperties\n }\n data-toast\n data-mounted={isMounted}\n data-expanded={isExpanded}\n data-removed={isRemoved}\n data-front={heightIndex === 0}\n >\n <div className={`${prefix}-notify__content`}>\n <div className={`${prefix}-notify__header`}>\n <div className={`${prefix}-notify__icon`}>\n {type === \"success\" && <IconCheckCircleStroked className=\"t-icon t-is-success\" />}\n {type === \"error\" && <IconClose className=\"t-icon t-is-error\" />}\n {type === \"info\" && <IconInfoCircle className=\"t-icon t-is-info\" />}\n {type === \"warning\" && <IconAlertTriangle className=\"t-icon t-is-warning\" />}\n {type === \"default\" && <IconInfoCircle className=\"t-icon t-is-info\" />}\n </div>\n\n <div className={`${prefix}-notify__title`}>{title}</div>\n </div>\n </div>\n <p\n className={`${prefix}-notify__detail`}\n style={{\n opacity: heightIndex === 0 || isExpanded ? 1 : 0,\n transition: `opacity 400ms`\n }}\n >\n {message}\n </p>\n </div>\n );\n};\n\nexport default NotificationItem;\n"],"names":["NotificationItem","message","_ref","type","heights","setHeights","id","gap","isExpanded","isRemoved","title","_useState","useState","_useState2","_slicedToArray","initialHeight","setInitialHeight","_useState3","_useState4","isMounted","setIsMounted","nofityItem","useRef","_useConfig","useConfig","prefix","classPrefix","React","useEffect","notifyNode","current","height","getBoundingClientRect","h","toastId","concat","_toConsumableArray","filter","useLayoutEffect","originalHeight","style","newHeight","isExist","some","map","_objectSpread","heightIndex","useMemo","findIndex","toastHeightBefore","reduce","acc","reduceIndex","offset","createElement","className","ref","position","width","length","IconCheckCircleStroked","IconClose","IconInfoCircle","IconAlertTriangle","opacity","transition"],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export { NotificationProvider, useNotification } from './NotifyContext.js';
|
|
2
|
+
import './style/css.js';
|
|
3
|
+
import '../_chunks/dep-CgyDw_YI.js';
|
|
4
|
+
import '../_chunks/dep-CzLhKWCf.js';
|
|
5
|
+
import '../_chunks/dep-Cwish4GD.js';
|
|
6
|
+
import '../_chunks/dep-D-UKOauR.js';
|
|
7
|
+
import 'react';
|
|
8
|
+
import 'react-dom';
|
|
9
|
+
import './NotifyContainer.js';
|
|
10
|
+
import './NotifyItem.js';
|
|
11
|
+
import '@tendaui/icons';
|
|
12
|
+
import '../_chunks/dep-u1x3x6MJ.js';
|
|
13
|
+
import '../config-provider/ConfigContext.js';
|
|
14
|
+
|
|
15
|
+
var addNotification = function addNotification() {};
|
|
16
|
+
function notification(message) {
|
|
17
|
+
var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "default";
|
|
18
|
+
var title = arguments.length > 2 ? arguments[2] : undefined;
|
|
19
|
+
var id = (/* @__PURE__ */new Date()).getTime().toString();
|
|
20
|
+
addNotification({
|
|
21
|
+
id: id,
|
|
22
|
+
message: message,
|
|
23
|
+
type: type,
|
|
24
|
+
title: title
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function registerNotificationHandler(cb) {
|
|
28
|
+
addNotification = cb;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export { notification };
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../components/notification/Notify.ts"],"sourcesContent":["// notification.ts\ntype NotificationType = \"default\" | \"success\" | \"error\" | \"info\" | \"warning\";\ntype NotificationMessage = {\n id: string;\n type: NotificationType;\n message: string;\n title: string;\n};\n\nlet addNotification: (notification: NotificationMessage) => void = () => {};\n\nexport function notification(message: string, type: NotificationType = \"default\", title: string) {\n const id = new Date().getTime().toString();\n addNotification({\n id,\n message,\n type,\n title\n });\n}\n\nexport function registerNotificationHandler(cb: typeof addNotification) {\n addNotification = cb;\n}\n"],"names":["addNotification","notification","message","type","arguments","length","undefined","title","id","Date","getTime","toString","registerNotificationHandler","cb"],"mappings":";;;;;;;;;;;;;;AASA,IAAIA,kBAA+D,SAA/DA,kBAAqE,CAAC,CAAA;AAEnE,SAASC,YAAAA,CAAaC,OAAA,EAAoE;AAAA,EAAA,IAAnDC,IAAA,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAyB,SAAA;EAAA,IAAWG,KAAA,GAAAH,SAAA,CAAAC,MAAA,GAAA,CAAA,GAAAD,SAAA,MAAAE,SAAA;AAChF,EAAA,IAAME,qBAAK,IAAIC,IAAA,EAAK,EAAEC,OAAA,GAAUC,QAAA,EAAS;AACzCX,EAAAA,eAAA,CAAgB;AACdQ,IAAAA,EAAA,EAAAA,EAAA;AACAN,IAAAA,OAAA,EAAAA,OAAA;AACAC,IAAAA,IAAA,EAAAA,IAAA;AACAI,IAAAA,KAAA,EAAAA;AACF,GAAC,CAAA;AACH;AAEO,SAASK,4BAA4BC,EAAA,EAA4B;AACtEb,EAAAA,eAAA,GAAkBa,EAAA;AACpB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./index.css";
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
.t-notify[data-x-position=right] {
|
|
2
|
+
right: 8px;
|
|
3
|
+
}
|
|
4
|
+
.t-notify[data-x-position=left] {
|
|
5
|
+
left: 8px;
|
|
6
|
+
}
|
|
7
|
+
.t-notify[data-x-position=center] {
|
|
8
|
+
left: 50%;
|
|
9
|
+
-webkit-transform: translateX(-50%);
|
|
10
|
+
transform: translateX(-50%);
|
|
11
|
+
}
|
|
12
|
+
.t-notify[data-y-position=top] {
|
|
13
|
+
top: 10px;
|
|
14
|
+
}
|
|
15
|
+
.t-notify {
|
|
16
|
+
font: var(--td-font-body-medium);
|
|
17
|
+
color: var(--td-text-color-primary);
|
|
18
|
+
-webkit-box-sizing: border-box;
|
|
19
|
+
box-sizing: border-box;
|
|
20
|
+
margin: 0;
|
|
21
|
+
padding: 0;
|
|
22
|
+
list-style: none;
|
|
23
|
+
position: fixed;
|
|
24
|
+
z-index: 6000;
|
|
25
|
+
width: 360px;
|
|
26
|
+
}
|
|
27
|
+
.t-notify__container {
|
|
28
|
+
position: relative;
|
|
29
|
+
width: 100%;
|
|
30
|
+
height: 100%;
|
|
31
|
+
}
|
|
32
|
+
.t-notify__item {
|
|
33
|
+
border-radius: var(--td-radius-medium);
|
|
34
|
+
padding: var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);
|
|
35
|
+
background-color: var(--td-bg-color-container);
|
|
36
|
+
color: var(--td-text-color-secondary);
|
|
37
|
+
-webkit-box-shadow: var(--td-shadow-2), var(--td-shadow-inset-top), var(--td-shadow-inset-right), var(--td-shadow-inset-bottom), var(--td-shadow-inset-left);
|
|
38
|
+
box-shadow: var(--td-shadow-2), var(--td-shadow-inset-top), var(--td-shadow-inset-right), var(--td-shadow-inset-bottom), var(--td-shadow-inset-left);
|
|
39
|
+
overflow: hidden;
|
|
40
|
+
}
|
|
41
|
+
.t-notify__item:hover {
|
|
42
|
+
background-color: var(--td-bg-color-container-hover);
|
|
43
|
+
color: inherit;
|
|
44
|
+
}
|
|
45
|
+
.t-notify__item:active {
|
|
46
|
+
background-color: var(--td-bg-color-container-active);
|
|
47
|
+
color: inherit;
|
|
48
|
+
}
|
|
49
|
+
.t-notify__item {
|
|
50
|
+
--y: translateY(-100%);
|
|
51
|
+
-webkit-transform: var(--y);
|
|
52
|
+
transform: var(--y);
|
|
53
|
+
-webkit-transition: opacity 400ms, height 400ms, -webkit-transform 400ms, -webkit-box-shadow 200ms;
|
|
54
|
+
transition: opacity 400ms, height 400ms, -webkit-transform 400ms, -webkit-box-shadow 200ms;
|
|
55
|
+
transition: transform 400ms, opacity 400ms, height 400ms, box-shadow 200ms;
|
|
56
|
+
transition: transform 400ms, opacity 400ms, height 400ms, box-shadow 200ms, -webkit-transform 400ms, -webkit-box-shadow 200ms;
|
|
57
|
+
z-index: var(--z-index);
|
|
58
|
+
}
|
|
59
|
+
.t-notify__item[data-mounted=true][data-expanded=false] {
|
|
60
|
+
--y: translateY(calc(var(--gap) * var(--index)))
|
|
61
|
+
scale(calc(1 - var(--index) * 0.05));
|
|
62
|
+
}
|
|
63
|
+
.t-notify__item[data-mounted=true][data-expanded=true] {
|
|
64
|
+
--y: translateY(var(--offset)) scale(1);
|
|
65
|
+
}
|
|
66
|
+
.t-notify__item[data-mounted=true][data-removed=true][data-front=true] {
|
|
67
|
+
--y: translateY(-100%);
|
|
68
|
+
opacity: 0;
|
|
69
|
+
}
|
|
70
|
+
.t-notify__item[data-mounted=true][data-removed=true][data-front=false] {
|
|
71
|
+
--y: translateY(-40%);
|
|
72
|
+
opacity: 0;
|
|
73
|
+
-webkit-transition: opacity 200ms, -webkit-transform 400ms;
|
|
74
|
+
transition: opacity 200ms, -webkit-transform 400ms;
|
|
75
|
+
transition: transform 400ms, opacity 200ms;
|
|
76
|
+
transition: transform 400ms, opacity 200ms, -webkit-transform 400ms;
|
|
77
|
+
}
|
|
78
|
+
.t-notify__icon {
|
|
79
|
+
width: calc(var(--td-font-size-body-large) + 8px);
|
|
80
|
+
text-align: center;
|
|
81
|
+
margin-right: var(--td-comp-margin-s);
|
|
82
|
+
}
|
|
83
|
+
.t-notify__icon .t-icon {
|
|
84
|
+
font-size: calc(var(--td-font-size-body-large) + 8px);
|
|
85
|
+
}
|
|
86
|
+
.t-notify .t-icon.t-is-info {
|
|
87
|
+
color: var(--td-brand-color);
|
|
88
|
+
}
|
|
89
|
+
.t-notify .t-icon.t-is-success {
|
|
90
|
+
color: var(--td-success-color);
|
|
91
|
+
}
|
|
92
|
+
.t-notify .t-icon.t-is-warning {
|
|
93
|
+
color: var(--td-warning-color);
|
|
94
|
+
}
|
|
95
|
+
.t-notify .t-icon.t-is-error {
|
|
96
|
+
color: var(--td-error-color-6);
|
|
97
|
+
}
|
|
98
|
+
.t-notify__main {
|
|
99
|
+
-webkit-box-flex: 1;
|
|
100
|
+
-ms-flex: 1;
|
|
101
|
+
flex: 1;
|
|
102
|
+
}
|
|
103
|
+
.t-notify__title__wrap {
|
|
104
|
+
display: -webkit-box;
|
|
105
|
+
display: -ms-flexbox;
|
|
106
|
+
display: flex;
|
|
107
|
+
-webkit-box-pack: justify;
|
|
108
|
+
-ms-flex-pack: justify;
|
|
109
|
+
justify-content: space-between;
|
|
110
|
+
}
|
|
111
|
+
.t-notify__title {
|
|
112
|
+
font: var(--td-font-title-medium);
|
|
113
|
+
color: var(--td-text-color-primary);
|
|
114
|
+
}
|
|
115
|
+
.t-notify .t-icon-close {
|
|
116
|
+
cursor: pointer;
|
|
117
|
+
font-size: var(--td-font-size-body-large);
|
|
118
|
+
border-radius: var(--td-radius-default);
|
|
119
|
+
color: var(--td-text-color-secondary);
|
|
120
|
+
}
|
|
121
|
+
.t-notify .t-icon-close:hover {
|
|
122
|
+
background: var(--td-bg-color-container-hover);
|
|
123
|
+
}
|
|
124
|
+
.t-notify .t-icon-close:active {
|
|
125
|
+
background: var(--td-bg-color-container-active);
|
|
126
|
+
}
|
|
127
|
+
.t-notify__content {
|
|
128
|
+
font: var(--td-font-body-medium);
|
|
129
|
+
color: var(--td-text-color-secondary);
|
|
130
|
+
margin-top: var(--td-comp-margin-s);
|
|
131
|
+
}
|
|
132
|
+
.t-notify__header {
|
|
133
|
+
display: -webkit-box;
|
|
134
|
+
display: -ms-flexbox;
|
|
135
|
+
display: flex;
|
|
136
|
+
}
|
|
137
|
+
.t-notify__detail {
|
|
138
|
+
font: var(--td-font-body-medium);
|
|
139
|
+
color: var(--td-text-color-secondary);
|
|
140
|
+
margin-top: var(--td-comp-margin-s);
|
|
141
|
+
word-break: break-all;
|
|
142
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|