@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,24 +1,29 @@
|
|
|
1
1
|
// src/components/Mounter.tsx
|
|
2
|
-
import {
|
|
2
|
+
import { useRef } from "react";
|
|
3
|
+
import { useNovuUI } from "../context/NovuUIContext.js";
|
|
4
|
+
import { useIsomorphicLayoutEffect } from "../hooks/internal/useIsomorphicLayoutEffect.js";
|
|
3
5
|
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
function Mounter({
|
|
6
|
+
function Mounter({ name, props, bare }) {
|
|
7
|
+
const { novuUI } = useNovuUI();
|
|
5
8
|
const ref = useRef(null);
|
|
6
|
-
|
|
7
|
-
|
|
9
|
+
const handleRef = useRef(null);
|
|
10
|
+
const latestProps = useRef(props);
|
|
11
|
+
latestProps.current = props;
|
|
12
|
+
useIsomorphicLayoutEffect(() => {
|
|
8
13
|
const element = ref.current;
|
|
9
|
-
if (element
|
|
10
|
-
|
|
11
|
-
if (possibleUnmount) {
|
|
12
|
-
unmount = possibleUnmount;
|
|
13
|
-
}
|
|
14
|
+
if (!element) {
|
|
15
|
+
return;
|
|
14
16
|
}
|
|
17
|
+
handleRef.current = novuUI.mountComponent({ name, element, props: latestProps.current, bare });
|
|
15
18
|
return () => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
+
handleRef.current?.unmount();
|
|
20
|
+
handleRef.current = null;
|
|
19
21
|
};
|
|
20
|
-
}, [
|
|
21
|
-
|
|
22
|
+
}, [novuUI, name, bare]);
|
|
23
|
+
useIsomorphicLayoutEffect(() => {
|
|
24
|
+
handleRef.current?.update(props);
|
|
25
|
+
}, [props]);
|
|
26
|
+
return /* @__PURE__ */ jsx("div", { ref, style: bare ? { display: "contents" } : void 0 });
|
|
22
27
|
}
|
|
23
28
|
export {
|
|
24
29
|
Mounter
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Mounter.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Mounter.tsx"],"sourcesContent":["import type { MountHandle, NovuUI } from '@novu/js/ui';\nimport { useRef } from 'react';\nimport { useNovuUI } from '../context/NovuUIContext';\nimport { useIsomorphicLayoutEffect } from '../hooks/internal/useIsomorphicLayoutEffect';\n\ntype MountComponentParams = Parameters<NovuUI['mountComponent']>[0];\n\nexport type MounterProps = {\n name: MountComponentParams['name'];\n props?: MountComponentParams['props'];\n /** Mount as an island: no `Root` wrapper, no layout box. For mount points inside DOM that already sits under an engine root. */\n bare?: boolean;\n};\n\n/**\n * A mount point: a DOM node the host hands to the engine so the engine can render a component into it.\n *\n * Mounts before the browser paints, pushes later prop changes through the engine's handle instead of mounting\n * again, and unmounts when React removes it.\n */\nexport function Mounter({ name, props, bare }: MounterProps) {\n const { novuUI } = useNovuUI();\n const ref = useRef<HTMLDivElement>(null);\n const handleRef = useRef<MountHandle<MountComponentParams['props']> | null>(null);\n const latestProps = useRef(props);\n latestProps.current = props;\n\n useIsomorphicLayoutEffect(() => {\n const element = ref.current;\n if (!element) {\n return;\n }\n\n handleRef.current = novuUI.mountComponent({ name, element, props: latestProps.current, bare });\n\n return () => {\n handleRef.current?.unmount();\n handleRef.current = null;\n };\n }, [novuUI, name, bare]);\n\n useIsomorphicLayoutEffect(() => {\n handleRef.current?.update(props);\n }, [props]);\n\n return <div ref={ref} style={bare ? { display: 'contents' } : undefined} />;\n}\n"],"mappings":";AACA,SAAS,cAAc;AACvB,SAAS,iBAAiB;AAC1B,SAAS,iCAAiC;AA0CjC;AAzBF,SAAS,QAAQ,EAAE,MAAM,OAAO,KAAK,GAAiB;AAC3D,QAAM,EAAE,OAAO,IAAI,UAAU;AAC7B,QAAM,MAAM,OAAuB,IAAI;AACvC,QAAM,YAAY,OAA0D,IAAI;AAChF,QAAM,cAAc,OAAO,KAAK;AAChC,cAAY,UAAU;AAEtB,4BAA0B,MAAM;AAC9B,UAAM,UAAU,IAAI;AACpB,QAAI,CAAC,SAAS;AACZ;AAAA,IACF;AAEA,cAAU,UAAU,OAAO,eAAe,EAAE,MAAM,SAAS,OAAO,YAAY,SAAS,KAAK,CAAC;AAE7F,WAAO,MAAM;AACX,gBAAU,SAAS,QAAQ;AAC3B,gBAAU,UAAU;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,QAAQ,MAAM,IAAI,CAAC;AAEvB,4BAA0B,MAAM;AAC9B,cAAU,SAAS,OAAO,KAAK;AAAA,EACjC,GAAG,CAAC,KAAK,CAAC;AAEV,SAAO,oBAAC,SAAI,KAAU,OAAO,OAAO,EAAE,SAAS,WAAW,IAAI,QAAW;AAC3E;","names":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
1
2
|
import { NotificationClickHandler, NotificationActionClickHandler } from '@novu/js/ui';
|
|
2
3
|
import React__default from 'react';
|
|
3
4
|
import { NotificationRendererProps, SubjectBodyRendererProps, NoRendererProps } from '../utils/types.js';
|
|
@@ -8,8 +9,6 @@ type NotificationProps = {
|
|
|
8
9
|
onPrimaryActionClick?: NotificationActionClickHandler;
|
|
9
10
|
onSecondaryActionClick?: NotificationActionClickHandler;
|
|
10
11
|
} & (NotificationRendererProps | SubjectBodyRendererProps | NoRendererProps);
|
|
11
|
-
declare const Notifications: React__default.
|
|
12
|
-
children?: React__default.ReactNode | undefined;
|
|
13
|
-
}>;
|
|
12
|
+
declare const Notifications: React__default.MemoExoticComponent<(props: NotificationProps) => react_jsx_runtime.JSX.Element>;
|
|
14
13
|
|
|
15
14
|
export { type NotificationProps, Notifications };
|
|
@@ -1,68 +1,18 @@
|
|
|
1
1
|
// src/components/Notifications.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
|
-
renderDefaultActions,
|
|
15
|
-
renderCustomActions,
|
|
16
|
-
onNotificationClick,
|
|
17
|
-
onPrimaryActionClick,
|
|
18
|
-
onSecondaryActionClick
|
|
19
|
-
} = props;
|
|
20
|
-
const { novuUI } = useNovuUI();
|
|
21
|
-
const { mountElement } = useRenderer();
|
|
22
|
-
const mount = React.useCallback(
|
|
23
|
-
(element) => {
|
|
24
|
-
if (renderNotification) {
|
|
25
|
-
return novuUI.mountComponent({
|
|
26
|
-
name: "Notifications",
|
|
27
|
-
element,
|
|
28
|
-
props: {
|
|
29
|
-
renderNotification: renderNotification ? (el, notification) => mountElement(el, renderNotification(notification)) : void 0,
|
|
30
|
-
onNotificationClick,
|
|
31
|
-
onPrimaryActionClick,
|
|
32
|
-
onSecondaryActionClick
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
return novuUI.mountComponent({
|
|
37
|
-
name: "Notifications",
|
|
38
|
-
element,
|
|
39
|
-
props: {
|
|
40
|
-
renderAvatar: renderAvatar ? (el, notification) => mountElement(el, renderAvatar(notification)) : void 0,
|
|
41
|
-
renderSubject: renderSubject ? (el, notification) => mountElement(el, renderSubject(notification)) : void 0,
|
|
42
|
-
renderBody: renderBody ? (el, notification) => mountElement(el, renderBody(notification)) : void 0,
|
|
43
|
-
renderDefaultActions: renderDefaultActions ? (el, notification) => mountElement(el, renderDefaultActions(notification)) : void 0,
|
|
44
|
-
renderCustomActions: renderCustomActions ? (el, notification) => mountElement(el, renderCustomActions(notification)) : void 0,
|
|
45
|
-
onNotificationClick,
|
|
46
|
-
onPrimaryActionClick,
|
|
47
|
-
onSecondaryActionClick
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
},
|
|
51
|
-
[
|
|
52
|
-
renderNotification,
|
|
53
|
-
renderAvatar,
|
|
54
|
-
renderSubject,
|
|
55
|
-
renderBody,
|
|
56
|
-
renderDefaultActions,
|
|
57
|
-
renderCustomActions,
|
|
58
|
-
onNotificationClick,
|
|
59
|
-
onPrimaryActionClick,
|
|
60
|
-
onSecondaryActionClick
|
|
61
|
-
]
|
|
6
|
+
var Notifications = React.memo((props) => {
|
|
7
|
+
const { onNotificationClick, onPrimaryActionClick, onSecondaryActionClick } = props;
|
|
8
|
+
const outlets = useNotificationOutlets(props);
|
|
9
|
+
const mountProps = useMemo(
|
|
10
|
+
() => ({ ...outlets, onNotificationClick, onPrimaryActionClick, onSecondaryActionClick }),
|
|
11
|
+
[outlets, onNotificationClick, onPrimaryActionClick, onSecondaryActionClick]
|
|
62
12
|
);
|
|
63
|
-
return /* @__PURE__ */ jsx(Mounter, {
|
|
13
|
+
return /* @__PURE__ */ jsx(Mounter, { name: "Notifications", props: mountProps });
|
|
64
14
|
});
|
|
65
|
-
|
|
15
|
+
Notifications.displayName = "Notifications";
|
|
66
16
|
export {
|
|
67
17
|
Notifications
|
|
68
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Notifications.tsx"],"sourcesContent":["import type { NotificationActionClickHandler, NotificationClickHandler } from '@novu/js/ui';\nimport React
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Notifications.tsx"],"sourcesContent":["import type { 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 NotificationProps = {\n onNotificationClick?: NotificationClickHandler;\n onPrimaryActionClick?: NotificationActionClickHandler;\n onSecondaryActionClick?: NotificationActionClickHandler;\n} & (NotificationRendererProps | SubjectBodyRendererProps | NoRendererProps);\n\nexport const Notifications = React.memo((props: NotificationProps) => {\n const { onNotificationClick, onPrimaryActionClick, onSecondaryActionClick } = props;\n const outlets = useNotificationOutlets(props);\n\n const mountProps = useMemo(\n () => ({ ...outlets, onNotificationClick, onPrimaryActionClick, onSecondaryActionClick }),\n [outlets, onNotificationClick, onPrimaryActionClick, onSecondaryActionClick]\n );\n\n return <Mounter name=\"Notifications\" props={mountProps} />;\n});\n\nNotifications.displayName = 'Notifications';\n"],"mappings":";AACA,OAAO,SAAS,eAAe;AAC/B,SAAS,8BAA8B;AAEvC,SAAS,eAAe;AAiBf;AATF,IAAM,gBAAgB,MAAM,KAAK,CAAC,UAA6B;AACpE,QAAM,EAAE,qBAAqB,sBAAsB,uBAAuB,IAAI;AAC9E,QAAM,UAAU,uBAAuB,KAAK;AAE5C,QAAM,aAAa;AAAA,IACjB,OAAO,EAAE,GAAG,SAAS,qBAAqB,sBAAsB,uBAAuB;AAAA,IACvF,CAAC,SAAS,qBAAqB,sBAAsB,sBAAsB;AAAA,EAC7E;AAEA,SAAO,oBAAC,WAAQ,MAAK,iBAAgB,OAAO,YAAY;AAC1D,CAAC;AAED,cAAc,cAAc;","names":[]}
|
|
@@ -11,6 +11,10 @@ type NovuUIProps = React__default.PropsWithChildren<{
|
|
|
11
11
|
options: NovuUIOptions;
|
|
12
12
|
novu: Novu;
|
|
13
13
|
}>;
|
|
14
|
+
/**
|
|
15
|
+
* Owns one engine instance and the outlet store that goes with it. Everything rendered below, portals into
|
|
16
|
+
* outlets included, can reach both through `useNovuUI()`.
|
|
17
|
+
*/
|
|
14
18
|
declare const NovuUI: ({ options, novu, children }: NovuUIProps) => react_jsx_runtime.JSX.Element;
|
|
15
19
|
|
|
16
20
|
export { NovuUI, type NovuUIOptions };
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
import { NovuUI as NovuUIClass } from "@novu/js/ui";
|
|
3
3
|
import { useEffect, useMemo, useRef, useState } from "react";
|
|
4
4
|
import { NovuUIProvider } from "../context/NovuUIContext.js";
|
|
5
|
-
import {
|
|
5
|
+
import { OutletStore } from "../context/OutletStore.js";
|
|
6
6
|
import { useDataRef } from "../hooks/internal/useDataRef.js";
|
|
7
|
+
import { useIsomorphicLayoutEffect } from "../hooks/internal/useIsomorphicLayoutEffect.js";
|
|
7
8
|
import { adaptAppearanceForJs } from "../utils/appearance.js";
|
|
9
|
+
import { OutletHost } from "./OutletHost.js";
|
|
8
10
|
import { ShadowRootDetector } from "./ShadowRootDetector.js";
|
|
9
11
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
10
12
|
var findParentShadowRoot = (child) => {
|
|
@@ -28,10 +30,10 @@ var findParentShadowRoot = (child) => {
|
|
|
28
30
|
};
|
|
29
31
|
var NovuUI = ({ options, novu, children }) => {
|
|
30
32
|
const shadowRootDetector = useRef(null);
|
|
31
|
-
const
|
|
33
|
+
const outlets = useMemo(() => new OutletStore(), []);
|
|
32
34
|
const adaptedAppearanceForUpdate = useMemo(
|
|
33
|
-
() => adaptAppearanceForJs(options.appearance || {},
|
|
34
|
-
[options.appearance,
|
|
35
|
+
() => adaptAppearanceForJs(options.appearance || {}, outlets),
|
|
36
|
+
[options.appearance, outlets]
|
|
35
37
|
);
|
|
36
38
|
const adaptedOptions = useMemo(() => {
|
|
37
39
|
return {
|
|
@@ -42,7 +44,7 @@ var NovuUI = ({ options, novu, children }) => {
|
|
|
42
44
|
}, [options, novu, adaptedAppearanceForUpdate]);
|
|
43
45
|
const optionsRef = useDataRef(adaptedOptions);
|
|
44
46
|
const [novuUI, setNovuUI] = useState();
|
|
45
|
-
|
|
47
|
+
useIsomorphicLayoutEffect(() => {
|
|
46
48
|
const parentShadowRoot = findParentShadowRoot(shadowRootDetector.current);
|
|
47
49
|
const instance = new NovuUIClass({
|
|
48
50
|
...optionsRef.current,
|
|
@@ -75,9 +77,17 @@ var NovuUI = ({ options, novu, children }) => {
|
|
|
75
77
|
options.routerPush,
|
|
76
78
|
novu
|
|
77
79
|
]);
|
|
80
|
+
const icons = options.appearance?.icons;
|
|
81
|
+
const contextValue = useMemo(
|
|
82
|
+
() => novuUI ? { novuUI, outlets, icons: icons ?? {} } : void 0,
|
|
83
|
+
[novuUI, outlets, icons]
|
|
84
|
+
);
|
|
78
85
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
79
86
|
/* @__PURE__ */ jsx(ShadowRootDetector, { ref: shadowRootDetector }),
|
|
80
|
-
|
|
87
|
+
contextValue && /* @__PURE__ */ jsxs(NovuUIProvider, { value: contextValue, children: [
|
|
88
|
+
children,
|
|
89
|
+
/* @__PURE__ */ jsx(OutletHost, { store: outlets })
|
|
90
|
+
] })
|
|
81
91
|
] });
|
|
82
92
|
};
|
|
83
93
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/NovuUI.tsx"],"sourcesContent":["import { Novu } from '@novu/js';\nimport type { NovuUIOptions as JsNovuUIOptions } from '@novu/js/ui';\nimport { NovuUI as NovuUIClass } from '@novu/js/ui';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { NovuUIProvider } from '../context/NovuUIContext';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/components/NovuUI.tsx"],"sourcesContent":["import { Novu } from '@novu/js';\nimport type { NovuUIOptions as JsNovuUIOptions } from '@novu/js/ui';\nimport { NovuUI as NovuUIClass } from '@novu/js/ui';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { NovuUIProvider } from '../context/NovuUIContext';\nimport { OutletStore } from '../context/OutletStore';\nimport { useDataRef } from '../hooks/internal/useDataRef';\nimport { useIsomorphicLayoutEffect } from '../hooks/internal/useIsomorphicLayoutEffect';\nimport { adaptAppearanceForJs } from '../utils/appearance';\nimport type {\n ReactAllAppearance,\n ReactAllIconOverrides,\n ReactInboxAppearance,\n ReactSubscriptionAppearance,\n} from '../utils/types';\nimport { OutletHost } from './OutletHost';\nimport { ShadowRootDetector } from './ShadowRootDetector';\n\nexport type NovuUIOptions = Omit<JsNovuUIOptions, 'appearance'> & {\n appearance?: ReactInboxAppearance | ReactSubscriptionAppearance | ReactAllAppearance;\n};\n\ntype NovuUIProps = React.PropsWithChildren<{\n options: NovuUIOptions;\n novu: Novu;\n}>;\n\nconst findParentShadowRoot = (child?: HTMLDivElement | null): Node | null => {\n if (!child) {\n return null;\n }\n\n let node: Node | null = child;\n\n while (node) {\n if (node instanceof Element && node.shadowRoot) {\n return node.shadowRoot;\n }\n\n if (node instanceof ShadowRoot) {\n return node;\n }\n\n node = node.parentNode;\n\n if (!node || node === document) {\n break;\n }\n }\n\n return null;\n};\n\n/**\n * Owns one engine instance and the outlet store that goes with it. Everything rendered below, portals into\n * outlets included, can reach both through `useNovuUI()`.\n */\nexport const NovuUI = ({ options, novu, children }: NovuUIProps) => {\n const shadowRootDetector = useRef<HTMLDivElement>(null);\n const outlets = useMemo(() => new OutletStore(), []);\n\n const adaptedAppearanceForUpdate = useMemo(\n () => adaptAppearanceForJs(options.appearance || {}, outlets),\n [options.appearance, outlets]\n );\n\n const adaptedOptions = useMemo(() => {\n return {\n ...options,\n appearance: adaptedAppearanceForUpdate,\n novu,\n };\n }, [options, novu, adaptedAppearanceForUpdate]);\n\n const optionsRef = useDataRef(adaptedOptions);\n const [novuUI, setNovuUI] = useState<NovuUIClass | undefined>();\n\n useIsomorphicLayoutEffect(() => {\n const parentShadowRoot = findParentShadowRoot(shadowRootDetector.current);\n const instance = new NovuUIClass({\n ...optionsRef.current,\n container: optionsRef.current.container ?? parentShadowRoot,\n });\n setNovuUI(instance);\n\n return () => {\n instance.unmount();\n };\n }, []);\n\n useEffect(() => {\n if (!novuUI) {\n return;\n }\n\n const parentShadowRoot = findParentShadowRoot(shadowRootDetector.current);\n novuUI.updateContainer(options.container ?? parentShadowRoot);\n novuUI.updateAppearance(adaptedAppearanceForUpdate);\n novuUI.updateLocalization(options.localization);\n novuUI.updateTabs(options.tabs);\n novuUI.updateOptions(options.options);\n novuUI.updateRouterPush(options.routerPush);\n novuUI.updateNovu(novu);\n }, [\n shadowRootDetector,\n novuUI,\n adaptedAppearanceForUpdate,\n options.localization,\n options.tabs,\n options.options,\n options.routerPush,\n novu,\n ]);\n\n const icons = options.appearance?.icons;\n const contextValue = useMemo(\n () => (novuUI ? { novuUI, outlets, icons: (icons ?? {}) as ReactAllIconOverrides } : undefined),\n [novuUI, outlets, icons]\n );\n\n return (\n <>\n <ShadowRootDetector ref={shadowRootDetector} />\n {contextValue && (\n <NovuUIProvider value={contextValue}>\n {children}\n {/* after the children on purpose: their render props update refs during render, the outlets read them */}\n <OutletHost store={outlets} />\n </NovuUIProvider>\n )}\n </>\n );\n};\n"],"mappings":";AAEA,SAAS,UAAU,mBAAmB;AACtC,SAAgB,WAAW,SAAS,QAAQ,gBAAgB;AAC5D,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAC3B,SAAS,iCAAiC;AAC1C,SAAS,4BAA4B;AAOrC,SAAS,kBAAkB;AAC3B,SAAS,0BAA0B;AAyG/B,mBACE,KAEE,YAHJ;AA9FJ,IAAM,uBAAuB,CAAC,UAA+C;AAC3E,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAEA,MAAI,OAAoB;AAExB,SAAO,MAAM;AACX,QAAI,gBAAgB,WAAW,KAAK,YAAY;AAC9C,aAAO,KAAK;AAAA,IACd;AAEA,QAAI,gBAAgB,YAAY;AAC9B,aAAO;AAAA,IACT;AAEA,WAAO,KAAK;AAEZ,QAAI,CAAC,QAAQ,SAAS,UAAU;AAC9B;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAMO,IAAM,SAAS,CAAC,EAAE,SAAS,MAAM,SAAS,MAAmB;AAClE,QAAM,qBAAqB,OAAuB,IAAI;AACtD,QAAM,UAAU,QAAQ,MAAM,IAAI,YAAY,GAAG,CAAC,CAAC;AAEnD,QAAM,6BAA6B;AAAA,IACjC,MAAM,qBAAqB,QAAQ,cAAc,CAAC,GAAG,OAAO;AAAA,IAC5D,CAAC,QAAQ,YAAY,OAAO;AAAA,EAC9B;AAEA,QAAM,iBAAiB,QAAQ,MAAM;AACnC,WAAO;AAAA,MACL,GAAG;AAAA,MACH,YAAY;AAAA,MACZ;AAAA,IACF;AAAA,EACF,GAAG,CAAC,SAAS,MAAM,0BAA0B,CAAC;AAE9C,QAAM,aAAa,WAAW,cAAc;AAC5C,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAkC;AAE9D,4BAA0B,MAAM;AAC9B,UAAM,mBAAmB,qBAAqB,mBAAmB,OAAO;AACxE,UAAM,WAAW,IAAI,YAAY;AAAA,MAC/B,GAAG,WAAW;AAAA,MACd,WAAW,WAAW,QAAQ,aAAa;AAAA,IAC7C,CAAC;AACD,cAAU,QAAQ;AAElB,WAAO,MAAM;AACX,eAAS,QAAQ;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,YAAU,MAAM;AACd,QAAI,CAAC,QAAQ;AACX;AAAA,IACF;AAEA,UAAM,mBAAmB,qBAAqB,mBAAmB,OAAO;AACxE,WAAO,gBAAgB,QAAQ,aAAa,gBAAgB;AAC5D,WAAO,iBAAiB,0BAA0B;AAClD,WAAO,mBAAmB,QAAQ,YAAY;AAC9C,WAAO,WAAW,QAAQ,IAAI;AAC9B,WAAO,cAAc,QAAQ,OAAO;AACpC,WAAO,iBAAiB,QAAQ,UAAU;AAC1C,WAAO,WAAW,IAAI;AAAA,EACxB,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR;AAAA,EACF,CAAC;AAED,QAAM,QAAQ,QAAQ,YAAY;AAClC,QAAM,eAAe;AAAA,IACnB,MAAO,SAAS,EAAE,QAAQ,SAAS,OAAQ,SAAS,CAAC,EAA4B,IAAI;AAAA,IACrF,CAAC,QAAQ,SAAS,KAAK;AAAA,EACzB;AAEA,SACE,iCACE;AAAA,wBAAC,sBAAmB,KAAK,oBAAoB;AAAA,IAC5C,gBACC,qBAAC,kBAAe,OAAO,cACpB;AAAA;AAAA,MAED,oBAAC,cAAW,OAAO,SAAS;AAAA,OAC9B;AAAA,KAEJ;AAEJ;","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { OutletStore } from '../context/OutletStore.js';
|
|
3
|
+
import '@novu/js/ui';
|
|
4
|
+
import 'react';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Renders every outlet of one engine instance as a keyed portal. Keys are outlet ids, so removing one outlet
|
|
8
|
+
* never shifts the others onto a different container, and a data change re-renders the content in place.
|
|
9
|
+
*/
|
|
10
|
+
declare const OutletHost: ({ store }: {
|
|
11
|
+
store: OutletStore;
|
|
12
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
13
|
+
|
|
14
|
+
export { OutletHost };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// src/components/OutletHost.tsx
|
|
2
|
+
import { useSyncExternalStore } from "react";
|
|
3
|
+
import { createPortal } from "react-dom";
|
|
4
|
+
import { Fragment, jsx } from "react/jsx-runtime";
|
|
5
|
+
var OutletContent = ({ entry }) => {
|
|
6
|
+
return /* @__PURE__ */ jsx(Fragment, { children: entry.render(...entry.args) });
|
|
7
|
+
};
|
|
8
|
+
var OutletHost = ({ store }) => {
|
|
9
|
+
const { entries } = useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);
|
|
10
|
+
return /* @__PURE__ */ jsx(Fragment, { children: Array.from(entries.values(), (entry) => createPortal(/* @__PURE__ */ jsx(OutletContent, { entry }), entry.el, entry.id)) });
|
|
11
|
+
};
|
|
12
|
+
export {
|
|
13
|
+
OutletHost
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=OutletHost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/OutletHost.tsx"],"sourcesContent":["import React, { useSyncExternalStore } from 'react';\nimport { createPortal } from 'react-dom';\nimport type { OutletEntry, OutletStore } from '../context/OutletStore';\n\nconst OutletContent = ({ entry }: { entry: OutletEntry }) => {\n return <>{entry.render(...entry.args)}</>;\n};\n\n/**\n * Renders every outlet of one engine instance as a keyed portal. Keys are outlet ids, so removing one outlet\n * never shifts the others onto a different container, and a data change re-renders the content in place.\n */\nexport const OutletHost = ({ store }: { store: OutletStore }) => {\n const { entries } = useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);\n\n return (\n <>{Array.from(entries.values(), (entry) => createPortal(<OutletContent entry={entry} />, entry.el, entry.id))}</>\n );\n};\n"],"mappings":";AAAA,SAAgB,4BAA4B;AAC5C,SAAS,oBAAoB;AAIpB;AADT,IAAM,gBAAgB,CAAC,EAAE,MAAM,MAA8B;AAC3D,SAAO,gCAAG,gBAAM,OAAO,GAAG,MAAM,IAAI,GAAE;AACxC;AAMO,IAAM,aAAa,CAAC,EAAE,MAAM,MAA8B;AAC/D,QAAM,EAAE,QAAQ,IAAI,qBAAqB,MAAM,WAAW,MAAM,aAAa,MAAM,WAAW;AAE9F,SACE,gCAAG,gBAAM,KAAK,QAAQ,OAAO,GAAG,CAAC,UAAU,aAAa,oBAAC,iBAAc,OAAc,GAAI,MAAM,IAAI,MAAM,EAAE,CAAC,GAAE;AAElH;","names":[]}
|
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
// src/components/Preferences.tsx
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { useNovuUI } from "../context/NovuUIContext.js";
|
|
4
2
|
import { Mounter } from "./Mounter.js";
|
|
5
3
|
import { jsx } from "react/jsx-runtime";
|
|
6
4
|
var Preferences = () => {
|
|
7
|
-
|
|
8
|
-
const mount = React.useCallback((element) => {
|
|
9
|
-
return novuUI.mountComponent({
|
|
10
|
-
name: "Preferences",
|
|
11
|
-
element
|
|
12
|
-
});
|
|
13
|
-
}, []);
|
|
14
|
-
return /* @__PURE__ */ jsx(Mounter, { mount });
|
|
5
|
+
return /* @__PURE__ */ jsx(Mounter, { name: "Preferences" });
|
|
15
6
|
};
|
|
16
7
|
export {
|
|
17
8
|
Preferences
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Preferences.tsx"],"sourcesContent":["import React from 'react';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Preferences.tsx"],"sourcesContent":["import React from 'react';\nimport { Mounter } from './Mounter';\n\nexport const Preferences = () => {\n return <Mounter name=\"Preferences\" />;\n};\n"],"mappings":";AACA,SAAS,eAAe;AAGf;AADF,IAAM,cAAc,MAAM;AAC/B,SAAO,oBAAC,WAAQ,MAAK,eAAc;AACrC;","names":[]}
|
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
import React, { useMemo } from "react";
|
|
3
3
|
import { useNovu } from "../../hooks/NovuProvider.js";
|
|
4
4
|
import { NovuUI } from "../NovuUI.js";
|
|
5
|
-
import { withRenderer } from "../Renderer.js";
|
|
6
5
|
import { DefaultConnectChat } from "./DefaultConnectChat.js";
|
|
7
6
|
import { jsx } from "react/jsx-runtime";
|
|
8
|
-
var ConnectChatInternal =
|
|
7
|
+
var ConnectChatInternal = (props) => {
|
|
9
8
|
const { container, appearance, ...defaultProps } = props;
|
|
10
9
|
const novu = useNovu();
|
|
11
10
|
const options = useMemo(() => {
|
|
@@ -16,7 +15,7 @@ var ConnectChatInternal = withRenderer((props) => {
|
|
|
16
15
|
};
|
|
17
16
|
}, [container, appearance, novu.options]);
|
|
18
17
|
return /* @__PURE__ */ jsx(NovuUI, { options, novu, children: /* @__PURE__ */ jsx(DefaultConnectChat, { ...defaultProps }) });
|
|
19
|
-
}
|
|
18
|
+
};
|
|
20
19
|
ConnectChatInternal.displayName = "ConnectChatInternal";
|
|
21
20
|
var ConnectChat = React.memo((props) => {
|
|
22
21
|
return /* @__PURE__ */ jsx(ConnectChatInternal, { ...props });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/connect-chat/ConnectChat.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { useNovu } from '../../hooks/NovuProvider';\nimport { NovuUI, NovuUIOptions } from '../NovuUI';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/connect-chat/ConnectChat.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { useNovu } from '../../hooks/NovuProvider';\nimport { NovuUI, NovuUIOptions } from '../NovuUI';\nimport { DefaultConnectChat, DefaultConnectChatProps } from './DefaultConnectChat';\n\nexport type ConnectChatProps = DefaultConnectChatProps & Pick<NovuUIOptions, 'container' | 'appearance'>;\n\nconst ConnectChatInternal = (props: ConnectChatProps) => {\n const { container, appearance, ...defaultProps } = props;\n const novu = useNovu();\n\n const options: NovuUIOptions = useMemo(() => {\n return {\n container,\n appearance,\n options: novu.options,\n };\n }, [container, appearance, novu.options]);\n\n return (\n <NovuUI options={options} novu={novu}>\n <DefaultConnectChat {...defaultProps} />\n </NovuUI>\n );\n};\n\nConnectChatInternal.displayName = 'ConnectChatInternal';\n\nexport const ConnectChat = React.memo((props: ConnectChatProps) => {\n return <ConnectChatInternal {...props} />;\n});\n\nConnectChat.displayName = 'ConnectChat';\n"],"mappings":";AAAA,OAAO,SAAS,eAAe;AAC/B,SAAS,eAAe;AACxB,SAAS,cAA6B;AACtC,SAAS,0BAAmD;AAkBtD;AAdN,IAAM,sBAAsB,CAAC,UAA4B;AACvD,QAAM,EAAE,WAAW,YAAY,GAAG,aAAa,IAAI;AACnD,QAAM,OAAO,QAAQ;AAErB,QAAM,UAAyB,QAAQ,MAAM;AAC3C,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,SAAS,KAAK;AAAA,IAChB;AAAA,EACF,GAAG,CAAC,WAAW,YAAY,KAAK,OAAO,CAAC;AAExC,SACE,oBAAC,UAAO,SAAkB,MACxB,8BAAC,sBAAoB,GAAG,cAAc,GACxC;AAEJ;AAEA,oBAAoB,cAAc;AAE3B,IAAM,cAAc,MAAM,KAAK,CAAC,UAA4B;AACjE,SAAO,oBAAC,uBAAqB,GAAG,OAAO;AACzC,CAAC;AAED,YAAY,cAAc;","names":[]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// src/components/connect-chat/DefaultConnectChat.tsx
|
|
2
|
-
import {
|
|
3
|
-
import { useNovuUI } from "../../context/NovuUIContext.js";
|
|
2
|
+
import { useMemo } from "react";
|
|
4
3
|
import { Mounter } from "../Mounter.js";
|
|
5
4
|
import { jsx } from "react/jsx-runtime";
|
|
6
5
|
var DefaultConnectChat = (props) => {
|
|
@@ -16,28 +15,20 @@ var DefaultConnectChat = (props) => {
|
|
|
16
15
|
onDisconnectSuccess,
|
|
17
16
|
onDisconnectError
|
|
18
17
|
} = props;
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
onConnectError,
|
|
33
|
-
onDisconnectSuccess,
|
|
34
|
-
onDisconnectError
|
|
35
|
-
},
|
|
36
|
-
element
|
|
37
|
-
});
|
|
38
|
-
},
|
|
18
|
+
const mountProps = useMemo(
|
|
19
|
+
() => ({
|
|
20
|
+
integrationIdentifier,
|
|
21
|
+
connectionIdentifier,
|
|
22
|
+
subscriberId,
|
|
23
|
+
context,
|
|
24
|
+
scope,
|
|
25
|
+
connectionMode,
|
|
26
|
+
onConnectSuccess,
|
|
27
|
+
onConnectError,
|
|
28
|
+
onDisconnectSuccess,
|
|
29
|
+
onDisconnectError
|
|
30
|
+
}),
|
|
39
31
|
[
|
|
40
|
-
novuUI,
|
|
41
32
|
integrationIdentifier,
|
|
42
33
|
connectionIdentifier,
|
|
43
34
|
subscriberId,
|
|
@@ -50,7 +41,7 @@ var DefaultConnectChat = (props) => {
|
|
|
50
41
|
onDisconnectError
|
|
51
42
|
]
|
|
52
43
|
);
|
|
53
|
-
return /* @__PURE__ */ jsx(Mounter, {
|
|
44
|
+
return /* @__PURE__ */ jsx(Mounter, { name: "ConnectChat", props: mountProps });
|
|
54
45
|
};
|
|
55
46
|
export {
|
|
56
47
|
DefaultConnectChat
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/connect-chat/DefaultConnectChat.tsx"],"sourcesContent":["import { ConnectChatProps } from '@novu/js/ui';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/connect-chat/DefaultConnectChat.tsx"],"sourcesContent":["import { ConnectChatProps } from '@novu/js/ui';\nimport { useMemo } from 'react';\nimport { Mounter } from '../Mounter';\n\nexport type DefaultConnectChatProps = Pick<\n ConnectChatProps,\n | 'integrationIdentifier'\n | 'connectionIdentifier'\n | 'subscriberId'\n | 'context'\n | 'scope'\n | 'connectionMode'\n | 'onConnectSuccess'\n | 'onConnectError'\n | 'onDisconnectSuccess'\n | 'onDisconnectError'\n>;\n\nexport const DefaultConnectChat = (props: DefaultConnectChatProps) => {\n const {\n integrationIdentifier,\n connectionIdentifier,\n subscriberId,\n context,\n scope,\n connectionMode,\n onConnectSuccess,\n onConnectError,\n onDisconnectSuccess,\n onDisconnectError,\n } = props;\n\n const mountProps = useMemo(\n () => ({\n integrationIdentifier,\n connectionIdentifier,\n subscriberId,\n context,\n scope,\n connectionMode,\n onConnectSuccess,\n onConnectError,\n onDisconnectSuccess,\n onDisconnectError,\n }),\n [\n integrationIdentifier,\n connectionIdentifier,\n subscriberId,\n context,\n scope,\n connectionMode,\n onConnectSuccess,\n onConnectError,\n onDisconnectSuccess,\n onDisconnectError,\n ]\n );\n\n return <Mounter name=\"ConnectChat\" props={mountProps} />;\n};\n"],"mappings":";AACA,SAAS,eAAe;AACxB,SAAS,eAAe;AAyDf;AAzCF,IAAM,qBAAqB,CAAC,UAAmC;AACpE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,QAAM,aAAa;AAAA,IACjB,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;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,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO,oBAAC,WAAQ,MAAK,eAAc,OAAO,YAAY;AACxD;","names":[]}
|
|
@@ -5,6 +5,7 @@ export { InboxContent, InboxContentProps } from './InboxContent.js';
|
|
|
5
5
|
export { MsTeamsConnectButton, MsTeamsConnectButtonProps } from './msteams-connect-button/MsTeamsConnectButton.js';
|
|
6
6
|
export { MsTeamsLinkUser, MsTeamsLinkUserProps } from './msteams-link-user/MsTeamsLinkUser.js';
|
|
7
7
|
export { NotificationProps, Notifications } from './Notifications.js';
|
|
8
|
+
export { NotificationItem, NotificationItemProps } from './notification-item/NotificationItem.js';
|
|
8
9
|
export { Preferences } from './Preferences.js';
|
|
9
10
|
export { SlackConnectButton, SlackConnectButtonProps } from './slack-connect-button/SlackConnectButton.js';
|
|
10
11
|
export { SlackLinkUser, SlackLinkUserProps } from './slack-link-user/SlackLinkUser.js';
|
|
@@ -20,6 +21,11 @@ import '@novu/js/ui';
|
|
|
20
21
|
import './NovuUI.js';
|
|
21
22
|
import './msteams-connect-button/DefaultMsTeamsConnectButton.js';
|
|
22
23
|
import './msteams-link-user/DefaultMsTeamsLinkUser.js';
|
|
24
|
+
import './notification-item/parts/Dot.js';
|
|
25
|
+
import './notification-item/parts/Date.js';
|
|
26
|
+
import './notification-item/parts/Subject.js';
|
|
27
|
+
import './notification-item/parts/Content.js';
|
|
28
|
+
import './notification-item/parts/Avatar.js';
|
|
23
29
|
import './slack-connect-button/DefaultSlackConnectButton.js';
|
|
24
30
|
import './slack-link-user/DefaultSlackLinkUser.js';
|
|
25
31
|
import './subscription/DefaultSubscription.js';
|
|
@@ -6,6 +6,7 @@ export * from "./InboxContent.js";
|
|
|
6
6
|
export * from "./msteams-connect-button/MsTeamsConnectButton.js";
|
|
7
7
|
export * from "./msteams-link-user/MsTeamsLinkUser.js";
|
|
8
8
|
export * from "./Notifications.js";
|
|
9
|
+
export * from "./notification-item/NotificationItem.js";
|
|
9
10
|
export * from "./Preferences.js";
|
|
10
11
|
export * from "./slack-connect-button/SlackConnectButton.js";
|
|
11
12
|
export * from "./slack-link-user/SlackLinkUser.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/index.ts"],"sourcesContent":["export * from '../hooks/NovuProvider';\nexport * from './Bell';\nexport * from './Inbox';\nexport * from './InboxContent';\nexport * from './msteams-connect-button/MsTeamsConnectButton';\nexport * from './msteams-link-user/MsTeamsLinkUser';\nexport * from './Notifications';\nexport * from './Preferences';\nexport * from './slack-connect-button/SlackConnectButton';\nexport * from './slack-link-user/SlackLinkUser';\nexport * from './subscription/Subscription';\nexport * from './subscription/SubscriptionButton';\nexport * from './subscription/SubscriptionPreferences';\nexport * from './telegram-connect-button/TelegramConnectButton';\n"],"mappings":";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/index.ts"],"sourcesContent":["export * from '../hooks/NovuProvider';\nexport * from './Bell';\nexport * from './Inbox';\nexport * from './InboxContent';\nexport * from './msteams-connect-button/MsTeamsConnectButton';\nexport * from './msteams-link-user/MsTeamsLinkUser';\nexport * from './Notifications';\nexport * from './notification-item/NotificationItem';\nexport * from './Preferences';\nexport * from './slack-connect-button/SlackConnectButton';\nexport * from './slack-link-user/SlackLinkUser';\nexport * from './subscription/Subscription';\nexport * from './subscription/SubscriptionButton';\nexport * from './subscription/SubscriptionPreferences';\nexport * from './telegram-connect-button/TelegramConnectButton';\n"],"mappings":";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// src/components/msteams-connect-button/DefaultMsTeamsConnectButton.tsx
|
|
2
|
-
import {
|
|
3
|
-
import { useNovuUI } from "../../context/NovuUIContext.js";
|
|
2
|
+
import { useMemo } from "react";
|
|
4
3
|
import { Mounter } from "../Mounter.js";
|
|
5
4
|
import { jsx } from "react/jsx-runtime";
|
|
6
5
|
var DefaultMsTeamsConnectButton = (props) => {
|
|
@@ -19,31 +18,23 @@ var DefaultMsTeamsConnectButton = (props) => {
|
|
|
19
18
|
connectLabel,
|
|
20
19
|
connectedLabel
|
|
21
20
|
} = props;
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
onDisconnectError,
|
|
39
|
-
connectLabel,
|
|
40
|
-
connectedLabel
|
|
41
|
-
},
|
|
42
|
-
element
|
|
43
|
-
});
|
|
44
|
-
},
|
|
21
|
+
const mountProps = useMemo(
|
|
22
|
+
() => ({
|
|
23
|
+
integrationIdentifier,
|
|
24
|
+
connectionIdentifier,
|
|
25
|
+
subscriberId,
|
|
26
|
+
context,
|
|
27
|
+
scope,
|
|
28
|
+
connectionMode,
|
|
29
|
+
autoLinkUser,
|
|
30
|
+
onConnectSuccess,
|
|
31
|
+
onConnectError,
|
|
32
|
+
onDisconnectSuccess,
|
|
33
|
+
onDisconnectError,
|
|
34
|
+
connectLabel,
|
|
35
|
+
connectedLabel
|
|
36
|
+
}),
|
|
45
37
|
[
|
|
46
|
-
novuUI,
|
|
47
38
|
integrationIdentifier,
|
|
48
39
|
connectionIdentifier,
|
|
49
40
|
subscriberId,
|
|
@@ -59,7 +50,7 @@ var DefaultMsTeamsConnectButton = (props) => {
|
|
|
59
50
|
connectedLabel
|
|
60
51
|
]
|
|
61
52
|
);
|
|
62
|
-
return /* @__PURE__ */ jsx(Mounter, {
|
|
53
|
+
return /* @__PURE__ */ jsx(Mounter, { name: "MsTeamsConnectButton", props: mountProps });
|
|
63
54
|
};
|
|
64
55
|
export {
|
|
65
56
|
DefaultMsTeamsConnectButton
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/msteams-connect-button/DefaultMsTeamsConnectButton.tsx"],"sourcesContent":["import { MsTeamsConnectButtonProps } from '@novu/js/ui';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/msteams-connect-button/DefaultMsTeamsConnectButton.tsx"],"sourcesContent":["import { MsTeamsConnectButtonProps } from '@novu/js/ui';\nimport { useMemo } from 'react';\nimport { Mounter } from '../Mounter';\n\nexport type DefaultMsTeamsConnectButtonProps = Pick<\n MsTeamsConnectButtonProps,\n | 'integrationIdentifier'\n | 'connectionIdentifier'\n | 'subscriberId'\n | 'context'\n | 'scope'\n | 'connectionMode'\n | 'autoLinkUser'\n | 'onConnectSuccess'\n | 'onConnectError'\n | 'onDisconnectSuccess'\n | 'onDisconnectError'\n | 'connectLabel'\n | 'connectedLabel'\n>;\n\nexport const DefaultMsTeamsConnectButton = (props: DefaultMsTeamsConnectButtonProps) => {\n const {\n integrationIdentifier,\n connectionIdentifier,\n subscriberId,\n context,\n scope,\n connectionMode,\n autoLinkUser,\n onConnectSuccess,\n onConnectError,\n onDisconnectSuccess,\n onDisconnectError,\n connectLabel,\n connectedLabel,\n } = props;\n\n const mountProps = useMemo(\n () => ({\n integrationIdentifier,\n connectionIdentifier,\n subscriberId,\n context,\n scope,\n connectionMode,\n autoLinkUser,\n onConnectSuccess,\n onConnectError,\n onDisconnectSuccess,\n onDisconnectError,\n connectLabel,\n connectedLabel,\n }),\n [\n integrationIdentifier,\n connectionIdentifier,\n subscriberId,\n context,\n scope,\n connectionMode,\n autoLinkUser,\n onConnectSuccess,\n onConnectError,\n onDisconnectSuccess,\n onDisconnectError,\n connectLabel,\n connectedLabel,\n ]\n );\n\n return <Mounter name=\"MsTeamsConnectButton\" props={mountProps} />;\n};\n"],"mappings":";AACA,SAAS,eAAe;AACxB,SAAS,eAAe;AAqEf;AAlDF,IAAM,8BAA8B,CAAC,UAA4C;AACtF,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,QAAM,aAAa;AAAA,IACjB,OAAO;AAAA,MACL;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,IACF;AAAA,IACA;AAAA,MACE;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,IACF;AAAA,EACF;AAEA,SAAO,oBAAC,WAAQ,MAAK,wBAAuB,OAAO,YAAY;AACjE;","names":[]}
|
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
import React, { useMemo } from "react";
|
|
3
3
|
import { useNovu } from "../../hooks/NovuProvider.js";
|
|
4
4
|
import { NovuUI } from "../NovuUI.js";
|
|
5
|
-
import { withRenderer } from "../Renderer.js";
|
|
6
5
|
import { DefaultMsTeamsConnectButton } from "./DefaultMsTeamsConnectButton.js";
|
|
7
6
|
import { jsx } from "react/jsx-runtime";
|
|
8
|
-
var MsTeamsConnectButtonInternal =
|
|
7
|
+
var MsTeamsConnectButtonInternal = (props) => {
|
|
9
8
|
const { container, appearance, ...defaultProps } = props;
|
|
10
9
|
const novu = useNovu();
|
|
11
10
|
const options = useMemo(() => {
|
|
@@ -16,7 +15,7 @@ var MsTeamsConnectButtonInternal = withRenderer((props) => {
|
|
|
16
15
|
};
|
|
17
16
|
}, [container, appearance, novu.options]);
|
|
18
17
|
return /* @__PURE__ */ jsx(NovuUI, { options, novu, children: /* @__PURE__ */ jsx(DefaultMsTeamsConnectButton, { ...defaultProps }) });
|
|
19
|
-
}
|
|
18
|
+
};
|
|
20
19
|
MsTeamsConnectButtonInternal.displayName = "MsTeamsConnectButtonInternal";
|
|
21
20
|
var MsTeamsConnectButton = React.memo((props) => {
|
|
22
21
|
return /* @__PURE__ */ jsx(MsTeamsConnectButtonInternal, { ...props });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/msteams-connect-button/MsTeamsConnectButton.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { useNovu } from '../../hooks/NovuProvider';\nimport { NovuUI, NovuUIOptions } from '../NovuUI';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/msteams-connect-button/MsTeamsConnectButton.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { useNovu } from '../../hooks/NovuProvider';\nimport { NovuUI, NovuUIOptions } from '../NovuUI';\nimport { DefaultMsTeamsConnectButton, DefaultMsTeamsConnectButtonProps } from './DefaultMsTeamsConnectButton';\n\nexport type MsTeamsConnectButtonProps = DefaultMsTeamsConnectButtonProps &\n Pick<NovuUIOptions, 'container' | 'appearance'>;\n\nconst MsTeamsConnectButtonInternal = (props: MsTeamsConnectButtonProps) => {\n const { container, appearance, ...defaultProps } = props;\n const novu = useNovu();\n\n const options: NovuUIOptions = useMemo(() => {\n return {\n container,\n appearance,\n options: novu.options,\n };\n }, [container, appearance, novu.options]);\n\n return (\n <NovuUI options={options} novu={novu}>\n <DefaultMsTeamsConnectButton {...defaultProps} />\n </NovuUI>\n );\n};\n\nMsTeamsConnectButtonInternal.displayName = 'MsTeamsConnectButtonInternal';\n\nexport const MsTeamsConnectButton = React.memo((props: MsTeamsConnectButtonProps) => {\n return <MsTeamsConnectButtonInternal {...props} />;\n});\n\nMsTeamsConnectButton.displayName = 'MsTeamsConnectButton';\n"],"mappings":";AAAA,OAAO,SAAS,eAAe;AAC/B,SAAS,eAAe;AACxB,SAAS,cAA6B;AACtC,SAAS,mCAAqE;AAmBxE;AAdN,IAAM,+BAA+B,CAAC,UAAqC;AACzE,QAAM,EAAE,WAAW,YAAY,GAAG,aAAa,IAAI;AACnD,QAAM,OAAO,QAAQ;AAErB,QAAM,UAAyB,QAAQ,MAAM;AAC3C,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,SAAS,KAAK;AAAA,IAChB;AAAA,EACF,GAAG,CAAC,WAAW,YAAY,KAAK,OAAO,CAAC;AAExC,SACE,oBAAC,UAAO,SAAkB,MACxB,8BAAC,+BAA6B,GAAG,cAAc,GACjD;AAEJ;AAEA,6BAA6B,cAAc;AAEpC,IAAM,uBAAuB,MAAM,KAAK,CAAC,UAAqC;AACnF,SAAO,oBAAC,gCAA8B,GAAG,OAAO;AAClD,CAAC;AAED,qBAAqB,cAAc;","names":[]}
|