@makeswift/runtime 0.23.12-canary.0 → 0.23.12-canary.1

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.
@@ -37,7 +37,7 @@ async function handler(...args) {
37
37
  const supportsDraftMode = (0, import_ts_pattern.match)(args).with(routeHandlerPattern, () => true).with(apiRoutePattern, () => false).exhaustive();
38
38
  const supportsWebhook = (0, import_ts_pattern.match)(args).with(routeHandlerPattern, () => true).with(apiRoutePattern, () => false).exhaustive();
39
39
  const body = {
40
- version: "0.23.12-canary.0",
40
+ version: "0.23.12-canary.1",
41
41
  previewMode: supportsPreviewMode,
42
42
  draftMode: supportsDraftMode,
43
43
  interactionMode: true,
@@ -25,15 +25,22 @@ var import_react = require("react");
25
25
  var import_use_dispatch = require("./use-dispatch");
26
26
  var import_use_is_in_builder = require("./use-is-in-builder");
27
27
  var import_actions = require("../../../state/actions");
28
+ var import_is_server = require("../../../utils/is-server");
28
29
  function useRegisterDocument(document) {
29
30
  const isInBuilder = (0, import_use_is_in_builder.useIsInBuilder)();
30
31
  const dispatch = (0, import_use_dispatch.useDispatch)();
31
- (0, import_react.useEffect)(() => dispatch((0, import_actions.registerDocumentsEffect)([document])), [document]);
32
+ const documentArray = (0, import_react.useMemo)(() => [document], [document]);
33
+ if ((0, import_is_server.isServer)()) {
34
+ dispatch((0, import_actions.registerDocumentsEffect)(documentArray));
35
+ }
36
+ (0, import_react.useLayoutEffect)(() => {
37
+ return dispatch((0, import_actions.registerDocumentsEffect)(documentArray));
38
+ }, [dispatch, documentArray]);
32
39
  (0, import_react.useEffect)(() => {
33
40
  if (!isInBuilder)
34
41
  return;
35
- return dispatch((0, import_actions.registerBuilderDocumentsEffect)([document]));
36
- }, [isInBuilder, document]);
42
+ return dispatch((0, import_actions.registerBuilderDocumentsEffect)(documentArray));
43
+ }, [isInBuilder, documentArray]);
37
44
  }
38
45
  // Annotate the CommonJS export names for ESM import in node:
39
46
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-register-document.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { type Document } from '../../../state/react-page'\nimport { useDispatch } from './use-dispatch'\nimport { useIsInBuilder } from './use-is-in-builder'\nimport { registerBuilderDocumentsEffect, registerDocumentsEffect } from '../../../state/actions'\n\n/**\n * @param document Document to register\n */\nexport function useRegisterDocument(document: Document): void {\n const isInBuilder = useIsInBuilder()\n const dispatch = useDispatch()\n\n useEffect(() => dispatch(registerDocumentsEffect([document])), [document])\n\n // TODO: Decide whether to do this via middleware or via explicit action (like\n // what we're doing below)\n useEffect(() => {\n if (!isInBuilder) return\n return dispatch(registerBuilderDocumentsEffect([document]))\n }, [isInBuilder, document])\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;AAE1B,0BAA4B;AAC5B,+BAA+B;AAC/B,qBAAwE;AAKjE,SAAS,oBAAoB,UAA0B;AAC5D,QAAM,kBAAc,yCAAe;AACnC,QAAM,eAAW,iCAAY;AAE7B,8BAAU,MAAM,aAAS,wCAAwB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;AAIzE,8BAAU,MAAM;AACd,QAAI,CAAC;AAAa;AAClB,WAAO,aAAS,+CAA+B,CAAC,QAAQ,CAAC,CAAC;AAAA,EAC5D,GAAG,CAAC,aAAa,QAAQ,CAAC;AAC5B;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-register-document.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useMemo } from 'react'\nimport { type Document } from '../../../state/react-page'\nimport { useDispatch } from './use-dispatch'\nimport { useIsInBuilder } from './use-is-in-builder'\nimport { registerBuilderDocumentsEffect, registerDocumentsEffect } from '../../../state/actions'\nimport { isServer } from '../../../utils/is-server'\n\n/**\n * @param document Document to register\n */\nexport function useRegisterDocument(document: Document): void {\n const isInBuilder = useIsInBuilder()\n const dispatch = useDispatch()\n\n const documentArray = useMemo(() => [document], [document])\n\n if (isServer()) {\n dispatch(registerDocumentsEffect(documentArray))\n }\n\n /*\n Layout effect is to ensure that the document registration happens prior to the\n attempted creation/registration of prop controllers in child components.\n */\n useLayoutEffect(() => {\n return dispatch(registerDocumentsEffect(documentArray))\n }, [dispatch, documentArray])\n\n // TODO: Decide whether to do this via middleware or via explicit action (like\n // what we're doing below)\n useEffect(() => {\n if (!isInBuilder) return\n return dispatch(registerBuilderDocumentsEffect(documentArray))\n }, [isInBuilder, documentArray])\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAoD;AAEpD,0BAA4B;AAC5B,+BAA+B;AAC/B,qBAAwE;AACxE,uBAAyB;AAKlB,SAAS,oBAAoB,UAA0B;AAC5D,QAAM,kBAAc,yCAAe;AACnC,QAAM,eAAW,iCAAY;AAE7B,QAAM,oBAAgB,sBAAQ,MAAM,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC;AAE1D,UAAI,2BAAS,GAAG;AACd,iBAAS,wCAAwB,aAAa,CAAC;AAAA,EACjD;AAMA,oCAAgB,MAAM;AACpB,WAAO,aAAS,wCAAwB,aAAa,CAAC;AAAA,EACxD,GAAG,CAAC,UAAU,aAAa,CAAC;AAI5B,8BAAU,MAAM;AACd,QAAI,CAAC;AAAa;AAClB,WAAO,aAAS,+CAA+B,aAAa,CAAC;AAAA,EAC/D,GAAG,CAAC,aAAa,aAAa,CAAC;AACjC;","names":[]}
@@ -14,7 +14,7 @@ async function handler(...args) {
14
14
  const supportsDraftMode = match(args).with(routeHandlerPattern, () => true).with(apiRoutePattern, () => false).exhaustive();
15
15
  const supportsWebhook = match(args).with(routeHandlerPattern, () => true).with(apiRoutePattern, () => false).exhaustive();
16
16
  const body = {
17
- version: "0.23.12-canary.0",
17
+ version: "0.23.12-canary.1",
18
18
  previewMode: supportsPreviewMode,
19
19
  draftMode: supportsDraftMode,
20
20
  interactionMode: true,
@@ -1,16 +1,23 @@
1
- import { useEffect } from "react";
1
+ import { useEffect, useLayoutEffect, useMemo } from "react";
2
2
  import { useDispatch } from "./use-dispatch";
3
3
  import { useIsInBuilder } from "./use-is-in-builder";
4
4
  import { registerBuilderDocumentsEffect, registerDocumentsEffect } from "../../../state/actions";
5
+ import { isServer } from "../../../utils/is-server";
5
6
  function useRegisterDocument(document) {
6
7
  const isInBuilder = useIsInBuilder();
7
8
  const dispatch = useDispatch();
8
- useEffect(() => dispatch(registerDocumentsEffect([document])), [document]);
9
+ const documentArray = useMemo(() => [document], [document]);
10
+ if (isServer()) {
11
+ dispatch(registerDocumentsEffect(documentArray));
12
+ }
13
+ useLayoutEffect(() => {
14
+ return dispatch(registerDocumentsEffect(documentArray));
15
+ }, [dispatch, documentArray]);
9
16
  useEffect(() => {
10
17
  if (!isInBuilder)
11
18
  return;
12
- return dispatch(registerBuilderDocumentsEffect([document]));
13
- }, [isInBuilder, document]);
19
+ return dispatch(registerBuilderDocumentsEffect(documentArray));
20
+ }, [isInBuilder, documentArray]);
14
21
  }
15
22
  export {
16
23
  useRegisterDocument
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-register-document.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { type Document } from '../../../state/react-page'\nimport { useDispatch } from './use-dispatch'\nimport { useIsInBuilder } from './use-is-in-builder'\nimport { registerBuilderDocumentsEffect, registerDocumentsEffect } from '../../../state/actions'\n\n/**\n * @param document Document to register\n */\nexport function useRegisterDocument(document: Document): void {\n const isInBuilder = useIsInBuilder()\n const dispatch = useDispatch()\n\n useEffect(() => dispatch(registerDocumentsEffect([document])), [document])\n\n // TODO: Decide whether to do this via middleware or via explicit action (like\n // what we're doing below)\n useEffect(() => {\n if (!isInBuilder) return\n return dispatch(registerBuilderDocumentsEffect([document]))\n }, [isInBuilder, document])\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAE1B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,gCAAgC,+BAA+B;AAKjE,SAAS,oBAAoB,UAA0B;AAC5D,QAAM,cAAc,eAAe;AACnC,QAAM,WAAW,YAAY;AAE7B,YAAU,MAAM,SAAS,wBAAwB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;AAIzE,YAAU,MAAM;AACd,QAAI,CAAC;AAAa;AAClB,WAAO,SAAS,+BAA+B,CAAC,QAAQ,CAAC,CAAC;AAAA,EAC5D,GAAG,CAAC,aAAa,QAAQ,CAAC;AAC5B;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-register-document.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useMemo } from 'react'\nimport { type Document } from '../../../state/react-page'\nimport { useDispatch } from './use-dispatch'\nimport { useIsInBuilder } from './use-is-in-builder'\nimport { registerBuilderDocumentsEffect, registerDocumentsEffect } from '../../../state/actions'\nimport { isServer } from '../../../utils/is-server'\n\n/**\n * @param document Document to register\n */\nexport function useRegisterDocument(document: Document): void {\n const isInBuilder = useIsInBuilder()\n const dispatch = useDispatch()\n\n const documentArray = useMemo(() => [document], [document])\n\n if (isServer()) {\n dispatch(registerDocumentsEffect(documentArray))\n }\n\n /*\n Layout effect is to ensure that the document registration happens prior to the\n attempted creation/registration of prop controllers in child components.\n */\n useLayoutEffect(() => {\n return dispatch(registerDocumentsEffect(documentArray))\n }, [dispatch, documentArray])\n\n // TODO: Decide whether to do this via middleware or via explicit action (like\n // what we're doing below)\n useEffect(() => {\n if (!isInBuilder) return\n return dispatch(registerBuilderDocumentsEffect(documentArray))\n }, [isInBuilder, documentArray])\n}\n"],"mappings":"AAAA,SAAS,WAAW,iBAAiB,eAAe;AAEpD,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,gCAAgC,+BAA+B;AACxE,SAAS,gBAAgB;AAKlB,SAAS,oBAAoB,UAA0B;AAC5D,QAAM,cAAc,eAAe;AACnC,QAAM,WAAW,YAAY;AAE7B,QAAM,gBAAgB,QAAQ,MAAM,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC;AAE1D,MAAI,SAAS,GAAG;AACd,aAAS,wBAAwB,aAAa,CAAC;AAAA,EACjD;AAMA,kBAAgB,MAAM;AACpB,WAAO,SAAS,wBAAwB,aAAa,CAAC;AAAA,EACxD,GAAG,CAAC,UAAU,aAAa,CAAC;AAI5B,YAAU,MAAM;AACd,QAAI,CAAC;AAAa;AAClB,WAAO,SAAS,+BAA+B,aAAa,CAAC;AAAA,EAC/D,GAAG,CAAC,aAAa,aAAa,CAAC;AACjC;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-register-document.d.ts","sourceRoot":"","sources":["../../../../../src/runtimes/react/hooks/use-register-document.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAKzD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAY5D"}
1
+ {"version":3,"file":"use-register-document.d.ts","sourceRoot":"","sources":["../../../../../src/runtimes/react/hooks/use-register-document.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAMzD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAwB5D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@makeswift/runtime",
3
- "version": "0.23.12-canary.0",
3
+ "version": "0.23.12-canary.1",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "dist",
@@ -164,8 +164,8 @@
164
164
  "uuid": "^9.0.0",
165
165
  "zod": "^3.21.4",
166
166
  "@makeswift/controls": "0.1.8",
167
- "@makeswift/prop-controllers": "0.4.1",
168
- "@makeswift/next-plugin": "0.3.1"
167
+ "@makeswift/next-plugin": "0.3.1",
168
+ "@makeswift/prop-controllers": "0.4.1"
169
169
  },
170
170
  "devDependencies": {
171
171
  "@emotion/jest": "^11.11.0",