@novu/react 3.19.2 → 3.20.0-rc.569d407fd0
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/dist/cjs/components/Bell.cjs +6 -21
- package/dist/cjs/components/Bell.cjs.map +1 -1
- package/dist/cjs/components/Bell.d.cts +2 -3
- package/dist/cjs/components/Inbox.cjs +100 -138
- package/dist/cjs/components/Inbox.cjs.map +1 -1
- package/dist/cjs/components/InboxContent.cjs +9 -65
- package/dist/cjs/components/InboxContent.cjs.map +1 -1
- package/dist/cjs/components/InboxContent.d.cts +2 -3
- package/dist/cjs/components/Mounter.cjs +20 -13
- package/dist/cjs/components/Mounter.cjs.map +1 -1
- package/dist/cjs/components/Mounter.d.cts +12 -4
- package/dist/cjs/components/Notifications.cjs +9 -59
- package/dist/cjs/components/Notifications.cjs.map +1 -1
- package/dist/cjs/components/Notifications.d.cts +2 -3
- package/dist/cjs/components/NovuUI.cjs +17 -6
- package/dist/cjs/components/NovuUI.cjs.map +1 -1
- package/dist/cjs/components/NovuUI.d.cts +4 -0
- package/dist/cjs/{context/RendererContext.cjs → components/OutletHost.cjs} +15 -15
- package/dist/cjs/components/OutletHost.cjs.map +1 -0
- package/dist/cjs/components/OutletHost.d.cts +14 -0
- package/dist/cjs/components/Preferences.cjs +1 -20
- package/dist/cjs/components/Preferences.cjs.map +1 -1
- package/dist/cjs/components/connect-chat/ConnectChat.cjs +2 -3
- package/dist/cjs/components/connect-chat/ConnectChat.cjs.map +1 -1
- package/dist/cjs/components/connect-chat/DefaultConnectChat.cjs +14 -23
- package/dist/cjs/components/connect-chat/DefaultConnectChat.cjs.map +1 -1
- package/dist/cjs/components/index.cjs +2 -0
- package/dist/cjs/components/index.cjs.map +1 -1
- package/dist/cjs/components/index.d.cts +6 -0
- package/dist/cjs/components/msteams-connect-button/DefaultMsTeamsConnectButton.cjs +17 -26
- package/dist/cjs/components/msteams-connect-button/DefaultMsTeamsConnectButton.cjs.map +1 -1
- package/dist/cjs/components/msteams-connect-button/MsTeamsConnectButton.cjs +2 -3
- package/dist/cjs/components/msteams-connect-button/MsTeamsConnectButton.cjs.map +1 -1
- package/dist/cjs/components/msteams-link-user/DefaultMsTeamsLinkUser.cjs +13 -22
- package/dist/cjs/components/msteams-link-user/DefaultMsTeamsLinkUser.cjs.map +1 -1
- package/dist/cjs/components/msteams-link-user/MsTeamsLinkUser.cjs +2 -3
- package/dist/cjs/components/msteams-link-user/MsTeamsLinkUser.cjs.map +1 -1
- package/dist/cjs/components/notification-item/ClockIcon.cjs +43 -0
- package/dist/cjs/components/notification-item/ClockIcon.cjs.map +1 -0
- package/dist/cjs/components/notification-item/ClockIcon.d.cts +7 -0
- package/dist/cjs/components/notification-item/Markdown.cjs +53 -0
- package/dist/cjs/components/notification-item/Markdown.cjs.map +1 -0
- package/dist/cjs/components/notification-item/Markdown.d.cts +12 -0
- package/dist/cjs/components/notification-item/NotificationItem.cjs +146 -0
- package/dist/cjs/components/notification-item/NotificationItem.cjs.map +1 -0
- package/dist/cjs/components/notification-item/NotificationItem.d.cts +40 -0
- package/dist/cjs/components/notification-item/context.cjs +49 -0
- package/dist/cjs/components/notification-item/context.cjs.map +1 -0
- package/dist/cjs/components/notification-item/context.d.cts +23 -0
- package/dist/cjs/components/notification-item/parts/Actions.cjs +56 -0
- package/dist/cjs/components/notification-item/parts/Actions.cjs.map +1 -0
- package/dist/cjs/components/notification-item/parts/Actions.d.cts +11 -0
- package/dist/cjs/components/notification-item/parts/Avatar.cjs +65 -0
- package/dist/cjs/components/notification-item/parts/Avatar.cjs.map +1 -0
- package/dist/cjs/components/notification-item/parts/Avatar.d.cts +8 -0
- package/dist/cjs/components/notification-item/parts/Content.cjs +66 -0
- package/dist/cjs/components/notification-item/parts/Content.cjs.map +1 -0
- package/dist/cjs/components/notification-item/parts/Content.d.cts +17 -0
- package/dist/cjs/components/notification-item/parts/Date.cjs +114 -0
- package/dist/cjs/components/notification-item/parts/Date.cjs.map +1 -0
- package/dist/cjs/components/notification-item/parts/Date.d.cts +11 -0
- package/dist/cjs/components/notification-item/parts/Dot.cjs +48 -0
- package/dist/cjs/components/notification-item/parts/Dot.cjs.map +1 -0
- package/dist/cjs/components/notification-item/parts/Dot.d.cts +9 -0
- package/dist/cjs/components/notification-item/parts/Subject.cjs +92 -0
- package/dist/cjs/components/notification-item/parts/Subject.cjs.map +1 -0
- package/dist/cjs/components/notification-item/parts/Subject.d.cts +15 -0
- package/dist/cjs/components/slack-connect-button/DefaultSlackConnectButton.cjs +18 -27
- package/dist/cjs/components/slack-connect-button/DefaultSlackConnectButton.cjs.map +1 -1
- package/dist/cjs/components/slack-connect-button/SlackConnectButton.cjs +2 -3
- package/dist/cjs/components/slack-connect-button/SlackConnectButton.cjs.map +1 -1
- package/dist/cjs/components/slack-link-user/DefaultSlackLinkUser.cjs +13 -22
- package/dist/cjs/components/slack-link-user/DefaultSlackLinkUser.cjs.map +1 -1
- package/dist/cjs/components/slack-link-user/SlackLinkUser.cjs +2 -3
- package/dist/cjs/components/slack-link-user/SlackLinkUser.cjs.map +1 -1
- package/dist/cjs/components/subscription/DefaultSubscription.cjs +14 -22
- package/dist/cjs/components/subscription/DefaultSubscription.cjs.map +1 -1
- package/dist/cjs/components/subscription/Subscription.cjs +2 -3
- package/dist/cjs/components/subscription/Subscription.cjs.map +1 -1
- package/dist/cjs/components/subscription/SubscriptionButton.cjs +9 -26
- package/dist/cjs/components/subscription/SubscriptionButton.cjs.map +1 -1
- package/dist/cjs/components/subscription/SubscriptionButton.d.cts +1 -1
- package/dist/cjs/components/subscription/SubscriptionPreferences.cjs +9 -26
- package/dist/cjs/components/subscription/SubscriptionPreferences.cjs.map +1 -1
- package/dist/cjs/components/subscription/SubscriptionPreferences.d.cts +1 -1
- package/dist/cjs/components/telegram-connect-button/DefaultTelegramConnectButton.cjs +14 -23
- package/dist/cjs/components/telegram-connect-button/DefaultTelegramConnectButton.cjs.map +1 -1
- package/dist/cjs/components/telegram-connect-button/TelegramConnectButton.cjs +2 -3
- package/dist/cjs/components/telegram-connect-button/TelegramConnectButton.cjs.map +1 -1
- package/dist/cjs/context/NovuUIContext.cjs +3 -0
- package/dist/cjs/context/NovuUIContext.cjs.map +1 -1
- package/dist/cjs/context/NovuUIContext.d.cts +8 -1
- package/dist/cjs/context/OutletStore.cjs +97 -0
- package/dist/cjs/context/OutletStore.cjs.map +1 -0
- package/dist/cjs/context/OutletStore.d.cts +31 -0
- package/dist/cjs/hooks/internal/useEngineAccessor.cjs +36 -0
- package/dist/cjs/hooks/internal/useEngineAccessor.cjs.map +1 -0
- package/dist/cjs/hooks/internal/useEngineAccessor.d.cts +4 -0
- package/dist/cjs/hooks/internal/useEngineStores.cjs +54 -0
- package/dist/cjs/hooks/internal/useEngineStores.cjs.map +1 -0
- package/dist/cjs/hooks/internal/useEngineStores.d.cts +13 -0
- package/dist/cjs/hooks/internal/useIsomorphicLayoutEffect.cjs +32 -0
- package/dist/cjs/hooks/internal/useIsomorphicLayoutEffect.cjs.map +1 -0
- package/dist/cjs/hooks/internal/useIsomorphicLayoutEffect.d.cts +5 -0
- package/dist/cjs/hooks/internal/useNotificationOutlets.cjs +57 -0
- package/dist/cjs/hooks/internal/useNotificationOutlets.cjs.map +1 -0
- package/dist/cjs/hooks/internal/useNotificationOutlets.d.cts +33 -0
- package/dist/cjs/hooks/internal/useOutletRenderer.cjs +53 -0
- package/dist/cjs/hooks/internal/useOutletRenderer.cjs.map +1 -0
- package/dist/cjs/hooks/internal/useOutletRenderer.d.cts +14 -0
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +6 -0
- package/dist/cjs/server/index.cjs +14 -0
- package/dist/cjs/server/index.cjs.map +1 -1
- package/dist/cjs/server/index.d.cts +15 -1
- package/dist/cjs/utils/appearance.cjs +2 -2
- package/dist/cjs/utils/appearance.cjs.map +1 -1
- package/dist/cjs/utils/appearance.d.cts +2 -3
- package/dist/esm/components/Bell.d.ts +2 -3
- package/dist/esm/components/Bell.js +7 -22
- package/dist/esm/components/Bell.js.map +1 -1
- package/dist/esm/components/Inbox.js +100 -138
- package/dist/esm/components/Inbox.js.map +1 -1
- package/dist/esm/components/InboxContent.d.ts +2 -3
- package/dist/esm/components/InboxContent.js +10 -66
- package/dist/esm/components/InboxContent.js.map +1 -1
- package/dist/esm/components/Mounter.d.ts +12 -4
- package/dist/esm/components/Mounter.js +19 -14
- package/dist/esm/components/Mounter.js.map +1 -1
- package/dist/esm/components/Notifications.d.ts +2 -3
- package/dist/esm/components/Notifications.js +10 -60
- package/dist/esm/components/Notifications.js.map +1 -1
- package/dist/esm/components/NovuUI.d.ts +4 -0
- package/dist/esm/components/NovuUI.js +16 -6
- package/dist/esm/components/NovuUI.js.map +1 -1
- package/dist/esm/components/OutletHost.d.ts +14 -0
- package/dist/esm/components/OutletHost.js +15 -0
- package/dist/esm/components/OutletHost.js.map +1 -0
- package/dist/esm/components/Preferences.js +1 -10
- package/dist/esm/components/Preferences.js.map +1 -1
- package/dist/esm/components/connect-chat/ConnectChat.js +2 -3
- package/dist/esm/components/connect-chat/ConnectChat.js.map +1 -1
- package/dist/esm/components/connect-chat/DefaultConnectChat.js +15 -24
- package/dist/esm/components/connect-chat/DefaultConnectChat.js.map +1 -1
- package/dist/esm/components/index.d.ts +6 -0
- package/dist/esm/components/index.js +1 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/components/msteams-connect-button/DefaultMsTeamsConnectButton.js +18 -27
- package/dist/esm/components/msteams-connect-button/DefaultMsTeamsConnectButton.js.map +1 -1
- package/dist/esm/components/msteams-connect-button/MsTeamsConnectButton.js +2 -3
- package/dist/esm/components/msteams-connect-button/MsTeamsConnectButton.js.map +1 -1
- package/dist/esm/components/msteams-link-user/DefaultMsTeamsLinkUser.js +14 -23
- package/dist/esm/components/msteams-link-user/DefaultMsTeamsLinkUser.js.map +1 -1
- package/dist/esm/components/msteams-link-user/MsTeamsLinkUser.js +2 -3
- package/dist/esm/components/msteams-link-user/MsTeamsLinkUser.js.map +1 -1
- package/dist/esm/components/notification-item/ClockIcon.d.ts +7 -0
- package/dist/esm/components/notification-item/ClockIcon.js +18 -0
- package/dist/esm/components/notification-item/ClockIcon.js.map +1 -0
- package/dist/esm/components/notification-item/Markdown.d.ts +12 -0
- package/dist/esm/components/notification-item/Markdown.js +28 -0
- package/dist/esm/components/notification-item/Markdown.js.map +1 -0
- package/dist/esm/components/notification-item/NotificationItem.d.ts +40 -0
- package/dist/esm/components/notification-item/NotificationItem.js +131 -0
- package/dist/esm/components/notification-item/NotificationItem.js.map +1 -0
- package/dist/esm/components/notification-item/context.d.ts +23 -0
- package/dist/esm/components/notification-item/context.js +21 -0
- package/dist/esm/components/notification-item/context.js.map +1 -0
- package/dist/esm/components/notification-item/parts/Actions.d.ts +11 -0
- package/dist/esm/components/notification-item/parts/Actions.js +30 -0
- package/dist/esm/components/notification-item/parts/Actions.js.map +1 -0
- package/dist/esm/components/notification-item/parts/Avatar.d.ts +8 -0
- package/dist/esm/components/notification-item/parts/Avatar.js +40 -0
- package/dist/esm/components/notification-item/parts/Avatar.js.map +1 -0
- package/dist/esm/components/notification-item/parts/Content.d.ts +17 -0
- package/dist/esm/components/notification-item/parts/Content.js +40 -0
- package/dist/esm/components/notification-item/parts/Content.js.map +1 -0
- package/dist/esm/components/notification-item/parts/Date.d.ts +11 -0
- package/dist/esm/components/notification-item/parts/Date.js +89 -0
- package/dist/esm/components/notification-item/parts/Date.js.map +1 -0
- package/dist/esm/components/notification-item/parts/Dot.d.ts +9 -0
- package/dist/esm/components/notification-item/parts/Dot.js +23 -0
- package/dist/esm/components/notification-item/parts/Dot.js.map +1 -0
- package/dist/esm/components/notification-item/parts/Subject.d.ts +15 -0
- package/dist/esm/components/notification-item/parts/Subject.js +66 -0
- package/dist/esm/components/notification-item/parts/Subject.js.map +1 -0
- package/dist/esm/components/slack-connect-button/DefaultSlackConnectButton.js +19 -28
- package/dist/esm/components/slack-connect-button/DefaultSlackConnectButton.js.map +1 -1
- package/dist/esm/components/slack-connect-button/SlackConnectButton.js +2 -3
- package/dist/esm/components/slack-connect-button/SlackConnectButton.js.map +1 -1
- package/dist/esm/components/slack-link-user/DefaultSlackLinkUser.js +14 -23
- package/dist/esm/components/slack-link-user/DefaultSlackLinkUser.js.map +1 -1
- package/dist/esm/components/slack-link-user/SlackLinkUser.js +2 -3
- package/dist/esm/components/slack-link-user/SlackLinkUser.js.map +1 -1
- package/dist/esm/components/subscription/DefaultSubscription.js +15 -23
- package/dist/esm/components/subscription/DefaultSubscription.js.map +1 -1
- package/dist/esm/components/subscription/Subscription.js +2 -3
- package/dist/esm/components/subscription/Subscription.js.map +1 -1
- package/dist/esm/components/subscription/SubscriptionButton.d.ts +1 -1
- package/dist/esm/components/subscription/SubscriptionButton.js +10 -27
- package/dist/esm/components/subscription/SubscriptionButton.js.map +1 -1
- package/dist/esm/components/subscription/SubscriptionPreferences.d.ts +1 -1
- package/dist/esm/components/subscription/SubscriptionPreferences.js +10 -27
- package/dist/esm/components/subscription/SubscriptionPreferences.js.map +1 -1
- package/dist/esm/components/telegram-connect-button/DefaultTelegramConnectButton.js +15 -24
- package/dist/esm/components/telegram-connect-button/DefaultTelegramConnectButton.js.map +1 -1
- package/dist/esm/components/telegram-connect-button/TelegramConnectButton.js +2 -3
- package/dist/esm/components/telegram-connect-button/TelegramConnectButton.js.map +1 -1
- package/dist/esm/context/NovuUIContext.d.ts +8 -1
- package/dist/esm/context/NovuUIContext.js +2 -0
- package/dist/esm/context/NovuUIContext.js.map +1 -1
- package/dist/esm/context/OutletStore.d.ts +31 -0
- package/dist/esm/context/OutletStore.js +61 -0
- package/dist/esm/context/OutletStore.js.map +1 -0
- package/dist/esm/hooks/internal/useEngineAccessor.d.ts +4 -0
- package/dist/esm/hooks/internal/useEngineAccessor.js +11 -0
- package/dist/esm/hooks/internal/useEngineAccessor.js.map +1 -0
- package/dist/esm/hooks/internal/useEngineStores.d.ts +13 -0
- package/dist/esm/hooks/internal/useEngineStores.js +27 -0
- package/dist/esm/hooks/internal/useEngineStores.js.map +1 -0
- package/dist/esm/hooks/internal/useIsomorphicLayoutEffect.d.ts +5 -0
- package/dist/esm/hooks/internal/useIsomorphicLayoutEffect.js +7 -0
- package/dist/esm/hooks/internal/useIsomorphicLayoutEffect.js.map +1 -0
- package/dist/esm/hooks/internal/useNotificationOutlets.d.ts +33 -0
- package/dist/esm/hooks/internal/useNotificationOutlets.js +32 -0
- package/dist/esm/hooks/internal/useNotificationOutlets.js.map +1 -0
- package/dist/esm/hooks/internal/useOutletRenderer.d.ts +14 -0
- package/dist/esm/hooks/internal/useOutletRenderer.js +25 -0
- package/dist/esm/hooks/internal/useOutletRenderer.js.map +1 -0
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.js +5 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/server/index.d.ts +15 -1
- package/dist/esm/server/index.js +14 -1
- package/dist/esm/server/index.js.map +1 -1
- package/dist/esm/utils/appearance.d.ts +2 -3
- package/dist/esm/utils/appearance.js +2 -2
- package/dist/esm/utils/appearance.js.map +1 -1
- package/package.json +10 -4
- package/dist/cjs/components/Renderer.cjs +0 -70
- package/dist/cjs/components/Renderer.cjs.map +0 -1
- package/dist/cjs/components/Renderer.d.cts +0 -8
- package/dist/cjs/context/RendererContext.cjs.map +0 -1
- package/dist/cjs/context/RendererContext.d.cts +0 -15
- package/dist/esm/components/Renderer.d.ts +0 -8
- package/dist/esm/components/Renderer.js +0 -44
- package/dist/esm/components/Renderer.js.map +0 -1
- package/dist/esm/context/RendererContext.d.ts +0 -15
- package/dist/esm/context/RendererContext.js +0 -13
- package/dist/esm/context/RendererContext.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/hooks/internal/useOutletRenderer.ts"],"sourcesContent":["import type { OutletHandle } from '@novu/js/ui';\nimport { type ReactNode, useMemo } from 'react';\nimport { useOutlets } from '../../context/NovuUIContext';\nimport { useDataRef } from './useDataRef';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\n\nexport type OutletRenderer<TArgs extends unknown[]> = (el: HTMLDivElement, ...args: TArgs) => OutletHandle<TArgs>;\n\n/**\n * Turns a React render prop into the renderer the engine expects.\n *\n * The engine only ever sees one function per outlet kind, so a new inline arrow on the host side never remounts\n * anything: the latest render prop is kept in a ref and called during the outlet's own render. A change of the\n * render prop invalidates the outlet store after commit, so outlets that rendered earlier in the same pass catch up.\n */\nexport function useOutletRenderer<TArgs extends unknown[]>(\n renderProp: ((...args: TArgs) => ReactNode) | undefined\n): OutletRenderer<TArgs> | undefined {\n const outlets = useOutlets();\n const latest = useDataRef(renderProp);\n const hasRenderer = !!renderProp;\n\n useIsomorphicLayoutEffect(() => {\n if (hasRenderer) {\n outlets.invalidate();\n }\n }, [outlets, hasRenderer, renderProp]);\n\n return useMemo(() => {\n if (!hasRenderer) {\n return undefined;\n }\n\n return (el: HTMLDivElement, ...args: TArgs) =>\n outlets.mount<TArgs>(el, (...renderArgs: TArgs) => latest.current?.(...renderArgs), args);\n }, [latest, outlets, hasRenderer]);\n}\n"],"mappings":";AACA,SAAyB,eAAe;AACxC,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAC3B,SAAS,iCAAiC;AAWnC,SAAS,kBACd,YACmC;AACnC,QAAM,UAAU,WAAW;AAC3B,QAAM,SAAS,WAAW,UAAU;AACpC,QAAM,cAAc,CAAC,CAAC;AAEtB,4BAA0B,MAAM;AAC9B,QAAI,aAAa;AACf,cAAQ,WAAW;AAAA,IACrB;AAAA,EACF,GAAG,CAAC,SAAS,aAAa,UAAU,CAAC;AAErC,SAAO,QAAQ,MAAM;AACnB,QAAI,CAAC,aAAa;AAChB,aAAO;AAAA,IACT;AAEA,WAAO,CAAC,OAAuB,SAC7B,QAAQ,MAAa,IAAI,IAAI,eAAsB,OAAO,UAAU,GAAG,UAAU,GAAG,IAAI;AAAA,EAC5F,GAAG,CAAC,QAAQ,SAAS,WAAW,CAAC;AACnC;","names":[]}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export { InboxContent, InboxContentProps } from './components/InboxContent.js';
|
|
|
8
8
|
export { MsTeamsConnectButton, MsTeamsConnectButtonProps } from './components/msteams-connect-button/MsTeamsConnectButton.js';
|
|
9
9
|
export { MsTeamsLinkUser, MsTeamsLinkUserProps } from './components/msteams-link-user/MsTeamsLinkUser.js';
|
|
10
10
|
export { NotificationProps, Notifications } from './components/Notifications.js';
|
|
11
|
+
export { NotificationItem, NotificationItemProps } from './components/notification-item/NotificationItem.js';
|
|
11
12
|
export { Preferences } from './components/Preferences.js';
|
|
12
13
|
export { SlackConnectButton, SlackConnectButtonProps } from './components/slack-connect-button/SlackConnectButton.js';
|
|
13
14
|
export { SlackLinkUser, SlackLinkUserProps } from './components/slack-link-user/SlackLinkUser.js';
|
|
@@ -37,6 +38,11 @@ import 'react';
|
|
|
37
38
|
import './components/NovuUI.js';
|
|
38
39
|
import './components/msteams-connect-button/DefaultMsTeamsConnectButton.js';
|
|
39
40
|
import './components/msteams-link-user/DefaultMsTeamsLinkUser.js';
|
|
41
|
+
import './components/notification-item/parts/Dot.js';
|
|
42
|
+
import './components/notification-item/parts/Date.js';
|
|
43
|
+
import './components/notification-item/parts/Subject.js';
|
|
44
|
+
import './components/notification-item/parts/Content.js';
|
|
45
|
+
import './components/notification-item/parts/Avatar.js';
|
|
40
46
|
import './components/slack-connect-button/DefaultSlackConnectButton.js';
|
|
41
47
|
import './components/slack-link-user/DefaultSlackLinkUser.js';
|
|
42
48
|
import './components/subscription/DefaultSubscription.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
|
-
import {
|
|
2
|
+
import { PreferenceLevel, pendingActionKey, SeverityLevelEnum, WorkflowCriticalityEnum } from "@novu/js";
|
|
3
3
|
import {
|
|
4
4
|
Bell,
|
|
5
5
|
Inbox,
|
|
6
6
|
InboxContent,
|
|
7
7
|
MsTeamsConnectButton,
|
|
8
8
|
MsTeamsLinkUser,
|
|
9
|
+
NotificationItem,
|
|
9
10
|
Notifications,
|
|
10
11
|
NovuProvider,
|
|
11
12
|
Preferences,
|
|
@@ -17,7 +18,6 @@ import {
|
|
|
17
18
|
TelegramConnectButton
|
|
18
19
|
} from "./components/index.js";
|
|
19
20
|
import {
|
|
20
|
-
useWebChat,
|
|
21
21
|
useChannelConnection,
|
|
22
22
|
useChannelConnections,
|
|
23
23
|
useChannelEndpoint,
|
|
@@ -33,7 +33,8 @@ import {
|
|
|
33
33
|
useSubscription,
|
|
34
34
|
useSubscriptions,
|
|
35
35
|
useTelegramSubscriberLink,
|
|
36
|
-
useUpdateSubscription
|
|
36
|
+
useUpdateSubscription,
|
|
37
|
+
useWebChat
|
|
37
38
|
} from "./hooks/index.js";
|
|
38
39
|
export {
|
|
39
40
|
Bell,
|
|
@@ -41,6 +42,7 @@ export {
|
|
|
41
42
|
InboxContent,
|
|
42
43
|
MsTeamsConnectButton,
|
|
43
44
|
MsTeamsLinkUser,
|
|
45
|
+
NotificationItem,
|
|
44
46
|
Notifications,
|
|
45
47
|
NovuProvider,
|
|
46
48
|
PreferenceLevel,
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export type * from '@novu/js';\nexport {
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export type * from '@novu/js';\nexport { PreferenceLevel, pendingActionKey, SeverityLevelEnum, WorkflowCriticalityEnum } from '@novu/js';\n\nexport type {\n AllLocalization,\n AllLocalizationKey,\n ChannelConnectButtonIconKey,\n ElementStyles,\n InboxAppearance,\n InboxAppearanceCallback,\n InboxAppearanceCallbackFunction,\n InboxAppearanceCallbackKeys,\n InboxAppearanceKey,\n InboxElements,\n InboxLocalization,\n InboxLocalizationKey,\n InboxTheme,\n NotificationActionClickHandler,\n NotificationClickHandler,\n NotificationRenderer,\n PreferenceGroups,\n PreferencesFilter,\n RouterPush,\n SubscriptionAppearance,\n SubscriptionAppearanceCallback,\n SubscriptionAppearanceCallbackFunction,\n SubscriptionAppearanceCallbackKeys,\n SubscriptionAppearanceKey,\n SubscriptionElements,\n SubscriptionLocalization,\n SubscriptionLocalizationKey,\n SubscriptionTheme,\n Tab,\n Variables,\n} from '@novu/js/ui';\nexport type {\n BellProps,\n InboxContentProps,\n InboxProps,\n MsTeamsConnectButtonProps,\n MsTeamsLinkUserProps,\n NotificationItemProps,\n NotificationProps,\n NovuProviderProps,\n SlackConnectButtonProps,\n SlackLinkUserProps,\n SubscriptionButtonProps,\n SubscriptionPreferencesProps,\n SubscriptionProps,\n TelegramConnectButtonProps,\n} from './components';\nexport {\n Bell,\n Inbox,\n InboxContent,\n MsTeamsConnectButton,\n MsTeamsLinkUser,\n NotificationItem,\n Notifications,\n NovuProvider,\n Preferences,\n SlackConnectButton,\n SlackLinkUser,\n Subscription,\n SubscriptionButton,\n SubscriptionPreferences,\n TelegramConnectButton,\n} from './components';\nexport type {\n UseChannelConnectionProps,\n UseChannelConnectionResult,\n UseChannelConnectionsProps,\n UseChannelConnectionsResult,\n UseChannelEndpointProps,\n UseChannelEndpointResult,\n UseCountsProps,\n UseCountsResult,\n UseCreateChannelEndpointProps,\n UseCreateChannelEndpointResult,\n UseDeleteChannelEndpointProps,\n UseDeleteChannelEndpointResult,\n UseNotificationsProps,\n UseNotificationsResult,\n UsePreferencesResult,\n UseScheduleProps as UsePreferencesProps,\n UseTelegramSubscriberLinkProps,\n UseTelegramSubscriberLinkResult,\n UseWebChatProps,\n UseWebChatResult,\n} from './hooks';\nexport {\n useChannelConnection,\n useChannelConnections,\n useChannelEndpoint,\n useCounts,\n useCreateChannelEndpoint,\n useCreateSubscription,\n useDeleteChannelEndpoint,\n useNotifications,\n useNovu,\n usePreferences,\n useRemoveSubscription,\n useSchedule,\n useSubscription,\n useSubscriptions,\n useTelegramSubscriberLink,\n useUpdateSubscription,\n useWebChat,\n} from './hooks';\n\nexport type {\n BaseProps,\n BellRenderer,\n BodyRenderer,\n DefaultInboxProps,\n DefaultProps,\n NoRendererProps,\n NotificationRendererProps,\n NotificationsRenderer,\n ReactAllAppearance,\n ReactInboxAppearance,\n ReactInboxTheme,\n ReactSubscriptionAppearance,\n ReactSubscriptionTheme,\n SubjectBodyRendererProps,\n SubjectRenderer,\n WithChildrenProps,\n} from './utils/types';\n"],"mappings":";AACA,SAAS,iBAAiB,kBAAkB,mBAAmB,+BAA+B;AAkD9F;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAuBP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { InboxProps } from '../components/Inbox.js';
|
|
3
|
+
import { NotificationItem as NotificationItem$1 } from '../components/notification-item/NotificationItem.js';
|
|
4
|
+
export { NotificationItemProps } from '../components/notification-item/NotificationItem.js';
|
|
3
5
|
export * from '@novu/js';
|
|
4
6
|
export { PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum, pendingActionKey } from '@novu/js';
|
|
5
7
|
import { NovuProviderProps } from '../hooks/NovuProvider.js';
|
|
@@ -19,6 +21,11 @@ export { InboxContentProps } from '../components/InboxContent.js';
|
|
|
19
21
|
export { BaseProps, BellRenderer, BodyRenderer, DefaultInboxProps, DefaultProps, NoRendererProps, NotificationRendererProps, NotificationsRenderer, SubjectBodyRendererProps, SubjectRenderer, WithChildrenProps } from '../utils/types.js';
|
|
20
22
|
export { NotificationProps } from '../components/Notifications.js';
|
|
21
23
|
import 'react';
|
|
24
|
+
import '../components/notification-item/parts/Dot.js';
|
|
25
|
+
import '../components/notification-item/parts/Date.js';
|
|
26
|
+
import '../components/notification-item/parts/Subject.js';
|
|
27
|
+
import '../components/notification-item/parts/Content.js';
|
|
28
|
+
import '../components/notification-item/parts/Avatar.js';
|
|
22
29
|
|
|
23
30
|
/**
|
|
24
31
|
* Exporting all components from the components folder
|
|
@@ -29,6 +36,13 @@ import 'react';
|
|
|
29
36
|
declare function Inbox(props: InboxProps): react_jsx_runtime.JSX.Element;
|
|
30
37
|
declare function InboxContent(): void;
|
|
31
38
|
declare function Notifications(): void;
|
|
39
|
+
/** The server stand-in for a client component: it takes exactly the client's props and renders nothing. */
|
|
40
|
+
type ServerStub<TComponent> = TComponent extends (...args: infer TArgs) => unknown ? (...args: TArgs) => null : never;
|
|
41
|
+
/** A stubbed component together with the stubs of its static parts, so a part missing here fails to compile. */
|
|
42
|
+
type ServerCounterpart<TComponent> = ServerStub<TComponent> & {
|
|
43
|
+
[TPart in keyof TComponent as TComponent[TPart] extends (...args: never) => unknown ? TPart : never]: ServerStub<TComponent[TPart]>;
|
|
44
|
+
};
|
|
45
|
+
declare const NotificationItem: ServerCounterpart<typeof NotificationItem$1>;
|
|
32
46
|
declare function Preferences(): void;
|
|
33
47
|
declare function Bell(): void;
|
|
34
48
|
declare function NovuProvider(props: NovuProviderProps): react_jsx_runtime.JSX.Element;
|
|
@@ -52,4 +66,4 @@ declare function useUpdateSubscription(_?: UseUpdateSubscriptionProps): UseUpdat
|
|
|
52
66
|
declare function useRemoveSubscription(_?: UseRemoveSubscriptionProps): UseRemoveSubscriptionResult;
|
|
53
67
|
declare function useSubscriptions(_: UseSubscriptionsProps): UseSubscriptionsResult;
|
|
54
68
|
|
|
55
|
-
export { Bell, Inbox, InboxContent, InboxProps, MsTeamsConnectButton, MsTeamsLinkUser, Notifications, NovuProvider, NovuProviderProps, Preferences, SlackConnectButton, SlackLinkUser, Subscription, SubscriptionButton, SubscriptionPreferences, TelegramConnectButton, UseCountsProps, UseCountsResult, UseNotificationsProps, UseNotificationsResult, UseScheduleProps as UsePreferencesProps, UsePreferencesResult, UseWebChatProps, UseWebChatResult, useCounts, useCreateSubscription, useNotifications, useNovu, usePreferences, useRemoveSubscription, useSchedule, useSubscription, useSubscriptions, useUpdateSubscription, useWebChat };
|
|
69
|
+
export { Bell, Inbox, InboxContent, InboxProps, MsTeamsConnectButton, MsTeamsLinkUser, NotificationItem, Notifications, NovuProvider, NovuProviderProps, Preferences, SlackConnectButton, SlackLinkUser, Subscription, SubscriptionButton, SubscriptionPreferences, TelegramConnectButton, UseCountsProps, UseCountsResult, UseNotificationsProps, UseNotificationsResult, UseScheduleProps as UsePreferencesProps, UsePreferencesResult, UseWebChatProps, UseWebChatResult, useCounts, useCreateSubscription, useNotifications, useNovu, usePreferences, useRemoveSubscription, useSchedule, useSubscription, useSubscriptions, useUpdateSubscription, useWebChat };
|
package/dist/esm/server/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/server/index.tsx
|
|
2
2
|
import { ShadowRootDetector } from "../components/ShadowRootDetector.js";
|
|
3
|
-
import {
|
|
3
|
+
import { PreferenceLevel, pendingActionKey, SeverityLevelEnum, WorkflowCriticalityEnum } from "@novu/js";
|
|
4
4
|
import { Fragment, jsx } from "react/jsx-runtime";
|
|
5
5
|
function Inbox(props) {
|
|
6
6
|
return /* @__PURE__ */ jsx(ShadowRootDetector, {});
|
|
@@ -9,6 +9,18 @@ function InboxContent() {
|
|
|
9
9
|
}
|
|
10
10
|
function Notifications() {
|
|
11
11
|
}
|
|
12
|
+
var createStub = () => () => null;
|
|
13
|
+
var NotificationItem = Object.assign(createStub(), {
|
|
14
|
+
Avatar: createStub(),
|
|
15
|
+
Content: createStub(),
|
|
16
|
+
Text: createStub(),
|
|
17
|
+
Subject: createStub(),
|
|
18
|
+
Body: createStub(),
|
|
19
|
+
DefaultActions: createStub(),
|
|
20
|
+
CustomActions: createStub(),
|
|
21
|
+
Date: createStub(),
|
|
22
|
+
Dot: createStub()
|
|
23
|
+
});
|
|
12
24
|
function Preferences() {
|
|
13
25
|
}
|
|
14
26
|
function Bell() {
|
|
@@ -141,6 +153,7 @@ export {
|
|
|
141
153
|
InboxContent,
|
|
142
154
|
MsTeamsConnectButton,
|
|
143
155
|
MsTeamsLinkUser,
|
|
156
|
+
NotificationItem,
|
|
144
157
|
Notifications,
|
|
145
158
|
NovuProvider,
|
|
146
159
|
PreferenceLevel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/server/index.tsx"],"sourcesContent":["import type { InboxProps } from '../components/Inbox';\nimport { ShadowRootDetector } from '../components/ShadowRootDetector';\nimport type {\n UseWebChatProps,\n UseWebChatResult,\n UseCreateSubscriptionProps,\n UseCreateSubscriptionResult,\n UseNotificationsProps,\n UseNotificationsResult,\n UsePreferencesProps,\n UsePreferencesResult,\n UseRemoveSubscriptionProps,\n UseRemoveSubscriptionResult,\n UseScheduleProps,\n UseScheduleResult,\n UseSubscriptionProps,\n UseSubscriptionResult,\n UseSubscriptionsProps,\n UseSubscriptionsResult,\n UseUpdateSubscriptionProps,\n UseUpdateSubscriptionResult,\n} from '../hooks';\nimport type { NovuProviderProps } from '../hooks/NovuProvider';\nimport type { UseCountsProps, UseCountsResult } from '../hooks/useCounts';\n\n/**\n * Exporting all components from the components folder\n * as empty functions to fix build errors in SSR\n * This will be replaced with actual components\n * when we implement the SSR components in @novu/js/ui\n */\nexport function Inbox(props: InboxProps) {\n return <ShadowRootDetector />;\n}\n\nexport function InboxContent() {}\n\nexport function Notifications() {}\n\nexport function Preferences() {}\n\nexport function Bell() {}\n\nexport function NovuProvider(props: NovuProviderProps) {\n return <>{props.children}</>;\n}\n\nexport function Subscription() {\n return <ShadowRootDetector />;\n}\n\nexport function SubscriptionButton() {}\n\nexport function SubscriptionPreferences() {}\n\nexport function SlackConnectButton() {\n return <ShadowRootDetector />;\n}\n\nexport function SlackLinkUser() {\n return <ShadowRootDetector />;\n}\n\nexport function MsTeamsConnectButton() {\n return <ShadowRootDetector />;\n}\n\nexport function MsTeamsLinkUser() {\n return <ShadowRootDetector />;\n}\n\nexport function TelegramConnectButton() {\n return <ShadowRootDetector />;\n}\n\nexport function useNovu() {\n return null;\n}\n\nexport function useWebChat(_: UseWebChatProps): UseWebChatResult {\n return {\n messages: [],\n pendingActions: [],\n isLoading: true,\n isRunning: false,\n typing: undefined,\n conversationStatus: 'active',\n run: { isRunning: false },\n pagination: {\n status: 'idle',\n hasMore: false,\n fetchMore: () => Promise.resolve({ data: undefined, error: undefined }),\n },\n isRecovering: false,\n catchUpError: undefined,\n refetch: () => Promise.resolve(),\n sendMessage: () => Promise.resolve({ data: undefined, error: undefined }),\n respondToAction: () => Promise.resolve({ data: undefined, error: undefined }),\n sendAction: () => Promise.resolve({ data: undefined, error: undefined }),\n retryMessage: () => Promise.resolve({ data: undefined, error: undefined }),\n startNewConversation: () => {},\n };\n}\n\nexport function useCounts(_: UseCountsProps): UseCountsResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport function useNotifications(_: UseNotificationsProps): UseNotificationsResult {\n return {\n isLoading: false,\n isFetching: false,\n hasMore: false,\n readAll: () => Promise.resolve({ data: undefined, error: undefined }),\n seenAll: () => Promise.resolve({ data: undefined, error: undefined }),\n archiveAll: () => Promise.resolve({ data: undefined, error: undefined }),\n archiveAllRead: () => Promise.resolve({ data: undefined, error: undefined }),\n refetch: () => Promise.resolve(),\n fetchMore: () => Promise.resolve(),\n };\n}\n\nexport function usePreferences(_: UsePreferencesProps): UsePreferencesResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport function useSchedule(_: UseScheduleProps): UseScheduleResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport function useSubscription(_: UseSubscriptionProps): UseSubscriptionResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport function useCreateSubscription(_: UseCreateSubscriptionProps = {}): UseCreateSubscriptionResult {\n return {\n isCreating: false,\n error: undefined,\n create: () => Promise.resolve({ data: undefined, error: undefined }),\n };\n}\n\nexport function useUpdateSubscription(_: UseUpdateSubscriptionProps = {}): UseUpdateSubscriptionResult {\n return {\n isUpdating: false,\n error: undefined,\n update: () => Promise.resolve({ data: undefined, error: undefined }),\n };\n}\n\nexport function useRemoveSubscription(_: UseRemoveSubscriptionProps = {}): UseRemoveSubscriptionResult {\n return {\n isRemoving: false,\n error: undefined,\n remove: () => Promise.resolve({ data: undefined, error: undefined }),\n };\n}\n\nexport function useSubscriptions(_: UseSubscriptionsProps): UseSubscriptionsResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport type * from '@novu/js';\nexport { pendingActionKey, PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum } from '@novu/js';\n\nexport type {\n AllLocalization,\n AllLocalizationKey,\n ElementStyles,\n InboxAppearance,\n InboxAppearanceCallback,\n InboxAppearanceCallbackFunction,\n InboxAppearanceCallbackKeys,\n InboxAppearanceKey,\n InboxElements,\n InboxLocalization,\n InboxLocalizationKey,\n InboxTheme,\n NotificationActionClickHandler,\n NotificationClickHandler,\n NotificationRenderer,\n PreferenceGroups,\n PreferencesFilter,\n RouterPush,\n SubscriptionAppearance,\n SubscriptionAppearanceCallback,\n SubscriptionAppearanceCallbackFunction,\n SubscriptionAppearanceCallbackKeys,\n SubscriptionAppearanceKey,\n SubscriptionElements,\n SubscriptionLocalization,\n SubscriptionLocalizationKey,\n SubscriptionTheme,\n Tab,\n Variables,\n} from '@novu/js/ui';\n\nexport type { BellProps, InboxContentProps, InboxProps, NotificationProps, NovuProviderProps } from '../components';\n\nexport type {\n UseWebChatProps,\n UseWebChatResult,\n UseCountsProps,\n UseCountsResult,\n UseNotificationsProps,\n UseNotificationsResult,\n UsePreferencesResult,\n UseScheduleProps as UsePreferencesProps,\n} from '../hooks';\n\nexport type {\n BaseProps,\n BellRenderer,\n BodyRenderer,\n DefaultInboxProps,\n DefaultProps,\n NoRendererProps,\n NotificationRendererProps,\n NotificationsRenderer,\n SubjectBodyRendererProps,\n SubjectRenderer,\n WithChildrenProps,\n} from '../utils/types';\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/server/index.tsx"],"sourcesContent":["import type { InboxProps } from '../components/Inbox';\nimport type { NotificationItem as ClientNotificationItem } from '../components/notification-item/NotificationItem';\nimport { ShadowRootDetector } from '../components/ShadowRootDetector';\nimport type {\n UseCreateSubscriptionProps,\n UseCreateSubscriptionResult,\n UseNotificationsProps,\n UseNotificationsResult,\n UsePreferencesProps,\n UsePreferencesResult,\n UseRemoveSubscriptionProps,\n UseRemoveSubscriptionResult,\n UseScheduleProps,\n UseScheduleResult,\n UseSubscriptionProps,\n UseSubscriptionResult,\n UseSubscriptionsProps,\n UseSubscriptionsResult,\n UseUpdateSubscriptionProps,\n UseUpdateSubscriptionResult,\n UseWebChatProps,\n UseWebChatResult,\n} from '../hooks';\nimport type { NovuProviderProps } from '../hooks/NovuProvider';\nimport type { UseCountsProps, UseCountsResult } from '../hooks/useCounts';\n\n/**\n * Exporting all components from the components folder\n * as empty functions to fix build errors in SSR\n * This will be replaced with actual components\n * when we implement the SSR components in @novu/js/ui\n */\nexport function Inbox(props: InboxProps) {\n return <ShadowRootDetector />;\n}\n\nexport function InboxContent() {}\n\nexport function Notifications() {}\n\n/** The server stand-in for a client component: it takes exactly the client's props and renders nothing. */\ntype ServerStub<TComponent> = TComponent extends (...args: infer TArgs) => unknown ? (...args: TArgs) => null : never;\n\n/** A stubbed component together with the stubs of its static parts, so a part missing here fails to compile. */\ntype ServerCounterpart<TComponent> = ServerStub<TComponent> & {\n [TPart in keyof TComponent as TComponent[TPart] extends (...args: never) => unknown ? TPart : never]: ServerStub<\n TComponent[TPart]\n >;\n};\n\nconst createStub = () => () => null;\n\nexport const NotificationItem: ServerCounterpart<typeof ClientNotificationItem> = Object.assign(createStub(), {\n Avatar: createStub(),\n Content: createStub(),\n Text: createStub(),\n Subject: createStub(),\n Body: createStub(),\n DefaultActions: createStub(),\n CustomActions: createStub(),\n Date: createStub(),\n Dot: createStub(),\n});\n\nexport function Preferences() {}\n\nexport function Bell() {}\n\nexport function NovuProvider(props: NovuProviderProps) {\n return <>{props.children}</>;\n}\n\nexport function Subscription() {\n return <ShadowRootDetector />;\n}\n\nexport function SubscriptionButton() {}\n\nexport function SubscriptionPreferences() {}\n\nexport function SlackConnectButton() {\n return <ShadowRootDetector />;\n}\n\nexport function SlackLinkUser() {\n return <ShadowRootDetector />;\n}\n\nexport function MsTeamsConnectButton() {\n return <ShadowRootDetector />;\n}\n\nexport function MsTeamsLinkUser() {\n return <ShadowRootDetector />;\n}\n\nexport function TelegramConnectButton() {\n return <ShadowRootDetector />;\n}\n\nexport function useNovu() {\n return null;\n}\n\nexport function useWebChat(_: UseWebChatProps): UseWebChatResult {\n return {\n messages: [],\n pendingActions: [],\n isLoading: true,\n isRunning: false,\n typing: undefined,\n conversationStatus: 'active',\n run: { isRunning: false },\n pagination: {\n status: 'idle',\n hasMore: false,\n fetchMore: () => Promise.resolve({ data: undefined, error: undefined }),\n },\n isRecovering: false,\n catchUpError: undefined,\n refetch: () => Promise.resolve(),\n sendMessage: () => Promise.resolve({ data: undefined, error: undefined }),\n respondToAction: () => Promise.resolve({ data: undefined, error: undefined }),\n sendAction: () => Promise.resolve({ data: undefined, error: undefined }),\n retryMessage: () => Promise.resolve({ data: undefined, error: undefined }),\n startNewConversation: () => {},\n };\n}\n\nexport function useCounts(_: UseCountsProps): UseCountsResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport function useNotifications(_: UseNotificationsProps): UseNotificationsResult {\n return {\n isLoading: false,\n isFetching: false,\n hasMore: false,\n readAll: () => Promise.resolve({ data: undefined, error: undefined }),\n seenAll: () => Promise.resolve({ data: undefined, error: undefined }),\n archiveAll: () => Promise.resolve({ data: undefined, error: undefined }),\n archiveAllRead: () => Promise.resolve({ data: undefined, error: undefined }),\n refetch: () => Promise.resolve(),\n fetchMore: () => Promise.resolve(),\n };\n}\n\nexport function usePreferences(_: UsePreferencesProps): UsePreferencesResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport function useSchedule(_: UseScheduleProps): UseScheduleResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport function useSubscription(_: UseSubscriptionProps): UseSubscriptionResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport function useCreateSubscription(_: UseCreateSubscriptionProps = {}): UseCreateSubscriptionResult {\n return {\n isCreating: false,\n error: undefined,\n create: () => Promise.resolve({ data: undefined, error: undefined }),\n };\n}\n\nexport function useUpdateSubscription(_: UseUpdateSubscriptionProps = {}): UseUpdateSubscriptionResult {\n return {\n isUpdating: false,\n error: undefined,\n update: () => Promise.resolve({ data: undefined, error: undefined }),\n };\n}\n\nexport function useRemoveSubscription(_: UseRemoveSubscriptionProps = {}): UseRemoveSubscriptionResult {\n return {\n isRemoving: false,\n error: undefined,\n remove: () => Promise.resolve({ data: undefined, error: undefined }),\n };\n}\n\nexport function useSubscriptions(_: UseSubscriptionsProps): UseSubscriptionsResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport type * from '@novu/js';\nexport { PreferenceLevel, pendingActionKey, SeverityLevelEnum, WorkflowCriticalityEnum } from '@novu/js';\n\nexport type {\n AllLocalization,\n AllLocalizationKey,\n ElementStyles,\n InboxAppearance,\n InboxAppearanceCallback,\n InboxAppearanceCallbackFunction,\n InboxAppearanceCallbackKeys,\n InboxAppearanceKey,\n InboxElements,\n InboxLocalization,\n InboxLocalizationKey,\n InboxTheme,\n NotificationActionClickHandler,\n NotificationClickHandler,\n NotificationRenderer,\n PreferenceGroups,\n PreferencesFilter,\n RouterPush,\n SubscriptionAppearance,\n SubscriptionAppearanceCallback,\n SubscriptionAppearanceCallbackFunction,\n SubscriptionAppearanceCallbackKeys,\n SubscriptionAppearanceKey,\n SubscriptionElements,\n SubscriptionLocalization,\n SubscriptionLocalizationKey,\n SubscriptionTheme,\n Tab,\n Variables,\n} from '@novu/js/ui';\n\nexport type {\n BellProps,\n InboxContentProps,\n InboxProps,\n NotificationItemProps,\n NotificationProps,\n NovuProviderProps,\n} from '../components';\n\nexport type {\n UseCountsProps,\n UseCountsResult,\n UseNotificationsProps,\n UseNotificationsResult,\n UsePreferencesResult,\n UseScheduleProps as UsePreferencesProps,\n UseWebChatProps,\n UseWebChatResult,\n} from '../hooks';\n\nexport type {\n BaseProps,\n BellRenderer,\n BodyRenderer,\n DefaultInboxProps,\n DefaultProps,\n NoRendererProps,\n NotificationRendererProps,\n NotificationsRenderer,\n SubjectBodyRendererProps,\n SubjectRenderer,\n WithChildrenProps,\n} from '../utils/types';\n"],"mappings":"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","names":[]}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { AllAppearance } from '@novu/js/ui';
|
|
2
|
-
import {
|
|
2
|
+
import { OutletStore } from '../context/OutletStore.js';
|
|
3
3
|
import { ReactInboxAppearance, ReactSubscriptionAppearance, ReactAllAppearance } from './types.js';
|
|
4
|
-
import 'react/jsx-runtime';
|
|
5
4
|
import 'react';
|
|
6
5
|
import '@novu/js';
|
|
7
6
|
|
|
8
|
-
declare function adaptAppearanceForJs(appearance: ReactInboxAppearance | ReactSubscriptionAppearance | ReactAllAppearance,
|
|
7
|
+
declare function adaptAppearanceForJs(appearance: ReactInboxAppearance | ReactSubscriptionAppearance | ReactAllAppearance, outlets: OutletStore): AllAppearance | undefined;
|
|
9
8
|
|
|
10
9
|
export { adaptAppearanceForJs };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/utils/appearance.ts
|
|
2
|
-
function adaptAppearanceForJs(appearance,
|
|
2
|
+
function adaptAppearanceForJs(appearance, outlets) {
|
|
3
3
|
if (!appearance) {
|
|
4
4
|
return void 0;
|
|
5
5
|
}
|
|
@@ -12,7 +12,7 @@ function adaptAppearanceForJs(appearance, mountElement) {
|
|
|
12
12
|
const reactRenderer = icons[iconKey];
|
|
13
13
|
if (reactRenderer) {
|
|
14
14
|
jsIcons[iconKey] = (el, props) => {
|
|
15
|
-
return
|
|
15
|
+
return outlets.mount(el, reactRenderer, [props]);
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/appearance.ts"],"sourcesContent":["import type { AllAppearance, AllIconKey, AllIconOverrides } from '@novu/js/ui';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/appearance.ts"],"sourcesContent":["import type { AllAppearance, AllIconKey, AllIconOverrides } from '@novu/js/ui';\nimport type { OutletStore } from '../context/OutletStore';\nimport type { ReactAllAppearance, ReactIconRenderer, ReactInboxAppearance, ReactSubscriptionAppearance } from './types';\n\nexport function adaptAppearanceForJs(\n appearance: ReactInboxAppearance | ReactSubscriptionAppearance | ReactAllAppearance,\n outlets: OutletStore\n): AllAppearance | undefined {\n if (!appearance) {\n return undefined;\n }\n const { icons, ...restAppearance } = appearance;\n const jsAppearance = { ...restAppearance } as AllAppearance;\n\n if (icons) {\n const jsIcons: AllIconOverrides = {};\n const iconKeys = Object.keys(icons) as Array<AllIconKey>;\n\n for (const iconKey of iconKeys) {\n // @ts-expect-error: cant easily fix this type error\n const reactRenderer = icons[iconKey] as ReactIconRenderer;\n\n if (reactRenderer) {\n jsIcons[iconKey] = (el: HTMLDivElement, props: { class?: string }) => {\n return outlets.mount(el, reactRenderer, [props]);\n };\n }\n }\n\n // JsAppearance also has .icons directly (from JsTheme part of JsAppearance)\n jsAppearance.icons = jsIcons;\n } else {\n // If original didn't have icons, ensure the clone doesn't either\n delete jsAppearance.icons;\n }\n\n return jsAppearance;\n}\n"],"mappings":";AAIO,SAAS,qBACd,YACA,SAC2B;AAC3B,MAAI,CAAC,YAAY;AACf,WAAO;AAAA,EACT;AACA,QAAM,EAAE,OAAO,GAAG,eAAe,IAAI;AACrC,QAAM,eAAe,EAAE,GAAG,eAAe;AAEzC,MAAI,OAAO;AACT,UAAM,UAA4B,CAAC;AACnC,UAAM,WAAW,OAAO,KAAK,KAAK;AAElC,eAAW,WAAW,UAAU;AAE9B,YAAM,gBAAgB,MAAM,OAAO;AAEnC,UAAI,eAAe;AACjB,gBAAQ,OAAO,IAAI,CAAC,IAAoB,UAA8B;AACpE,iBAAO,QAAQ,MAAM,IAAI,eAAe,CAAC,KAAK,CAAC;AAAA,QACjD;AAAA,MACF;AAAA,IACF;AAGA,iBAAa,QAAQ;AAAA,EACvB,OAAO;AAEL,WAAO,aAAa;AAAA,EACtB;AAEA,SAAO;AACT;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@novu/react",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.20.0-rc.569d407fd0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/novuhq/novu",
|
|
@@ -104,12 +104,16 @@
|
|
|
104
104
|
},
|
|
105
105
|
"devDependencies": {
|
|
106
106
|
"@arethetypeswrong/cli": "^0.18.5",
|
|
107
|
+
"@testing-library/dom": "^10.4.1",
|
|
108
|
+
"@testing-library/react": "^16.3.3",
|
|
107
109
|
"@types/node": "^22.0.0",
|
|
108
110
|
"@types/react": "*",
|
|
109
111
|
"@types/react-dom": "*",
|
|
110
112
|
"esbuild-plugin-file-path-extensions": "^2.1.4",
|
|
113
|
+
"jsdom": "^30.0.1",
|
|
111
114
|
"tsup": "^8.2.1",
|
|
112
|
-
"typescript": "5.6.2"
|
|
115
|
+
"typescript": "5.6.2",
|
|
116
|
+
"vitest": "^4.1.0"
|
|
113
117
|
},
|
|
114
118
|
"peerDependencies": {
|
|
115
119
|
"react": "^18.0.0 || ^19.0.0 || ^19.0.0-0",
|
|
@@ -121,7 +125,7 @@
|
|
|
121
125
|
}
|
|
122
126
|
},
|
|
123
127
|
"dependencies": {
|
|
124
|
-
"@novu/js": "3.
|
|
128
|
+
"@novu/js": "3.20.0-rc.569d407fd0"
|
|
125
129
|
},
|
|
126
130
|
"nx": {
|
|
127
131
|
"tags": [
|
|
@@ -135,6 +139,8 @@
|
|
|
135
139
|
"check-exports": "attw --pack .",
|
|
136
140
|
"check": "biome check .",
|
|
137
141
|
"check:fix": "biome check --write .",
|
|
138
|
-
"publish:rc": "pnpm publish --tag rc"
|
|
142
|
+
"publish:rc": "pnpm publish --tag rc",
|
|
143
|
+
"test": "vitest run",
|
|
144
|
+
"test:watch": "vitest"
|
|
139
145
|
}
|
|
140
146
|
}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/components/Renderer.tsx
|
|
21
|
-
var Renderer_exports = {};
|
|
22
|
-
__export(Renderer_exports, {
|
|
23
|
-
Renderer: () => Renderer,
|
|
24
|
-
withRenderer: () => withRenderer
|
|
25
|
-
});
|
|
26
|
-
module.exports = __toCommonJS(Renderer_exports);
|
|
27
|
-
var import_react = require("react");
|
|
28
|
-
var import_react_dom = require("react-dom");
|
|
29
|
-
var import_RendererContext = require("../context/RendererContext.cjs");
|
|
30
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
31
|
-
var Renderer = (props) => {
|
|
32
|
-
const { children } = props;
|
|
33
|
-
const [mountedElements, setMountedElements] = (0, import_react.useState)(/* @__PURE__ */ new Map());
|
|
34
|
-
const mountElement = (0, import_react.useCallback)(
|
|
35
|
-
(el, mountedElement) => {
|
|
36
|
-
setMountedElements((prev) => {
|
|
37
|
-
const newMountedElements = new Map(prev);
|
|
38
|
-
newMountedElements.set(el, mountedElement);
|
|
39
|
-
return newMountedElements;
|
|
40
|
-
});
|
|
41
|
-
return () => {
|
|
42
|
-
setMountedElements((prev) => {
|
|
43
|
-
const newMountedElements = new Map(prev);
|
|
44
|
-
newMountedElements.delete(el);
|
|
45
|
-
return newMountedElements;
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
},
|
|
49
|
-
[setMountedElements]
|
|
50
|
-
);
|
|
51
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_RendererContext.RendererProvider, { value: { mountElement }, children: [
|
|
52
|
-
[...mountedElements].map(([element, mountedElement]) => {
|
|
53
|
-
return (0, import_react_dom.createPortal)(mountedElement, element);
|
|
54
|
-
}),
|
|
55
|
-
children
|
|
56
|
-
] });
|
|
57
|
-
};
|
|
58
|
-
var withRenderer = (WrappedComponent) => {
|
|
59
|
-
const HOC = (props) => {
|
|
60
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Renderer, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WrappedComponent, { ...props }) });
|
|
61
|
-
};
|
|
62
|
-
HOC.displayName = `WithRenderer(${WrappedComponent.displayName || WrappedComponent.name || "Component"})`;
|
|
63
|
-
return HOC;
|
|
64
|
-
};
|
|
65
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
66
|
-
0 && (module.exports = {
|
|
67
|
-
Renderer,
|
|
68
|
-
withRenderer
|
|
69
|
-
});
|
|
70
|
-
//# sourceMappingURL=Renderer.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Renderer.tsx"],"sourcesContent":["import { ComponentType, PropsWithChildren, useCallback, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { MountedElement, RendererProvider } from '../context/RendererContext';\n\ntype RendererProps = PropsWithChildren;\nexport const Renderer = (props: RendererProps) => {\n const { children } = props;\n const [mountedElements, setMountedElements] = useState(new Map<HTMLElement, MountedElement>());\n\n const mountElement = useCallback(\n (el: HTMLElement, mountedElement: MountedElement) => {\n setMountedElements((prev) => {\n const newMountedElements = new Map(prev);\n newMountedElements.set(el, mountedElement);\n\n return newMountedElements;\n });\n\n return () => {\n setMountedElements((prev) => {\n const newMountedElements = new Map(prev);\n newMountedElements.delete(el);\n\n return newMountedElements;\n });\n };\n },\n [setMountedElements]\n );\n\n return (\n <RendererProvider value={{ mountElement }}>\n {[...mountedElements].map(([element, mountedElement]) => {\n return createPortal(mountedElement, element);\n })}\n\n {children}\n </RendererProvider>\n );\n};\n\nexport const withRenderer = <P extends object>(\n WrappedComponent: ComponentType<P>\n): ComponentType<P & PropsWithChildren<{}>> => {\n const HOC = (props: P) => {\n return (\n <Renderer>\n <WrappedComponent {...props} />\n </Renderer>\n );\n };\n\n HOC.displayName = `WithRenderer(${WrappedComponent.displayName || WrappedComponent.name || 'Component'})`;\n\n return HOC;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAwE;AACxE,uBAA6B;AAC7B,6BAAiD;AA6B7C;AA1BG,IAAM,WAAW,CAAC,UAAyB;AAChD,QAAM,EAAE,SAAS,IAAI;AACrB,QAAM,CAAC,iBAAiB,kBAAkB,QAAI,uBAAS,oBAAI,IAAiC,CAAC;AAE7F,QAAM,mBAAe;AAAA,IACnB,CAAC,IAAiB,mBAAmC;AACnD,yBAAmB,CAAC,SAAS;AAC3B,cAAM,qBAAqB,IAAI,IAAI,IAAI;AACvC,2BAAmB,IAAI,IAAI,cAAc;AAEzC,eAAO;AAAA,MACT,CAAC;AAED,aAAO,MAAM;AACX,2BAAmB,CAAC,SAAS;AAC3B,gBAAM,qBAAqB,IAAI,IAAI,IAAI;AACvC,6BAAmB,OAAO,EAAE;AAE5B,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,CAAC,kBAAkB;AAAA,EACrB;AAEA,SACE,6CAAC,2CAAiB,OAAO,EAAE,aAAa,GACrC;AAAA,KAAC,GAAG,eAAe,EAAE,IAAI,CAAC,CAAC,SAAS,cAAc,MAAM;AACvD,iBAAO,+BAAa,gBAAgB,OAAO;AAAA,IAC7C,CAAC;AAAA,IAEA;AAAA,KACH;AAEJ;AAEO,IAAM,eAAe,CAC1B,qBAC6C;AAC7C,QAAM,MAAM,CAAC,UAAa;AACxB,WACE,4CAAC,YACC,sDAAC,oBAAkB,GAAG,OAAO,GAC/B;AAAA,EAEJ;AAEA,MAAI,cAAc,gBAAgB,iBAAiB,eAAe,iBAAiB,QAAQ,WAAW;AAEtG,SAAO;AACT;","names":[]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { PropsWithChildren, ComponentType } from 'react';
|
|
3
|
-
|
|
4
|
-
type RendererProps = PropsWithChildren;
|
|
5
|
-
declare const Renderer: (props: RendererProps) => react_jsx_runtime.JSX.Element;
|
|
6
|
-
declare const withRenderer: <P extends object>(WrappedComponent: ComponentType<P>) => ComponentType<P & PropsWithChildren<{}>>;
|
|
7
|
-
|
|
8
|
-
export { Renderer, withRenderer };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/context/RendererContext.tsx"],"sourcesContent":["import React from 'react';\nimport { createContextAndHook } from '../utils/createContextAndHook';\n\nexport type MountedElement = React.ReactNode;\nexport type MountedElements = Map<HTMLElement, MountedElement>;\n\ntype RendererContextValue = {\n mountElement: (el: HTMLElement, mountedElement: MountedElement) => () => void;\n};\n\nconst [RendererContext, useRendererContext, useUnsafeRendererContext] =\n createContextAndHook<RendererContextValue>('RendererContext');\n\nconst RendererProvider = (props: React.PropsWithChildren<{ value: RendererContextValue }>) => {\n return <RendererContext.Provider value={{ value: props.value }}>{props.children}</RendererContext.Provider>;\n};\n\nexport { useRendererContext as useRenderer, useUnsafeRendererContext as useUnsafeRenderer, RendererProvider };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,kCAAqC;AAa5B;AAJT,IAAM,CAAC,iBAAiB,oBAAoB,wBAAwB,QAClE,kDAA2C,iBAAiB;AAE9D,IAAM,mBAAmB,CAAC,UAAoE;AAC5F,SAAO,4CAAC,gBAAgB,UAAhB,EAAyB,OAAO,EAAE,OAAO,MAAM,MAAM,GAAI,gBAAM,UAAS;AAClF;","names":[]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import React__default from 'react';
|
|
3
|
-
|
|
4
|
-
type MountedElement = React__default.ReactNode;
|
|
5
|
-
type MountedElements = Map<HTMLElement, MountedElement>;
|
|
6
|
-
type RendererContextValue = {
|
|
7
|
-
mountElement: (el: HTMLElement, mountedElement: MountedElement) => () => void;
|
|
8
|
-
};
|
|
9
|
-
declare const useRendererContext: () => RendererContextValue;
|
|
10
|
-
declare const useUnsafeRendererContext: () => RendererContextValue | Partial<RendererContextValue>;
|
|
11
|
-
declare const RendererProvider: (props: React__default.PropsWithChildren<{
|
|
12
|
-
value: RendererContextValue;
|
|
13
|
-
}>) => react_jsx_runtime.JSX.Element;
|
|
14
|
-
|
|
15
|
-
export { type MountedElement, type MountedElements, RendererProvider, useRendererContext as useRenderer, useUnsafeRendererContext as useUnsafeRenderer };
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { PropsWithChildren, ComponentType } from 'react';
|
|
3
|
-
|
|
4
|
-
type RendererProps = PropsWithChildren;
|
|
5
|
-
declare const Renderer: (props: RendererProps) => react_jsx_runtime.JSX.Element;
|
|
6
|
-
declare const withRenderer: <P extends object>(WrappedComponent: ComponentType<P>) => ComponentType<P & PropsWithChildren<{}>>;
|
|
7
|
-
|
|
8
|
-
export { Renderer, withRenderer };
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// src/components/Renderer.tsx
|
|
2
|
-
import { useCallback, useState } from "react";
|
|
3
|
-
import { createPortal } from "react-dom";
|
|
4
|
-
import { RendererProvider } from "../context/RendererContext.js";
|
|
5
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
var Renderer = (props) => {
|
|
7
|
-
const { children } = props;
|
|
8
|
-
const [mountedElements, setMountedElements] = useState(/* @__PURE__ */ new Map());
|
|
9
|
-
const mountElement = useCallback(
|
|
10
|
-
(el, mountedElement) => {
|
|
11
|
-
setMountedElements((prev) => {
|
|
12
|
-
const newMountedElements = new Map(prev);
|
|
13
|
-
newMountedElements.set(el, mountedElement);
|
|
14
|
-
return newMountedElements;
|
|
15
|
-
});
|
|
16
|
-
return () => {
|
|
17
|
-
setMountedElements((prev) => {
|
|
18
|
-
const newMountedElements = new Map(prev);
|
|
19
|
-
newMountedElements.delete(el);
|
|
20
|
-
return newMountedElements;
|
|
21
|
-
});
|
|
22
|
-
};
|
|
23
|
-
},
|
|
24
|
-
[setMountedElements]
|
|
25
|
-
);
|
|
26
|
-
return /* @__PURE__ */ jsxs(RendererProvider, { value: { mountElement }, children: [
|
|
27
|
-
[...mountedElements].map(([element, mountedElement]) => {
|
|
28
|
-
return createPortal(mountedElement, element);
|
|
29
|
-
}),
|
|
30
|
-
children
|
|
31
|
-
] });
|
|
32
|
-
};
|
|
33
|
-
var withRenderer = (WrappedComponent) => {
|
|
34
|
-
const HOC = (props) => {
|
|
35
|
-
return /* @__PURE__ */ jsx(Renderer, { children: /* @__PURE__ */ jsx(WrappedComponent, { ...props }) });
|
|
36
|
-
};
|
|
37
|
-
HOC.displayName = `WithRenderer(${WrappedComponent.displayName || WrappedComponent.name || "Component"})`;
|
|
38
|
-
return HOC;
|
|
39
|
-
};
|
|
40
|
-
export {
|
|
41
|
-
Renderer,
|
|
42
|
-
withRenderer
|
|
43
|
-
};
|
|
44
|
-
//# sourceMappingURL=Renderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Renderer.tsx"],"sourcesContent":["import { ComponentType, PropsWithChildren, useCallback, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { MountedElement, RendererProvider } from '../context/RendererContext';\n\ntype RendererProps = PropsWithChildren;\nexport const Renderer = (props: RendererProps) => {\n const { children } = props;\n const [mountedElements, setMountedElements] = useState(new Map<HTMLElement, MountedElement>());\n\n const mountElement = useCallback(\n (el: HTMLElement, mountedElement: MountedElement) => {\n setMountedElements((prev) => {\n const newMountedElements = new Map(prev);\n newMountedElements.set(el, mountedElement);\n\n return newMountedElements;\n });\n\n return () => {\n setMountedElements((prev) => {\n const newMountedElements = new Map(prev);\n newMountedElements.delete(el);\n\n return newMountedElements;\n });\n };\n },\n [setMountedElements]\n );\n\n return (\n <RendererProvider value={{ mountElement }}>\n {[...mountedElements].map(([element, mountedElement]) => {\n return createPortal(mountedElement, element);\n })}\n\n {children}\n </RendererProvider>\n );\n};\n\nexport const withRenderer = <P extends object>(\n WrappedComponent: ComponentType<P>\n): ComponentType<P & PropsWithChildren<{}>> => {\n const HOC = (props: P) => {\n return (\n <Renderer>\n <WrappedComponent {...props} />\n </Renderer>\n );\n };\n\n HOC.displayName = `WithRenderer(${WrappedComponent.displayName || WrappedComponent.name || 'Component'})`;\n\n return HOC;\n};\n"],"mappings":";AAAA,SAA2C,aAAa,gBAAgB;AACxE,SAAS,oBAAoB;AAC7B,SAAyB,wBAAwB;AA6B7C,SAgBI,KAhBJ;AA1BG,IAAM,WAAW,CAAC,UAAyB;AAChD,QAAM,EAAE,SAAS,IAAI;AACrB,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,oBAAI,IAAiC,CAAC;AAE7F,QAAM,eAAe;AAAA,IACnB,CAAC,IAAiB,mBAAmC;AACnD,yBAAmB,CAAC,SAAS;AAC3B,cAAM,qBAAqB,IAAI,IAAI,IAAI;AACvC,2BAAmB,IAAI,IAAI,cAAc;AAEzC,eAAO;AAAA,MACT,CAAC;AAED,aAAO,MAAM;AACX,2BAAmB,CAAC,SAAS;AAC3B,gBAAM,qBAAqB,IAAI,IAAI,IAAI;AACvC,6BAAmB,OAAO,EAAE;AAE5B,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,CAAC,kBAAkB;AAAA,EACrB;AAEA,SACE,qBAAC,oBAAiB,OAAO,EAAE,aAAa,GACrC;AAAA,KAAC,GAAG,eAAe,EAAE,IAAI,CAAC,CAAC,SAAS,cAAc,MAAM;AACvD,aAAO,aAAa,gBAAgB,OAAO;AAAA,IAC7C,CAAC;AAAA,IAEA;AAAA,KACH;AAEJ;AAEO,IAAM,eAAe,CAC1B,qBAC6C;AAC7C,QAAM,MAAM,CAAC,UAAa;AACxB,WACE,oBAAC,YACC,8BAAC,oBAAkB,GAAG,OAAO,GAC/B;AAAA,EAEJ;AAEA,MAAI,cAAc,gBAAgB,iBAAiB,eAAe,iBAAiB,QAAQ,WAAW;AAEtG,SAAO;AACT;","names":[]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import React__default from 'react';
|
|
3
|
-
|
|
4
|
-
type MountedElement = React__default.ReactNode;
|
|
5
|
-
type MountedElements = Map<HTMLElement, MountedElement>;
|
|
6
|
-
type RendererContextValue = {
|
|
7
|
-
mountElement: (el: HTMLElement, mountedElement: MountedElement) => () => void;
|
|
8
|
-
};
|
|
9
|
-
declare const useRendererContext: () => RendererContextValue;
|
|
10
|
-
declare const useUnsafeRendererContext: () => RendererContextValue | Partial<RendererContextValue>;
|
|
11
|
-
declare const RendererProvider: (props: React__default.PropsWithChildren<{
|
|
12
|
-
value: RendererContextValue;
|
|
13
|
-
}>) => react_jsx_runtime.JSX.Element;
|
|
14
|
-
|
|
15
|
-
export { type MountedElement, type MountedElements, RendererProvider, useRendererContext as useRenderer, useUnsafeRendererContext as useUnsafeRenderer };
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// src/context/RendererContext.tsx
|
|
2
|
-
import { createContextAndHook } from "../utils/createContextAndHook.js";
|
|
3
|
-
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
var [RendererContext, useRendererContext, useUnsafeRendererContext] = createContextAndHook("RendererContext");
|
|
5
|
-
var RendererProvider = (props) => {
|
|
6
|
-
return /* @__PURE__ */ jsx(RendererContext.Provider, { value: { value: props.value }, children: props.children });
|
|
7
|
-
};
|
|
8
|
-
export {
|
|
9
|
-
RendererProvider,
|
|
10
|
-
useRendererContext as useRenderer,
|
|
11
|
-
useUnsafeRendererContext as useUnsafeRenderer
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=RendererContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/context/RendererContext.tsx"],"sourcesContent":["import React from 'react';\nimport { createContextAndHook } from '../utils/createContextAndHook';\n\nexport type MountedElement = React.ReactNode;\nexport type MountedElements = Map<HTMLElement, MountedElement>;\n\ntype RendererContextValue = {\n mountElement: (el: HTMLElement, mountedElement: MountedElement) => () => void;\n};\n\nconst [RendererContext, useRendererContext, useUnsafeRendererContext] =\n createContextAndHook<RendererContextValue>('RendererContext');\n\nconst RendererProvider = (props: React.PropsWithChildren<{ value: RendererContextValue }>) => {\n return <RendererContext.Provider value={{ value: props.value }}>{props.children}</RendererContext.Provider>;\n};\n\nexport { useRendererContext as useRenderer, useUnsafeRendererContext as useUnsafeRenderer, RendererProvider };\n"],"mappings":";AACA,SAAS,4BAA4B;AAa5B;AAJT,IAAM,CAAC,iBAAiB,oBAAoB,wBAAwB,IAClE,qBAA2C,iBAAiB;AAE9D,IAAM,mBAAmB,CAAC,UAAoE;AAC5F,SAAO,oBAAC,gBAAgB,UAAhB,EAAyB,OAAO,EAAE,OAAO,MAAM,MAAM,GAAI,gBAAM,UAAS;AAClF;","names":[]}
|