@marketrix.ai/widget 1.0.6 → 1.0.8
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/components/MarketrixWidget.d.ts.map +1 -1
- package/dist/components/chat/ChatWindow.d.ts.map +1 -1
- package/dist/components/layout/WidgetButton.d.ts.map +1 -1
- package/dist/hooks/useWidget.d.ts +1 -0
- package/dist/hooks/useWidget.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +30 -15
- package/dist/index.mjs.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarketrixWidget.d.ts","sourceRoot":"","sources":["../../src/components/MarketrixWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8C,MAAM,OAAO,CAAC;AAGnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAQhD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,eAAe,CAAC;CACzB;AA6BD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"MarketrixWidget.d.ts","sourceRoot":"","sources":["../../src/components/MarketrixWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8C,MAAM,OAAO,CAAC;AAGnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAQhD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,eAAe,CAAC;CACzB;AA6BD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAyH1D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatWindow.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ChatWindow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAG3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAcjD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQ9E,UAAU,eAAe;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,EAAE,eAAe,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,EAAE,CACb,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,eAAe,EACtB,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,EACjB,eAAe,CAAC,EAAE,OAAO,KACtB,IAAI,CAAC;IACV,SAAS,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3C,YAAY,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC7C,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC5E,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACtD;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"ChatWindow.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ChatWindow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAG3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAcjD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQ9E,UAAU,eAAe;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,EAAE,eAAe,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,EAAE,CACb,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,eAAe,EACtB,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,EACjB,eAAe,CAAC,EAAE,OAAO,KACtB,IAAI,CAAC;IACV,SAAS,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3C,YAAY,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC7C,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC5E,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACtD;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA8sBhD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetButton.d.ts","sourceRoot":"","sources":["../../../src/components/layout/WidgetButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAInD,UAAU,iBAAiB;IACzB,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"WidgetButton.d.ts","sourceRoot":"","sources":["../../../src/components/layout/WidgetButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAInD,UAAU,iBAAiB;IACzB,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAoMpD,CAAC"}
|
|
@@ -62,6 +62,7 @@ export declare const useWidget: ({ config }?: UseWidgetProps) => {
|
|
|
62
62
|
getWidgetText: () => import("../utils/config").WidgetTextConfig;
|
|
63
63
|
getWidgetCustomize: () => import("../utils/config").WidgetCustomizeConfig;
|
|
64
64
|
getWidgetPosition: () => import("../utils/config").WidgetPositionConfig;
|
|
65
|
+
isPreviewMode: boolean;
|
|
65
66
|
};
|
|
66
67
|
export {};
|
|
67
68
|
//# sourceMappingURL=useWidget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWidget.d.ts","sourceRoot":"","sources":["../../src/hooks/useWidget.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,UAAU,CAAC;AAOpE,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,eAAO,MAAM,SAAS,GAAI,aAAY,cAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAwBvC,CAAC;;;;;;;;;2CAYgC,CAAC,
|
|
1
|
+
{"version":3,"file":"useWidget.d.ts","sourceRoot":"","sources":["../../src/hooks/useWidget.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,UAAU,CAAC;AAOpE,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,eAAO,MAAM,SAAS,GAAI,aAAY,cAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAwBvC,CAAC;;;;;;;;;2CAYgC,CAAC,4CAG1C,CAAC,kBAAyB,CAAA,yBACZ,CAAC;;;;;;;CAaxB,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAUjD,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAIL,gBAAgB,EASjB,MAAM,mBAAmB,CAAC;AA2C3B,eAAO,MAAM,UAAU,GACrB,QAAQ,eAAe,EACvB,YAAY,WAAW,KACtB,OAAO,CAAC,IAAI,CA4Cd,CAAC;AAGF,eAAO,MAAM,aAAa,QAAO,IAchC,CAAC;AAGF,eAAO,MAAM,qBAAqB,GAAU,WAAW,OAAO,CAAC,eAAe,CAAC,KAAG,OAAO,CAAC,IAAI,CAW7F,CAAC;AAGF,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAUjD,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAIL,gBAAgB,EASjB,MAAM,mBAAmB,CAAC;AA2C3B,eAAO,MAAM,UAAU,GACrB,QAAQ,eAAe,EACvB,YAAY,WAAW,KACtB,OAAO,CAAC,IAAI,CA4Cd,CAAC;AAGF,eAAO,MAAM,aAAa,QAAO,IAchC,CAAC;AAGF,eAAO,MAAM,qBAAqB,GAAU,WAAW,OAAO,CAAC,eAAe,CAAC,KAAG,OAAO,CAAC,IAAI,CAW7F,CAAC;AAGF,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA0E1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAU,QAAQ,eAAe,KAAG,OAAO,CAAC,IAAI,CA4CvE,CAAC;AAiBF,YAAY,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAC7C,YAAY,EACV,eAAe,EACf,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,WAAW,GACZ,MAAM,SAAS,CAAC;;;0BApEyB,eAAe,KAAG,OAAO,CAAC,IAAI,CAAC;yBAtK/D,eAAe,cACX,WAAW,KACtB,OAAO,CAAC,IAAI,CAAC;yBA+CiB,IAAI;uCAiBkB,OAAO,CAAC,eAAe,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC;;;AA2K/F,wBAOE"}
|
package/dist/index.mjs
CHANGED
|
@@ -10075,6 +10075,7 @@ const useWidget = ({ config } = {}) => {
|
|
|
10075
10075
|
const shouldShowWidget = useCallback(() => {
|
|
10076
10076
|
return (marketrixConfig == null ? void 0 : marketrixConfig.widget_enabled) ?? false;
|
|
10077
10077
|
}, [marketrixConfig]);
|
|
10078
|
+
const isPreviewMode = (marketrixConfig == null ? void 0 : marketrixConfig.isPreviewMode) ?? false;
|
|
10078
10079
|
return {
|
|
10079
10080
|
state,
|
|
10080
10081
|
marketrixConfig,
|
|
@@ -10083,7 +10084,8 @@ const useWidget = ({ config } = {}) => {
|
|
|
10083
10084
|
shouldShow: shouldShowWidget(),
|
|
10084
10085
|
getWidgetText: getWidgetText$1,
|
|
10085
10086
|
getWidgetCustomize: getWidgetCustomize$1,
|
|
10086
|
-
getWidgetPosition: getWidgetPosition$1
|
|
10087
|
+
getWidgetPosition: getWidgetPosition$1,
|
|
10088
|
+
isPreviewMode
|
|
10087
10089
|
};
|
|
10088
10090
|
};
|
|
10089
10091
|
function hexToRgb(hex) {
|
|
@@ -10957,7 +10959,6 @@ const MessageContent = ({
|
|
|
10957
10959
|
}) => {
|
|
10958
10960
|
const placeholderState = message.placeholderState || "thinking";
|
|
10959
10961
|
const isWaitingForUser = placeholderState === "waiting-for-user";
|
|
10960
|
-
const customText = void 0;
|
|
10961
10962
|
if (message.parts && message.parts.length > 0) {
|
|
10962
10963
|
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
|
|
10963
10964
|
message.parts.map((part, index2) => {
|
|
@@ -10987,8 +10988,8 @@ const MessageContent = ({
|
|
|
10987
10988
|
isWaitingForUser: isWaitingForUserAction,
|
|
10988
10989
|
accentColor,
|
|
10989
10990
|
textColor,
|
|
10990
|
-
hideIcon: part.hideIcon,
|
|
10991
|
-
textStyle: part.textStyle
|
|
10991
|
+
...part.hideIcon !== void 0 ? { hideIcon: part.hideIcon } : {},
|
|
10992
|
+
...part.textStyle !== void 0 ? { textStyle: part.textStyle } : {}
|
|
10992
10993
|
},
|
|
10993
10994
|
`part-${index2}`
|
|
10994
10995
|
);
|
|
@@ -11000,7 +11001,7 @@ const MessageContent = ({
|
|
|
11000
11001
|
{
|
|
11001
11002
|
isWaitingForUser,
|
|
11002
11003
|
textColor,
|
|
11003
|
-
|
|
11004
|
+
...{},
|
|
11004
11005
|
accentColor
|
|
11005
11006
|
}
|
|
11006
11007
|
)
|
|
@@ -11012,7 +11013,7 @@ const MessageContent = ({
|
|
|
11012
11013
|
{
|
|
11013
11014
|
isWaitingForUser,
|
|
11014
11015
|
textColor,
|
|
11015
|
-
|
|
11016
|
+
...{},
|
|
11016
11017
|
accentColor
|
|
11017
11018
|
}
|
|
11018
11019
|
);
|
|
@@ -11815,7 +11816,7 @@ const ChatWindow = ({
|
|
|
11815
11816
|
);
|
|
11816
11817
|
const [showScreenAccessModal, setShowScreenAccessModal] = useState(false);
|
|
11817
11818
|
const [pendingMessage, setPendingMessage] = useState(null);
|
|
11818
|
-
const { getWidgetPosition: getWidgetPosition2, settings } = useWidget({ config });
|
|
11819
|
+
const { getWidgetPosition: getWidgetPosition2, settings, isPreviewMode } = useWidget({ config });
|
|
11819
11820
|
const widgetPosition = getWidgetPosition2();
|
|
11820
11821
|
useEffect(() => {
|
|
11821
11822
|
var _a;
|
|
@@ -12046,12 +12047,13 @@ const ChatWindow = ({
|
|
|
12046
12047
|
return this.props.children;
|
|
12047
12048
|
}
|
|
12048
12049
|
}
|
|
12050
|
+
const positionClass = isPreviewMode ? "absolute" : "fixed";
|
|
12049
12051
|
const chatWindowHeight = isMinimized ? "h-12" : "h-[35rem]";
|
|
12050
12052
|
return /* @__PURE__ */ jsx(
|
|
12051
12053
|
"div",
|
|
12052
12054
|
{
|
|
12053
12055
|
ref: chatWindowRef,
|
|
12054
|
-
className:
|
|
12056
|
+
className: `${positionClass} rounded-xl ${positionClasses} pointer-events-auto`,
|
|
12055
12057
|
style: {
|
|
12056
12058
|
zIndex: widgetPosition.z_index || 40,
|
|
12057
12059
|
backgroundColor: "#ffffff",
|
|
@@ -12310,8 +12312,8 @@ const ChatWindow = ({
|
|
|
12310
12312
|
setPendingMessage({
|
|
12311
12313
|
content,
|
|
12312
12314
|
mode,
|
|
12313
|
-
connectionId,
|
|
12314
|
-
question,
|
|
12315
|
+
...connectionId !== void 0 ? { connectionId } : {},
|
|
12316
|
+
...question !== void 0 ? { question } : {},
|
|
12315
12317
|
alreadyAdded: true
|
|
12316
12318
|
});
|
|
12317
12319
|
requestScreenAccess(mode || currentMode);
|
|
@@ -12424,7 +12426,7 @@ const WidgetButton = ({
|
|
|
12424
12426
|
isScreenSharing: isScreenSharing2 = false
|
|
12425
12427
|
}) => {
|
|
12426
12428
|
const [showWelcomeText, setShowWelcomeText] = useState(false);
|
|
12427
|
-
const { getWidgetPosition: getWidgetPosition2, settings } = useWidget({ config });
|
|
12429
|
+
const { getWidgetPosition: getWidgetPosition2, settings, isPreviewMode } = useWidget({ config });
|
|
12428
12430
|
const widgetPosition = getWidgetPosition2();
|
|
12429
12431
|
useEffect(() => {
|
|
12430
12432
|
setShowWelcomeText(false);
|
|
@@ -12443,10 +12445,11 @@ const WidgetButton = ({
|
|
|
12443
12445
|
}, [settings.widget_appearance, isMinimized]);
|
|
12444
12446
|
const effectivePosition = widgetPosition.position || settings.widget_position || "bottom_right";
|
|
12445
12447
|
const effectivePositionClasses = getPositionClasses(effectivePosition);
|
|
12448
|
+
const positionClass = isPreviewMode ? "absolute" : "fixed";
|
|
12446
12449
|
return /* @__PURE__ */ jsxs(
|
|
12447
12450
|
"div",
|
|
12448
12451
|
{
|
|
12449
|
-
className:
|
|
12452
|
+
className: `${positionClass} ${effectivePositionClasses} transition-transform duration-500 ease-in-out ${showWelcomeText && !isOpen ? effectivePosition.includes("left") ? "transform translate-x-64" : "transform -translate-x-64" : ""}`,
|
|
12450
12453
|
style: { zIndex: widgetPosition.z_index || 50 },
|
|
12451
12454
|
children: [
|
|
12452
12455
|
/* @__PURE__ */ jsx(
|
|
@@ -12666,7 +12669,15 @@ class WidgetErrorBoundary extends React.Component {
|
|
|
12666
12669
|
const MarketrixWidget$1 = ({ config }) => {
|
|
12667
12670
|
const [isScreenSharing2, setIsScreenSharing] = useState(false);
|
|
12668
12671
|
const [showDevPanel, setShowDevPanel] = useState(false);
|
|
12669
|
-
const {
|
|
12672
|
+
const {
|
|
12673
|
+
state,
|
|
12674
|
+
actions,
|
|
12675
|
+
marketrixConfig,
|
|
12676
|
+
shouldShow,
|
|
12677
|
+
getWidgetPosition: getWidgetPosition2,
|
|
12678
|
+
settings,
|
|
12679
|
+
isPreviewMode
|
|
12680
|
+
} = useWidget({
|
|
12670
12681
|
config
|
|
12671
12682
|
});
|
|
12672
12683
|
useEffect(() => {
|
|
@@ -12703,7 +12714,7 @@ const MarketrixWidget$1 = ({ config }) => {
|
|
|
12703
12714
|
"div",
|
|
12704
12715
|
{
|
|
12705
12716
|
className: "marketrix-widget relative",
|
|
12706
|
-
style: customStyles,
|
|
12717
|
+
style: { ...customStyles, ...isPreviewMode && { width: "100%", height: "100%" } },
|
|
12707
12718
|
"data-widget-mode": (settings == null ? void 0 : settings.widget_feature_human) ? "hybrid" : "ai",
|
|
12708
12719
|
children: [
|
|
12709
12720
|
state.isTaskRunning && /* @__PURE__ */ jsx(
|
|
@@ -13437,7 +13448,11 @@ const MarketrixWidget = ({ settings, container }) => {
|
|
|
13437
13448
|
containerIdRef.current
|
|
13438
13449
|
);
|
|
13439
13450
|
widgetContainerRef.current = widgetContainer;
|
|
13440
|
-
const config =
|
|
13451
|
+
const config = {
|
|
13452
|
+
...createConfigFromSettings(settings),
|
|
13453
|
+
isPreviewMode: true
|
|
13454
|
+
// Settings provided = preview mode
|
|
13455
|
+
};
|
|
13441
13456
|
if (rootRef.current) {
|
|
13442
13457
|
rootRef.current.unmount();
|
|
13443
13458
|
rootRef.current = null;
|