@nitrogenbuilder/connector-payload 0.1.5 → 0.1.7

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.
@@ -1,17 +1,30 @@
1
1
  "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useState, useEffect } from "react";
4
4
  export const NitrogenEditButton = ({ collection }) => {
5
5
  const [id, setId] = useState(undefined);
6
6
  const [token, setToken] = useState(undefined);
7
7
  const [hasDevelopmentUrl, setHasDevelopmentUrl] = useState(false);
8
+ const [slug, setSlug] = useState(undefined);
9
+ const [frontendUrl, setFrontendUrl] = useState(undefined);
8
10
  useEffect(() => {
9
11
  const segments = window.location.pathname.split("/").filter(Boolean);
10
- // segments: ["admin", "collections", "{collection-slug}", "{id}"]
11
- if (segments.length >= 4) {
12
- setId(segments[3]);
12
+ const docId = segments.length >= 4 ? segments[3] : undefined;
13
+ if (docId) {
14
+ setId(docId);
15
+ // Fetch the document to get its slug (for View button)
16
+ fetch(`/api/${collection}/${docId}`)
17
+ .then((res) => res.json())
18
+ .then((data) => {
19
+ if (data.slug) {
20
+ setSlug(data.slug);
21
+ }
22
+ })
23
+ .catch((err) => {
24
+ console.error("Failed to fetch document:", err);
25
+ });
13
26
  }
14
- // Fetch the connector token from NitrogenSettings global
27
+ // Fetch the connector token and URLs from NitrogenSettings global
15
28
  fetch("/api/globals/nitrogen-settings")
16
29
  .then((res) => res.json())
17
30
  .then((data) => {
@@ -21,14 +34,17 @@ export const NitrogenEditButton = ({ collection }) => {
21
34
  if (data.developmentUrl) {
22
35
  setHasDevelopmentUrl(true);
23
36
  }
37
+ const url = data.frontendUrl;
38
+ if (url) {
39
+ setFrontendUrl(url.replace(/\/$/, ""));
40
+ }
24
41
  })
25
42
  .catch((err) => {
26
43
  console.error("Failed to fetch nitrogen settings:", err);
27
44
  });
28
- }, []);
45
+ }, [collection]);
29
46
  if (!id || !token)
30
47
  return null;
31
- // Determine which query param to use based on collection type
32
48
  const param = collection === "nitrogen-templates" ? "templateId" : "pageId";
33
49
  const baseHref = `/nitrogen-editor?token=${encodeURIComponent(token)}&collection=${encodeURIComponent(collection)}&${param}=${id}`;
34
50
  const buttonStyle = {
@@ -43,11 +59,11 @@ export const NitrogenEditButton = ({ collection }) => {
43
59
  fontSize: "14px",
44
60
  fontWeight: 500,
45
61
  };
46
- if (!hasDevelopmentUrl) {
47
- return (_jsx("a", { href: baseHref, target: "_blank", rel: "noopener noreferrer", style: buttonStyle, children: "Edit with Nitrogen" }));
48
- }
49
- return (_jsxs("div", { style: { display: "flex", gap: "8px" }, children: [_jsx("a", { href: baseHref, target: "_blank", rel: "noopener noreferrer", style: buttonStyle, children: "Edit (Live)" }), _jsx("a", { href: `${baseHref}&development=true`, target: "_blank", rel: "noopener noreferrer", style: {
62
+ return (_jsxs("div", { style: { display: "flex", gap: "8px", alignItems: "center" }, children: [slug && frontendUrl && (_jsx("a", { href: `${frontendUrl}/${slug}`, target: "_blank", rel: "noopener noreferrer", style: {
50
63
  ...buttonStyle,
51
- background: "#374151",
52
- }, children: "Edit (Dev)" })] }));
64
+ background: "#10b981",
65
+ }, children: "View Page" })), hasDevelopmentUrl ? (_jsxs(_Fragment, { children: [_jsx("a", { href: baseHref, target: "_blank", rel: "noopener noreferrer", style: buttonStyle, children: "Edit (Live)" }), _jsx("a", { href: `${baseHref}&development=true`, target: "_blank", rel: "noopener noreferrer", style: {
66
+ ...buttonStyle,
67
+ background: "#374151",
68
+ }, children: "Edit (Dev)" })] })) : (_jsx("a", { href: baseHref, target: "_blank", rel: "noopener noreferrer", style: buttonStyle, children: "Edit with Nitrogen" }))] }));
53
69
  };
@@ -34,8 +34,11 @@ export const NitrogenViewButton = ({ collection }) => {
34
34
  console.error("Failed to fetch nitrogen settings:", err);
35
35
  });
36
36
  }, [collection]);
37
- if (!slug || !frontendUrl)
38
- return null;
37
+ console.log('[NitrogenViewButton] mounted', { slug, frontendUrl, collection });
38
+ if (!slug || !frontendUrl) {
39
+ console.log('[NitrogenViewButton] hidden — slug:', slug, 'frontendUrl:', frontendUrl);
40
+ return _jsx("span", { style: { color: 'red', fontSize: '12px' }, children: "View button: waiting for data..." });
41
+ }
39
42
  const href = `${frontendUrl}/${slug}`;
40
43
  return (_jsx("a", { href: href, target: "_blank", rel: "noopener noreferrer", style: {
41
44
  display: "inline-flex",
package/dist/index.js CHANGED
@@ -108,10 +108,6 @@ export const nitrogenConnectorPlugin = (options = {}) => (incomingConfig) => {
108
108
  ...edit,
109
109
  beforeDocumentControls: [
110
110
  ...beforeControls,
111
- {
112
- path: "@nitrogenbuilder/connector-payload/components/NitrogenViewButton#NitrogenViewButton",
113
- clientProps: { collection: slug },
114
- },
115
111
  {
116
112
  path: "@nitrogenbuilder/connector-payload/components/NitrogenEditButton#NitrogenEditButton",
117
113
  clientProps: { collection: slug },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nitrogenbuilder/connector-payload",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "Nitrogen page builder connector plugin for Payload CMS 3.x",
5
5
  "author": "Leonardo Dentzien <leo@torchmedia.ca>",
6
6
  "type": "module",