@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
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { InboxProps } from '../components/Inbox.cjs';
|
|
3
|
+
import { NotificationItem as NotificationItem$1 } from '../components/notification-item/NotificationItem.cjs';
|
|
4
|
+
export { NotificationItemProps } from '../components/notification-item/NotificationItem.cjs';
|
|
3
5
|
export * from '@novu/js';
|
|
4
6
|
export { PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum, pendingActionKey } from '@novu/js';
|
|
5
7
|
import { NovuProviderProps } from '../hooks/NovuProvider.cjs';
|
|
@@ -19,6 +21,11 @@ export { InboxContentProps } from '../components/InboxContent.cjs';
|
|
|
19
21
|
export { BaseProps, BellRenderer, BodyRenderer, DefaultInboxProps, DefaultProps, NoRendererProps, NotificationRendererProps, NotificationsRenderer, SubjectBodyRendererProps, SubjectRenderer, WithChildrenProps } from '../utils/types.cjs';
|
|
20
22
|
export { NotificationProps } from '../components/Notifications.cjs';
|
|
21
23
|
import 'react';
|
|
24
|
+
import '../components/notification-item/parts/Dot.cjs';
|
|
25
|
+
import '../components/notification-item/parts/Date.cjs';
|
|
26
|
+
import '../components/notification-item/parts/Subject.cjs';
|
|
27
|
+
import '../components/notification-item/parts/Content.cjs';
|
|
28
|
+
import '../components/notification-item/parts/Avatar.cjs';
|
|
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 };
|
|
@@ -23,7 +23,7 @@ __export(appearance_exports, {
|
|
|
23
23
|
adaptAppearanceForJs: () => adaptAppearanceForJs
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(appearance_exports);
|
|
26
|
-
function adaptAppearanceForJs(appearance,
|
|
26
|
+
function adaptAppearanceForJs(appearance, outlets) {
|
|
27
27
|
if (!appearance) {
|
|
28
28
|
return void 0;
|
|
29
29
|
}
|
|
@@ -36,7 +36,7 @@ function adaptAppearanceForJs(appearance, mountElement) {
|
|
|
36
36
|
const reactRenderer = icons[iconKey];
|
|
37
37
|
if (reactRenderer) {
|
|
38
38
|
jsIcons[iconKey] = (el, props) => {
|
|
39
|
-
return
|
|
39
|
+
return outlets.mount(el, reactRenderer, [props]);
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
}
|
|
@@ -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":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;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":[]}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { AllAppearance } from '@novu/js/ui';
|
|
2
|
-
import {
|
|
2
|
+
import { OutletStore } from '../context/OutletStore.cjs';
|
|
3
3
|
import { ReactInboxAppearance, ReactSubscriptionAppearance, ReactAllAppearance } from './types.cjs';
|
|
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,3 +1,4 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
1
2
|
import React__default from 'react';
|
|
2
3
|
import { BellRenderer } from '../utils/types.js';
|
|
3
4
|
import '@novu/js';
|
|
@@ -6,8 +7,6 @@ import '@novu/js/ui';
|
|
|
6
7
|
type BellProps = {
|
|
7
8
|
renderBell?: BellRenderer;
|
|
8
9
|
};
|
|
9
|
-
declare const Bell: React__default.
|
|
10
|
-
children?: React__default.ReactNode | undefined;
|
|
11
|
-
}>;
|
|
10
|
+
declare const Bell: React__default.MemoExoticComponent<(props: BellProps) => react_jsx_runtime.JSX.Element>;
|
|
12
11
|
|
|
13
12
|
export { Bell, type BellProps };
|
|
@@ -1,29 +1,14 @@
|
|
|
1
1
|
// src/components/Bell.tsx
|
|
2
|
-
import React from "react";
|
|
3
|
-
import {
|
|
4
|
-
import { useRenderer } from "../context/RendererContext.js";
|
|
2
|
+
import React, { useMemo } from "react";
|
|
3
|
+
import { useOutletRenderer } from "../hooks/internal/useOutletRenderer.js";
|
|
5
4
|
import { Mounter } from "./Mounter.js";
|
|
6
|
-
import { withRenderer } from "./Renderer.js";
|
|
7
5
|
import { jsx } from "react/jsx-runtime";
|
|
8
|
-
var
|
|
9
|
-
const
|
|
10
|
-
const {
|
|
11
|
-
|
|
12
|
-
const mount = React.useCallback(
|
|
13
|
-
(element) => {
|
|
14
|
-
return novuUI.mountComponent({
|
|
15
|
-
name: "Bell",
|
|
16
|
-
element,
|
|
17
|
-
props: renderBell ? {
|
|
18
|
-
renderBell: (el, unreadCount) => mountElement(el, renderBell(unreadCount))
|
|
19
|
-
} : void 0
|
|
20
|
-
});
|
|
21
|
-
},
|
|
22
|
-
[renderBell, mountElement, novuUI]
|
|
23
|
-
);
|
|
24
|
-
return /* @__PURE__ */ jsx(Mounter, { mount });
|
|
6
|
+
var Bell = React.memo((props) => {
|
|
7
|
+
const renderBell = useOutletRenderer(props.renderBell);
|
|
8
|
+
const mountProps = useMemo(() => renderBell ? { renderBell } : void 0, [renderBell]);
|
|
9
|
+
return /* @__PURE__ */ jsx(Mounter, { name: "Bell", props: mountProps });
|
|
25
10
|
});
|
|
26
|
-
|
|
11
|
+
Bell.displayName = "Bell";
|
|
27
12
|
export {
|
|
28
13
|
Bell
|
|
29
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Bell.tsx"],"sourcesContent":["import React
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Bell.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { useOutletRenderer } from '../hooks/internal/useOutletRenderer';\nimport { BellRenderer } from '../utils/types';\nimport { Mounter } from './Mounter';\n\nexport type BellProps = {\n renderBell?: BellRenderer;\n};\n\nexport const Bell = React.memo((props: BellProps) => {\n const renderBell = useOutletRenderer(props.renderBell);\n\n const mountProps = useMemo(() => (renderBell ? { renderBell } : undefined), [renderBell]);\n\n return <Mounter name=\"Bell\" props={mountProps} />;\n});\n\nBell.displayName = 'Bell';\n"],"mappings":";AAAA,OAAO,SAAS,eAAe;AAC/B,SAAS,yBAAyB;AAElC,SAAS,eAAe;AAWf;AALF,IAAM,OAAO,MAAM,KAAK,CAAC,UAAqB;AACnD,QAAM,aAAa,kBAAkB,MAAM,UAAU;AAErD,QAAM,aAAa,QAAQ,MAAO,aAAa,EAAE,WAAW,IAAI,QAAY,CAAC,UAAU,CAAC;AAExF,SAAO,oBAAC,WAAQ,MAAK,QAAO,OAAO,YAAY;AACjD,CAAC;AAED,KAAK,cAAc;","names":[]}
|
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
// src/components/Inbox.tsx
|
|
2
2
|
import { buildSubscriber } from "@novu/js/internal";
|
|
3
3
|
import React, { useMemo } from "react";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { useNotificationOutlets } from "../hooks/internal/useNotificationOutlets.js";
|
|
5
|
+
import { useOutletRenderer } from "../hooks/internal/useOutletRenderer.js";
|
|
6
6
|
import { InternalNovuProvider, useNovu, useUnsafeNovu } from "../hooks/NovuProvider.js";
|
|
7
7
|
import { Mounter } from "./Mounter.js";
|
|
8
8
|
import { NovuUI } from "./NovuUI.js";
|
|
9
|
-
import { withRenderer } from "./Renderer.js";
|
|
10
9
|
import { jsx } from "react/jsx-runtime";
|
|
11
10
|
var DefaultInbox = (props) => {
|
|
12
11
|
const {
|
|
13
12
|
open,
|
|
14
|
-
renderNotification,
|
|
15
|
-
renderAvatar,
|
|
16
|
-
renderSubject,
|
|
17
|
-
renderBody,
|
|
18
|
-
renderDefaultActions,
|
|
19
|
-
renderCustomActions,
|
|
20
13
|
renderBell,
|
|
21
14
|
onNotificationClick,
|
|
22
15
|
onPrimaryActionClick,
|
|
@@ -24,60 +17,31 @@ var DefaultInbox = (props) => {
|
|
|
24
17
|
placement,
|
|
25
18
|
placementOffset
|
|
26
19
|
} = props;
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
(
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
onSecondaryActionClick,
|
|
41
|
-
placementOffset,
|
|
42
|
-
placement
|
|
43
|
-
},
|
|
44
|
-
element
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
return novuUI.mountComponent({
|
|
48
|
-
name: "Inbox",
|
|
49
|
-
props: {
|
|
50
|
-
open,
|
|
51
|
-
renderAvatar: renderAvatar ? (el, notification) => mountElement(el, renderAvatar(notification)) : void 0,
|
|
52
|
-
renderSubject: renderSubject ? (el, notification) => mountElement(el, renderSubject(notification)) : void 0,
|
|
53
|
-
renderBody: renderBody ? (el, notification) => mountElement(el, renderBody(notification)) : void 0,
|
|
54
|
-
renderDefaultActions: renderDefaultActions ? (el, notification) => mountElement(el, renderDefaultActions(notification)) : void 0,
|
|
55
|
-
renderCustomActions: renderCustomActions ? (el, notification) => mountElement(el, renderCustomActions(notification)) : void 0,
|
|
56
|
-
renderBell: renderBell ? (el, unreadCount) => mountElement(el, renderBell(unreadCount)) : void 0,
|
|
57
|
-
onNotificationClick,
|
|
58
|
-
onPrimaryActionClick,
|
|
59
|
-
onSecondaryActionClick,
|
|
60
|
-
placementOffset,
|
|
61
|
-
placement
|
|
62
|
-
},
|
|
63
|
-
element
|
|
64
|
-
});
|
|
65
|
-
},
|
|
20
|
+
const outlets = useNotificationOutlets(props);
|
|
21
|
+
const bellOutlet = useOutletRenderer(renderBell);
|
|
22
|
+
const mountProps = useMemo(
|
|
23
|
+
() => ({
|
|
24
|
+
...outlets,
|
|
25
|
+
open,
|
|
26
|
+
renderBell: bellOutlet,
|
|
27
|
+
onNotificationClick,
|
|
28
|
+
onPrimaryActionClick,
|
|
29
|
+
onSecondaryActionClick,
|
|
30
|
+
placementOffset,
|
|
31
|
+
placement
|
|
32
|
+
}),
|
|
66
33
|
[
|
|
34
|
+
outlets,
|
|
67
35
|
open,
|
|
68
|
-
|
|
69
|
-
renderAvatar,
|
|
70
|
-
renderSubject,
|
|
71
|
-
renderBody,
|
|
72
|
-
renderDefaultActions,
|
|
73
|
-
renderCustomActions,
|
|
74
|
-
renderBell,
|
|
36
|
+
bellOutlet,
|
|
75
37
|
onNotificationClick,
|
|
76
38
|
onPrimaryActionClick,
|
|
77
|
-
onSecondaryActionClick
|
|
39
|
+
onSecondaryActionClick,
|
|
40
|
+
placementOffset,
|
|
41
|
+
placement
|
|
78
42
|
]
|
|
79
43
|
);
|
|
80
|
-
return /* @__PURE__ */ jsx(Mounter, {
|
|
44
|
+
return /* @__PURE__ */ jsx(Mounter, { name: "Inbox", props: mountProps });
|
|
81
45
|
};
|
|
82
46
|
var Inbox = React.memo((props) => {
|
|
83
47
|
const { subscriberId, ...propsWithoutSubscriberId } = props;
|
|
@@ -103,9 +67,30 @@ var Inbox = React.memo((props) => {
|
|
|
103
67
|
};
|
|
104
68
|
return /* @__PURE__ */ jsx(InternalNovuProvider, { ...providerProps, children: /* @__PURE__ */ jsx(InboxChild, { ...propsWithoutSubscriberId, applicationIdentifier, subscriber }) });
|
|
105
69
|
});
|
|
106
|
-
var InboxChild =
|
|
107
|
-
|
|
108
|
-
|
|
70
|
+
var InboxChild = React.memo((props) => {
|
|
71
|
+
const {
|
|
72
|
+
localization,
|
|
73
|
+
appearance,
|
|
74
|
+
tabs,
|
|
75
|
+
preferencesFilter,
|
|
76
|
+
preferenceGroups,
|
|
77
|
+
preferencesSort,
|
|
78
|
+
routerPush,
|
|
79
|
+
applicationIdentifier = "",
|
|
80
|
+
// for keyless we provide an empty string, the api will generate a identifier
|
|
81
|
+
subscriberId,
|
|
82
|
+
subscriberHash,
|
|
83
|
+
contextHash,
|
|
84
|
+
backendUrl,
|
|
85
|
+
socketUrl,
|
|
86
|
+
socketOptions,
|
|
87
|
+
subscriber,
|
|
88
|
+
defaultSchedule,
|
|
89
|
+
context
|
|
90
|
+
} = props;
|
|
91
|
+
const novu = useNovu();
|
|
92
|
+
const options = useMemo(() => {
|
|
93
|
+
return {
|
|
109
94
|
localization,
|
|
110
95
|
appearance,
|
|
111
96
|
tabs,
|
|
@@ -113,61 +98,56 @@ var InboxChild = withRenderer(
|
|
|
113
98
|
preferenceGroups,
|
|
114
99
|
preferencesSort,
|
|
115
100
|
routerPush,
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
]);
|
|
167
|
-
if (isWithChildrenProps(props)) {
|
|
168
|
-
return /* @__PURE__ */ jsx(NovuUI, { options, novu, children: props.children });
|
|
169
|
-
}
|
|
170
|
-
const {
|
|
101
|
+
options: {
|
|
102
|
+
applicationIdentifier,
|
|
103
|
+
subscriberHash,
|
|
104
|
+
contextHash,
|
|
105
|
+
backendUrl,
|
|
106
|
+
socketUrl,
|
|
107
|
+
socketOptions,
|
|
108
|
+
subscriber: buildSubscriber({ subscriberId, subscriber }),
|
|
109
|
+
defaultSchedule,
|
|
110
|
+
context
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
}, [
|
|
114
|
+
localization,
|
|
115
|
+
appearance,
|
|
116
|
+
tabs,
|
|
117
|
+
preferencesFilter,
|
|
118
|
+
preferenceGroups,
|
|
119
|
+
preferencesSort,
|
|
120
|
+
applicationIdentifier,
|
|
121
|
+
subscriberId,
|
|
122
|
+
subscriberHash,
|
|
123
|
+
contextHash,
|
|
124
|
+
backendUrl,
|
|
125
|
+
socketUrl,
|
|
126
|
+
socketOptions,
|
|
127
|
+
subscriber,
|
|
128
|
+
context
|
|
129
|
+
]);
|
|
130
|
+
if (isWithChildrenProps(props)) {
|
|
131
|
+
return /* @__PURE__ */ jsx(NovuUI, { options, novu, children: props.children });
|
|
132
|
+
}
|
|
133
|
+
const {
|
|
134
|
+
open,
|
|
135
|
+
renderNotification,
|
|
136
|
+
renderAvatar,
|
|
137
|
+
renderSubject,
|
|
138
|
+
renderBody,
|
|
139
|
+
renderDefaultActions,
|
|
140
|
+
renderCustomActions,
|
|
141
|
+
renderBell,
|
|
142
|
+
onNotificationClick,
|
|
143
|
+
onPrimaryActionClick,
|
|
144
|
+
onSecondaryActionClick,
|
|
145
|
+
placementOffset,
|
|
146
|
+
placement
|
|
147
|
+
} = props;
|
|
148
|
+
return /* @__PURE__ */ jsx(NovuUI, { options, novu, children: /* @__PURE__ */ jsx(
|
|
149
|
+
DefaultInbox,
|
|
150
|
+
{
|
|
171
151
|
open,
|
|
172
152
|
renderNotification,
|
|
173
153
|
renderAvatar,
|
|
@@ -179,29 +159,11 @@ var InboxChild = withRenderer(
|
|
|
179
159
|
onNotificationClick,
|
|
180
160
|
onPrimaryActionClick,
|
|
181
161
|
onSecondaryActionClick,
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
{
|
|
188
|
-
open,
|
|
189
|
-
renderNotification,
|
|
190
|
-
renderAvatar,
|
|
191
|
-
renderSubject,
|
|
192
|
-
renderBody,
|
|
193
|
-
renderDefaultActions,
|
|
194
|
-
renderCustomActions,
|
|
195
|
-
renderBell,
|
|
196
|
-
onNotificationClick,
|
|
197
|
-
onPrimaryActionClick,
|
|
198
|
-
onSecondaryActionClick,
|
|
199
|
-
placement,
|
|
200
|
-
placementOffset
|
|
201
|
-
}
|
|
202
|
-
) });
|
|
203
|
-
})
|
|
204
|
-
);
|
|
162
|
+
placement,
|
|
163
|
+
placementOffset
|
|
164
|
+
}
|
|
165
|
+
) });
|
|
166
|
+
});
|
|
205
167
|
InboxChild.displayName = "InboxChild";
|
|
206
168
|
function isWithChildrenProps(props) {
|
|
207
169
|
return "children" in props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Inbox.tsx"],"sourcesContent":["import { StandardNovuOptions } from '@novu/js';\nimport { buildSubscriber } from '@novu/js/internal';\nimport React, { useMemo } from 'react';\nimport { useNovuUI } from '../context/NovuUIContext';\nimport { useRenderer } from '../context/RendererContext';\nimport { InternalNovuProvider, useNovu, useUnsafeNovu } from '../hooks/NovuProvider';\nimport { DefaultInboxProps, DefaultProps, WithChildrenProps } from '../utils/types';\nimport { Mounter } from './Mounter';\nimport { NovuUI } from './NovuUI';\nimport { withRenderer } from './Renderer';\n\nexport type InboxProps = DefaultProps | WithChildrenProps;\n\nconst DefaultInbox = (props: DefaultInboxProps) => {\n const {\n open,\n renderNotification,\n renderAvatar,\n renderSubject,\n renderBody,\n renderDefaultActions,\n renderCustomActions,\n renderBell,\n onNotificationClick,\n onPrimaryActionClick,\n onSecondaryActionClick,\n placement,\n placementOffset,\n } = props;\n const { novuUI } = useNovuUI();\n const { mountElement } = useRenderer();\n\n const mount = React.useCallback(\n (element: HTMLElement) => {\n if (renderNotification) {\n return novuUI.mountComponent({\n name: 'Inbox',\n props: {\n open,\n renderNotification: renderNotification\n ? (el, notification) => mountElement(el, renderNotification(notification))\n : undefined,\n renderBell: renderBell ? (el, unreadCount) => mountElement(el, renderBell(unreadCount)) : undefined,\n onNotificationClick,\n onPrimaryActionClick,\n onSecondaryActionClick,\n placementOffset,\n placement,\n },\n element,\n });\n }\n\n return novuUI.mountComponent({\n name: 'Inbox',\n props: {\n open,\n renderAvatar: renderAvatar ? (el, notification) => mountElement(el, renderAvatar(notification)) : undefined,\n renderSubject: renderSubject\n ? (el, notification) => mountElement(el, renderSubject(notification))\n : undefined,\n renderBody: renderBody ? (el, notification) => mountElement(el, renderBody(notification)) : undefined,\n renderDefaultActions: renderDefaultActions\n ? (el, notification) => mountElement(el, renderDefaultActions(notification))\n : undefined,\n renderCustomActions: renderCustomActions\n ? (el, notification) => mountElement(el, renderCustomActions(notification))\n : undefined,\n renderBell: renderBell ? (el, unreadCount) => mountElement(el, renderBell(unreadCount)) : undefined,\n onNotificationClick,\n onPrimaryActionClick,\n onSecondaryActionClick,\n placementOffset,\n placement,\n },\n element,\n });\n },\n [\n open,\n renderNotification,\n renderAvatar,\n renderSubject,\n renderBody,\n renderDefaultActions,\n renderCustomActions,\n renderBell,\n onNotificationClick,\n onPrimaryActionClick,\n onSecondaryActionClick,\n ]\n );\n\n return <Mounter mount={mount} />;\n};\n\nexport const Inbox = React.memo((props: InboxProps) => {\n const { subscriberId, ...propsWithoutSubscriberId } = props;\n const subscriber = useMemo(\n () => buildSubscriber({ subscriberId: props.subscriberId, subscriber: props.subscriber }),\n [props.subscriberId, props.subscriber]\n );\n const applicationIdentifier = props.applicationIdentifier ? props.applicationIdentifier : ''; // for keyless we provide an empty string, the api will generate a identifier\n const novu = useUnsafeNovu();\n\n if (novu) {\n return (\n <InboxChild {...propsWithoutSubscriberId} applicationIdentifier={applicationIdentifier} subscriber={subscriber} />\n );\n }\n\n const providerProps = {\n applicationIdentifier,\n subscriberHash: props.subscriberHash,\n contextHash: props.contextHash,\n backendUrl: props.backendUrl,\n socketUrl: props.socketUrl,\n socketOptions: props.socketOptions,\n subscriber,\n defaultSchedule: props.defaultSchedule,\n context: props.context,\n } satisfies StandardNovuOptions;\n\n return (\n <InternalNovuProvider {...providerProps}>\n <InboxChild {...propsWithoutSubscriberId} applicationIdentifier={applicationIdentifier} subscriber={subscriber} />\n </InternalNovuProvider>\n );\n});\n\nconst InboxChild = withRenderer(\n React.memo((props: InboxProps) => {\n const {\n localization,\n appearance,\n tabs,\n preferencesFilter,\n preferenceGroups,\n preferencesSort,\n routerPush,\n applicationIdentifier = '', // for keyless we provide an empty string, the api will generate a identifier\n subscriberId,\n subscriberHash,\n contextHash,\n backendUrl,\n socketUrl,\n socketOptions,\n subscriber,\n defaultSchedule,\n context,\n } = props;\n const novu = useNovu();\n\n const options = useMemo(() => {\n return {\n localization,\n appearance,\n tabs,\n preferencesFilter,\n preferenceGroups,\n preferencesSort,\n routerPush,\n options: {\n applicationIdentifier,\n subscriberHash,\n contextHash,\n backendUrl,\n socketUrl,\n socketOptions,\n subscriber: buildSubscriber({ subscriberId, subscriber }),\n defaultSchedule,\n context,\n },\n };\n }, [\n localization,\n appearance,\n tabs,\n preferencesFilter,\n preferenceGroups,\n preferencesSort,\n applicationIdentifier,\n subscriberId,\n subscriberHash,\n contextHash,\n backendUrl,\n socketUrl,\n socketOptions,\n subscriber,\n context,\n ]);\n\n if (isWithChildrenProps(props)) {\n return (\n <NovuUI options={options} novu={novu}>\n {props.children}\n </NovuUI>\n );\n }\n\n const {\n open,\n renderNotification,\n renderAvatar,\n renderSubject,\n renderBody,\n renderDefaultActions,\n renderCustomActions,\n renderBell,\n onNotificationClick,\n onPrimaryActionClick,\n onSecondaryActionClick,\n placementOffset,\n placement,\n } = props;\n\n return (\n <NovuUI options={options} novu={novu}>\n <DefaultInbox\n open={open}\n renderNotification={renderNotification}\n renderAvatar={renderAvatar}\n renderSubject={renderSubject}\n renderBody={renderBody}\n renderDefaultActions={renderDefaultActions}\n renderCustomActions={renderCustomActions}\n renderBell={renderBell}\n onNotificationClick={onNotificationClick}\n onPrimaryActionClick={onPrimaryActionClick}\n onSecondaryActionClick={onSecondaryActionClick}\n placement={placement}\n placementOffset={placementOffset}\n />\n </NovuUI>\n );\n })\n);\n\nInboxChild.displayName = 'InboxChild';\n\nfunction isWithChildrenProps(props: InboxProps): props is WithChildrenProps {\n return 'children' in props;\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Inbox.tsx"],"sourcesContent":["import { StandardNovuOptions } from '@novu/js';\nimport { buildSubscriber } from '@novu/js/internal';\nimport React, { useMemo } from 'react';\nimport { useNotificationOutlets } from '../hooks/internal/useNotificationOutlets';\nimport { useOutletRenderer } from '../hooks/internal/useOutletRenderer';\nimport { InternalNovuProvider, useNovu, useUnsafeNovu } from '../hooks/NovuProvider';\nimport { DefaultInboxProps, DefaultProps, WithChildrenProps } from '../utils/types';\nimport { Mounter } from './Mounter';\nimport { NovuUI } from './NovuUI';\n\nexport type InboxProps = DefaultProps | WithChildrenProps;\n\nconst DefaultInbox = (props: DefaultInboxProps) => {\n const {\n open,\n renderBell,\n onNotificationClick,\n onPrimaryActionClick,\n onSecondaryActionClick,\n placement,\n placementOffset,\n } = props;\n const outlets = useNotificationOutlets(props);\n const bellOutlet = useOutletRenderer(renderBell);\n\n const mountProps = useMemo(\n () => ({\n ...outlets,\n open,\n renderBell: bellOutlet,\n onNotificationClick,\n onPrimaryActionClick,\n onSecondaryActionClick,\n placementOffset,\n placement,\n }),\n [\n outlets,\n open,\n bellOutlet,\n onNotificationClick,\n onPrimaryActionClick,\n onSecondaryActionClick,\n placementOffset,\n placement,\n ]\n );\n\n return <Mounter name=\"Inbox\" props={mountProps} />;\n};\n\nexport const Inbox = React.memo((props: InboxProps) => {\n const { subscriberId, ...propsWithoutSubscriberId } = props;\n const subscriber = useMemo(\n () => buildSubscriber({ subscriberId: props.subscriberId, subscriber: props.subscriber }),\n [props.subscriberId, props.subscriber]\n );\n const applicationIdentifier = props.applicationIdentifier ? props.applicationIdentifier : ''; // for keyless we provide an empty string, the api will generate a identifier\n const novu = useUnsafeNovu();\n\n if (novu) {\n return (\n <InboxChild {...propsWithoutSubscriberId} applicationIdentifier={applicationIdentifier} subscriber={subscriber} />\n );\n }\n\n const providerProps = {\n applicationIdentifier,\n subscriberHash: props.subscriberHash,\n contextHash: props.contextHash,\n backendUrl: props.backendUrl,\n socketUrl: props.socketUrl,\n socketOptions: props.socketOptions,\n subscriber,\n defaultSchedule: props.defaultSchedule,\n context: props.context,\n } satisfies StandardNovuOptions;\n\n return (\n <InternalNovuProvider {...providerProps}>\n <InboxChild {...propsWithoutSubscriberId} applicationIdentifier={applicationIdentifier} subscriber={subscriber} />\n </InternalNovuProvider>\n );\n});\n\nconst InboxChild = React.memo((props: InboxProps) => {\n const {\n localization,\n appearance,\n tabs,\n preferencesFilter,\n preferenceGroups,\n preferencesSort,\n routerPush,\n applicationIdentifier = '', // for keyless we provide an empty string, the api will generate a identifier\n subscriberId,\n subscriberHash,\n contextHash,\n backendUrl,\n socketUrl,\n socketOptions,\n subscriber,\n defaultSchedule,\n context,\n } = props;\n const novu = useNovu();\n\n const options = useMemo(() => {\n return {\n localization,\n appearance,\n tabs,\n preferencesFilter,\n preferenceGroups,\n preferencesSort,\n routerPush,\n options: {\n applicationIdentifier,\n subscriberHash,\n contextHash,\n backendUrl,\n socketUrl,\n socketOptions,\n subscriber: buildSubscriber({ subscriberId, subscriber }),\n defaultSchedule,\n context,\n },\n };\n }, [\n localization,\n appearance,\n tabs,\n preferencesFilter,\n preferenceGroups,\n preferencesSort,\n applicationIdentifier,\n subscriberId,\n subscriberHash,\n contextHash,\n backendUrl,\n socketUrl,\n socketOptions,\n subscriber,\n context,\n ]);\n\n if (isWithChildrenProps(props)) {\n return (\n <NovuUI options={options} novu={novu}>\n {props.children}\n </NovuUI>\n );\n }\n\n const {\n open,\n renderNotification,\n renderAvatar,\n renderSubject,\n renderBody,\n renderDefaultActions,\n renderCustomActions,\n renderBell,\n onNotificationClick,\n onPrimaryActionClick,\n onSecondaryActionClick,\n placementOffset,\n placement,\n } = props;\n\n return (\n <NovuUI options={options} novu={novu}>\n <DefaultInbox\n open={open}\n renderNotification={renderNotification}\n renderAvatar={renderAvatar}\n renderSubject={renderSubject}\n renderBody={renderBody}\n renderDefaultActions={renderDefaultActions}\n renderCustomActions={renderCustomActions}\n renderBell={renderBell}\n onNotificationClick={onNotificationClick}\n onPrimaryActionClick={onPrimaryActionClick}\n onSecondaryActionClick={onSecondaryActionClick}\n placement={placement}\n placementOffset={placementOffset}\n />\n </NovuUI>\n );\n});\n\nInboxChild.displayName = 'InboxChild';\n\nfunction isWithChildrenProps(props: InboxProps): props is WithChildrenProps {\n return 'children' in props;\n}\n"],"mappings":";AACA,SAAS,uBAAuB;AAChC,OAAO,SAAS,eAAe;AAC/B,SAAS,8BAA8B;AACvC,SAAS,yBAAyB;AAClC,SAAS,sBAAsB,SAAS,qBAAqB;AAE7D,SAAS,eAAe;AACxB,SAAS,cAAc;AAwCd;AApCT,IAAM,eAAe,CAAC,UAA6B;AACjD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,UAAU,uBAAuB,KAAK;AAC5C,QAAM,aAAa,kBAAkB,UAAU;AAE/C,QAAM,aAAa;AAAA,IACjB,OAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,MACA,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO,oBAAC,WAAQ,MAAK,SAAQ,OAAO,YAAY;AAClD;AAEO,IAAM,QAAQ,MAAM,KAAK,CAAC,UAAsB;AACrD,QAAM,EAAE,cAAc,GAAG,yBAAyB,IAAI;AACtD,QAAM,aAAa;AAAA,IACjB,MAAM,gBAAgB,EAAE,cAAc,MAAM,cAAc,YAAY,MAAM,WAAW,CAAC;AAAA,IACxF,CAAC,MAAM,cAAc,MAAM,UAAU;AAAA,EACvC;AACA,QAAM,wBAAwB,MAAM,wBAAwB,MAAM,wBAAwB;AAC1F,QAAM,OAAO,cAAc;AAE3B,MAAI,MAAM;AACR,WACE,oBAAC,cAAY,GAAG,0BAA0B,uBAA8C,YAAwB;AAAA,EAEpH;AAEA,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA,gBAAgB,MAAM;AAAA,IACtB,aAAa,MAAM;AAAA,IACnB,YAAY,MAAM;AAAA,IAClB,WAAW,MAAM;AAAA,IACjB,eAAe,MAAM;AAAA,IACrB;AAAA,IACA,iBAAiB,MAAM;AAAA,IACvB,SAAS,MAAM;AAAA,EACjB;AAEA,SACE,oBAAC,wBAAsB,GAAG,eACxB,8BAAC,cAAY,GAAG,0BAA0B,uBAA8C,YAAwB,GAClH;AAEJ,CAAC;AAED,IAAM,aAAa,MAAM,KAAK,CAAC,UAAsB;AACnD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,wBAAwB;AAAA;AAAA,IACxB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,OAAO,QAAQ;AAErB,QAAM,UAAU,QAAQ,MAAM;AAC5B,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,YAAY,gBAAgB,EAAE,cAAc,WAAW,CAAC;AAAA,QACxD;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,MAAI,oBAAoB,KAAK,GAAG;AAC9B,WACE,oBAAC,UAAO,SAAkB,MACvB,gBAAM,UACT;AAAA,EAEJ;AAEA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,SACE,oBAAC,UAAO,SAAkB,MACxB;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF,GACF;AAEJ,CAAC;AAED,WAAW,cAAc;AAEzB,SAAS,oBAAoB,OAA+C;AAC1E,SAAO,cAAc;AACvB;","names":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
1
2
|
import { NotificationClickHandler, NotificationActionClickHandler, InboxPage } from '@novu/js/ui';
|
|
2
3
|
import React__default from 'react';
|
|
3
4
|
import { NotificationRendererProps, SubjectBodyRendererProps, NoRendererProps } from '../utils/types.js';
|
|
@@ -10,8 +11,6 @@ type InboxContentProps = {
|
|
|
10
11
|
initialPage?: InboxPage;
|
|
11
12
|
hideNav?: boolean;
|
|
12
13
|
} & (NotificationRendererProps | SubjectBodyRendererProps | NoRendererProps);
|
|
13
|
-
declare const InboxContent: React__default.
|
|
14
|
-
children?: React__default.ReactNode | undefined;
|
|
15
|
-
}>;
|
|
14
|
+
declare const InboxContent: React__default.MemoExoticComponent<(props: InboxContentProps) => react_jsx_runtime.JSX.Element>;
|
|
16
15
|
|
|
17
16
|
export { InboxContent, type InboxContentProps };
|
|
@@ -1,74 +1,18 @@
|
|
|
1
1
|
// src/components/InboxContent.tsx
|
|
2
|
-
import React from "react";
|
|
3
|
-
import {
|
|
4
|
-
import { useRenderer } from "../context/RendererContext.js";
|
|
2
|
+
import React, { useMemo } from "react";
|
|
3
|
+
import { useNotificationOutlets } from "../hooks/internal/useNotificationOutlets.js";
|
|
5
4
|
import { Mounter } from "./Mounter.js";
|
|
6
|
-
import { withRenderer } from "./Renderer.js";
|
|
7
5
|
import { jsx } from "react/jsx-runtime";
|
|
8
|
-
var
|
|
9
|
-
const {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
renderSubject,
|
|
15
|
-
renderBody,
|
|
16
|
-
renderDefaultActions,
|
|
17
|
-
renderCustomActions,
|
|
18
|
-
onSecondaryActionClick,
|
|
19
|
-
initialPage,
|
|
20
|
-
hideNav
|
|
21
|
-
} = props;
|
|
22
|
-
const { novuUI } = useNovuUI();
|
|
23
|
-
const { mountElement } = useRenderer();
|
|
24
|
-
const mount = React.useCallback(
|
|
25
|
-
(element) => {
|
|
26
|
-
if (renderNotification) {
|
|
27
|
-
return novuUI.mountComponent({
|
|
28
|
-
name: "InboxContent",
|
|
29
|
-
element,
|
|
30
|
-
props: {
|
|
31
|
-
renderNotification: renderNotification ? (el, notification) => mountElement(el, renderNotification(notification)) : void 0,
|
|
32
|
-
onNotificationClick,
|
|
33
|
-
onPrimaryActionClick,
|
|
34
|
-
onSecondaryActionClick,
|
|
35
|
-
initialPage,
|
|
36
|
-
hideNav
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
return novuUI.mountComponent({
|
|
41
|
-
name: "InboxContent",
|
|
42
|
-
element,
|
|
43
|
-
props: {
|
|
44
|
-
renderAvatar: renderAvatar ? (el, notification) => mountElement(el, renderAvatar(notification)) : void 0,
|
|
45
|
-
renderSubject: renderSubject ? (el, notification) => mountElement(el, renderSubject(notification)) : void 0,
|
|
46
|
-
renderBody: renderBody ? (el, notification) => mountElement(el, renderBody(notification)) : void 0,
|
|
47
|
-
renderDefaultActions: renderDefaultActions ? (el, notification) => mountElement(el, renderDefaultActions(notification)) : void 0,
|
|
48
|
-
renderCustomActions: renderCustomActions ? (el, notification) => mountElement(el, renderCustomActions(notification)) : void 0,
|
|
49
|
-
onNotificationClick,
|
|
50
|
-
onPrimaryActionClick,
|
|
51
|
-
onSecondaryActionClick,
|
|
52
|
-
initialPage,
|
|
53
|
-
hideNav
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
},
|
|
57
|
-
[
|
|
58
|
-
renderNotification,
|
|
59
|
-
renderAvatar,
|
|
60
|
-
renderSubject,
|
|
61
|
-
renderBody,
|
|
62
|
-
renderDefaultActions,
|
|
63
|
-
renderCustomActions,
|
|
64
|
-
onNotificationClick,
|
|
65
|
-
onPrimaryActionClick,
|
|
66
|
-
onSecondaryActionClick
|
|
67
|
-
]
|
|
6
|
+
var InboxContent = React.memo((props) => {
|
|
7
|
+
const { onNotificationClick, onPrimaryActionClick, onSecondaryActionClick, initialPage, hideNav } = props;
|
|
8
|
+
const outlets = useNotificationOutlets(props);
|
|
9
|
+
const mountProps = useMemo(
|
|
10
|
+
() => ({ ...outlets, onNotificationClick, onPrimaryActionClick, onSecondaryActionClick, initialPage, hideNav }),
|
|
11
|
+
[outlets, onNotificationClick, onPrimaryActionClick, onSecondaryActionClick, initialPage, hideNav]
|
|
68
12
|
);
|
|
69
|
-
return /* @__PURE__ */ jsx(Mounter, {
|
|
13
|
+
return /* @__PURE__ */ jsx(Mounter, { name: "InboxContent", props: mountProps });
|
|
70
14
|
});
|
|
71
|
-
|
|
15
|
+
InboxContent.displayName = "InboxContent";
|
|
72
16
|
export {
|
|
73
17
|
InboxContent
|
|
74
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/InboxContent.tsx"],"sourcesContent":["import type { InboxPage, NotificationActionClickHandler, NotificationClickHandler } from '@novu/js/ui';\nimport React
|
|
1
|
+
{"version":3,"sources":["../../../src/components/InboxContent.tsx"],"sourcesContent":["import type { InboxPage, NotificationActionClickHandler, NotificationClickHandler } from '@novu/js/ui';\nimport React, { useMemo } from 'react';\nimport { useNotificationOutlets } from '../hooks/internal/useNotificationOutlets';\nimport { NoRendererProps, NotificationRendererProps, SubjectBodyRendererProps } from '../utils/types';\nimport { Mounter } from './Mounter';\n\nexport type InboxContentProps = {\n onNotificationClick?: NotificationClickHandler;\n onPrimaryActionClick?: NotificationActionClickHandler;\n onSecondaryActionClick?: NotificationActionClickHandler;\n initialPage?: InboxPage;\n hideNav?: boolean;\n} & (NotificationRendererProps | SubjectBodyRendererProps | NoRendererProps);\n\nexport const InboxContent = React.memo((props: InboxContentProps) => {\n const { onNotificationClick, onPrimaryActionClick, onSecondaryActionClick, initialPage, hideNav } = props;\n const outlets = useNotificationOutlets(props);\n\n const mountProps = useMemo(\n () => ({ ...outlets, onNotificationClick, onPrimaryActionClick, onSecondaryActionClick, initialPage, hideNav }),\n [outlets, onNotificationClick, onPrimaryActionClick, onSecondaryActionClick, initialPage, hideNav]\n );\n\n return <Mounter name=\"InboxContent\" props={mountProps} />;\n});\n\nInboxContent.displayName = 'InboxContent';\n"],"mappings":";AACA,OAAO,SAAS,eAAe;AAC/B,SAAS,8BAA8B;AAEvC,SAAS,eAAe;AAmBf;AATF,IAAM,eAAe,MAAM,KAAK,CAAC,UAA6B;AACnE,QAAM,EAAE,qBAAqB,sBAAsB,wBAAwB,aAAa,QAAQ,IAAI;AACpG,QAAM,UAAU,uBAAuB,KAAK;AAE5C,QAAM,aAAa;AAAA,IACjB,OAAO,EAAE,GAAG,SAAS,qBAAqB,sBAAsB,wBAAwB,aAAa,QAAQ;AAAA,IAC7G,CAAC,SAAS,qBAAqB,sBAAsB,wBAAwB,aAAa,OAAO;AAAA,EACnG;AAEA,SAAO,oBAAC,WAAQ,MAAK,gBAAe,OAAO,YAAY;AACzD,CAAC;AAED,aAAa,cAAc;","names":[]}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { NovuUI } from '@novu/js/ui';
|
|
2
3
|
|
|
4
|
+
type MountComponentParams = Parameters<NovuUI['mountComponent']>[0];
|
|
3
5
|
type MounterProps = {
|
|
4
|
-
|
|
6
|
+
name: MountComponentParams['name'];
|
|
7
|
+
props?: MountComponentParams['props'];
|
|
8
|
+
/** Mount as an island: no `Root` wrapper, no layout box. For mount points inside DOM that already sits under an engine root. */
|
|
9
|
+
bare?: boolean;
|
|
5
10
|
};
|
|
6
11
|
/**
|
|
7
|
-
*
|
|
12
|
+
* A mount point: a DOM node the host hands to the engine so the engine can render a component into it.
|
|
13
|
+
*
|
|
14
|
+
* Mounts before the browser paints, pushes later prop changes through the engine's handle instead of mounting
|
|
15
|
+
* again, and unmounts when React removes it.
|
|
8
16
|
*/
|
|
9
|
-
declare function Mounter({
|
|
17
|
+
declare function Mounter({ name, props, bare }: MounterProps): react_jsx_runtime.JSX.Element;
|
|
10
18
|
|
|
11
|
-
export { Mounter };
|
|
19
|
+
export { Mounter, type MounterProps };
|