Skip to content

Commit 6ad2d69

Browse files
committed
Add flag to enable extra SSR functionality
1 parent 10e45ba commit 6ad2d69

File tree

3 files changed

+22
-13
lines changed

3 files changed

+22
-13
lines changed

src/components/Space.tsx

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { CenterType, ResizeHandlePlacement, AnchorType, Type } from "../core-types";
2-
import { useSpace, ParentContext, LayerContext, DOMRectContext, IReactSpaceInnerProps, useEffectOnce } from "../core-react";
2+
import { useSpace, ParentContext, LayerContext, DOMRectContext, IReactSpaceInnerProps, useEffectOnce, SSR_SUPPORT_ENABLED } from "../core-react";
33
import * as React from "react";
44
import { Centered } from "./Centered";
55
import { CenteredVertically } from "./CenteredVertically";
@@ -62,16 +62,18 @@ const SpaceInner: React.FC<IReactSpaceInnerProps & { wrapperInstance: Space }> =
6262
useEffectOnce(() => {
6363
space.element = elementRef.current!;
6464

65-
if (space.element.getAttribute("data-ssr") === "1") {
66-
const preRenderedStyle = space.element.children[0];
67-
if (preRenderedStyle) {
68-
const newStyle = document.createElement("style");
69-
newStyle.id = `style_${space.id}`;
70-
newStyle.innerHTML = preRenderedStyle.innerHTML;
71-
document.head.appendChild(newStyle);
65+
if (SSR_SUPPORT_ENABLED) {
66+
if (space.element.getAttribute("data-ssr") === "1") {
67+
const preRenderedStyle = space.element.children[0];
68+
if (preRenderedStyle) {
69+
const newStyle = document.createElement("style");
70+
newStyle.id = `style_${space.id}`;
71+
newStyle.innerHTML = preRenderedStyle.innerHTML;
72+
document.head.appendChild(newStyle);
73+
}
74+
space.element.removeAttribute("data-ssr");
75+
updateStyleDefinition(space);
7276
}
73-
space.element.removeAttribute("data-ssr");
74-
updateStyleDefinition(space);
7577
}
7678
});
7779

@@ -110,7 +112,9 @@ const SpaceInner: React.FC<IReactSpaceInnerProps & { wrapperInstance: Space }> =
110112
...events,
111113
} as any;
112114

113-
outerProps["data-ssr"] = "1";
115+
if (SSR_SUPPORT_ENABLED) {
116+
outerProps["data-ssr"] = "1";
117+
}
114118

115119
return (
116120
<>
@@ -119,7 +123,7 @@ const SpaceInner: React.FC<IReactSpaceInnerProps & { wrapperInstance: Space }> =
119123
props.as || "div",
120124
outerProps,
121125
<>
122-
{space.ssrStyle && <style className="ssr">{space.ssrStyle}</style>}
126+
{SSR_SUPPORT_ENABLED && space.ssrStyle && <style className="ssr">{space.ssrStyle}</style>}
123127
<div className={innerClasses.join(" ")} style={innerStyle}>
124128
<ParentContext.Provider value={space.id}>
125129
<LayerContext.Provider value={undefined}>

src/core-react.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,3 +275,8 @@ export function useCurrentSpace() {
275275
forceUpdate: onForceUpdate,
276276
} as ISpaceContext;
277277
}
278+
279+
export let SSR_SUPPORT_ENABLED = false;
280+
export function enabledSsrSupport() {
281+
SSR_SUPPORT_ENABLED = true;
282+
}

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ export type {
2222
ResizeTouchEvent
2323
}
2424

25-
export { useCurrentSpace } from "./core-react";
25+
export { useCurrentSpace, enabledSsrSupport } from "./core-react";

0 commit comments

Comments
 (0)