@nitrogenbuilder/connector-payload 0.1.21 → 0.1.23
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,13 +1,16 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsx as _jsx,
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useState, useEffect } from 'react';
|
|
4
4
|
import { Button } from '@payloadcms/ui';
|
|
5
|
-
import { nitrogenButtonGroupStyle, nitrogenEditDevButtonVars, nitrogenEditLiveButtonVars,
|
|
6
|
-
function
|
|
5
|
+
import { nitrogenButtonGroupStyle, nitrogenEditDevButtonVars, nitrogenEditLiveButtonVars, nitrogenViewButtonVars, } from './nitrogenAdminButtonStyles';
|
|
6
|
+
function isLocalAdminHost() {
|
|
7
7
|
const hostname = window.location.hostname;
|
|
8
|
-
|
|
8
|
+
return (hostname === 'localhost' ||
|
|
9
9
|
hostname === '127.0.0.1' ||
|
|
10
|
-
hostname === '[::1]';
|
|
10
|
+
hostname === '[::1]');
|
|
11
|
+
}
|
|
12
|
+
function getPreferredSiteUrl(data) {
|
|
13
|
+
const isLocalAdmin = isLocalAdminHost();
|
|
11
14
|
const preferredUrl = isLocalAdmin ? data.developmentUrl : data.frontendUrl;
|
|
12
15
|
const fallbackUrl = isLocalAdmin ? data.frontendUrl : data.developmentUrl;
|
|
13
16
|
return preferredUrl || fallbackUrl || '';
|
|
@@ -15,7 +18,6 @@ function getPreferredSiteUrl(data) {
|
|
|
15
18
|
export const NitrogenEditButtonRuntime = ({ collection }) => {
|
|
16
19
|
const [id, setId] = useState(undefined);
|
|
17
20
|
const [token, setToken] = useState(undefined);
|
|
18
|
-
const [hasDevelopmentUrl, setHasDevelopmentUrl] = useState(false);
|
|
19
21
|
const [slug, setSlug] = useState(undefined);
|
|
20
22
|
const [frontendUrl, setFrontendUrl] = useState(undefined);
|
|
21
23
|
const [instanceUrl, setInstanceUrl] = useState(undefined);
|
|
@@ -52,9 +54,6 @@ export const NitrogenEditButtonRuntime = ({ collection }) => {
|
|
|
52
54
|
if (data.connectorToken) {
|
|
53
55
|
setToken(data.connectorToken);
|
|
54
56
|
}
|
|
55
|
-
if (data.developmentUrl) {
|
|
56
|
-
setHasDevelopmentUrl(true);
|
|
57
|
-
}
|
|
58
57
|
if (data.instanceUrl) {
|
|
59
58
|
setInstanceUrl(data.instanceUrl.replace(/\/$/, ''));
|
|
60
59
|
}
|
|
@@ -71,14 +70,14 @@ export const NitrogenEditButtonRuntime = ({ collection }) => {
|
|
|
71
70
|
return null;
|
|
72
71
|
const param = collection === 'nitrogen-templates' ? 'templateId' : 'pageId';
|
|
73
72
|
const editorBase = instanceUrl ?? '';
|
|
74
|
-
const
|
|
73
|
+
const isDevelopmentMode = isLocalAdminHost();
|
|
74
|
+
const editHref = `${editorBase}/nitrogen-editor?token=${encodeURIComponent(token)}&collection=${encodeURIComponent(collection)}&${param}=${id}&authorId=${encodeURIComponent(authorId)}${isDevelopmentMode ? '&development=true' : ''}`;
|
|
75
|
+
const editButtonVars = isDevelopmentMode
|
|
76
|
+
? nitrogenEditDevButtonVars
|
|
77
|
+
: nitrogenEditLiveButtonVars;
|
|
75
78
|
return (_jsxs("div", { style: nitrogenButtonGroupStyle, children: [slug && frontendUrl && (_jsx(Button, { buttonStyle: "primary", el: "anchor", margin: false, newTab: true, url: `${frontendUrl}/${slug}`, extraButtonProps: {
|
|
76
79
|
style: nitrogenViewButtonVars,
|
|
77
|
-
}, children: "View Page" })),
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
style: nitrogenEditDevButtonVars,
|
|
81
|
-
}, children: "Edit (Dev)" })] })) : (_jsx(Button, { buttonStyle: "secondary", el: "anchor", margin: false, newTab: true, url: baseHref, extraButtonProps: {
|
|
82
|
-
style: nitrogenSecondaryButtonVars,
|
|
83
|
-
}, children: "Edit with Nitrogen" }))] }));
|
|
80
|
+
}, children: "View Page" })), _jsx(Button, { buttonStyle: "primary", el: "anchor", margin: false, newTab: true, url: editHref, extraButtonProps: {
|
|
81
|
+
style: editButtonVars,
|
|
82
|
+
}, children: "Edit with Nitrogen" })] }));
|
|
84
83
|
};
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import { jsx as _jsx,
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { getPayload } from "payload";
|
|
3
3
|
import { headers } from "next/headers";
|
|
4
4
|
import { redirect } from "next/navigation";
|
|
5
|
-
|
|
5
|
+
const EDITOR_CDN_VERSION = "0.5.29";
|
|
6
|
+
function getNitrogenApiUrl(isDevelopment) {
|
|
7
|
+
if (isDevelopment) {
|
|
8
|
+
return "/api/nitrogen/v1";
|
|
9
|
+
}
|
|
6
10
|
const configuredBase = process.env.NEXT_PUBLIC_PAYLOAD_API_URL ||
|
|
7
11
|
process.env.NEXT_PUBLIC_SERVER_URL ||
|
|
8
12
|
"";
|
|
@@ -15,6 +19,15 @@ function getNitrogenApiUrl() {
|
|
|
15
19
|
}
|
|
16
20
|
return `${normalizedBase}/api/nitrogen/v1`;
|
|
17
21
|
}
|
|
22
|
+
function getSiteUrl(settings, isDevelopment) {
|
|
23
|
+
const preferredUrl = isDevelopment
|
|
24
|
+
? settings.developmentUrl
|
|
25
|
+
: settings.frontendUrl;
|
|
26
|
+
const fallbackUrl = isDevelopment
|
|
27
|
+
? settings.frontendUrl
|
|
28
|
+
: settings.developmentUrl;
|
|
29
|
+
return preferredUrl || fallbackUrl || "";
|
|
30
|
+
}
|
|
18
31
|
/**
|
|
19
32
|
* Creates a standalone editor page that loads the Nitrogen builder.
|
|
20
33
|
*
|
|
@@ -41,9 +54,7 @@ export function createNitrogenEditorPage(config) {
|
|
|
41
54
|
slug: "nitrogen-settings",
|
|
42
55
|
}));
|
|
43
56
|
const isDevelopment = params.development === "true";
|
|
44
|
-
const siteUrl = isDevelopment
|
|
45
|
-
? settings.developmentUrl
|
|
46
|
-
: settings.frontendUrl;
|
|
57
|
+
const siteUrl = getSiteUrl(settings, isDevelopment);
|
|
47
58
|
const nitrogenConfig = settings.nitrogenConfig || {};
|
|
48
59
|
// Determine the postType for the editor's API calls
|
|
49
60
|
let postType;
|
|
@@ -61,7 +72,7 @@ export function createNitrogenEditorPage(config) {
|
|
|
61
72
|
licenseKey: settings.licenseKey || "",
|
|
62
73
|
provider: {
|
|
63
74
|
type: "payload",
|
|
64
|
-
apiUrl: getNitrogenApiUrl(),
|
|
75
|
+
apiUrl: getNitrogenApiUrl(isDevelopment),
|
|
65
76
|
collection: postType,
|
|
66
77
|
},
|
|
67
78
|
siteUrl: siteUrl || "",
|
|
@@ -70,8 +81,19 @@ export function createNitrogenEditorPage(config) {
|
|
|
70
81
|
cssInjection: nitrogenConfig.cssInjection || "",
|
|
71
82
|
};
|
|
72
83
|
const editId = params.templateId || params.pageId || "";
|
|
73
|
-
const
|
|
74
|
-
|
|
84
|
+
const isEditorDev = isDevelopment && !!settings.instanceUrl;
|
|
85
|
+
const editorOrigin = settings.instanceUrl?.replace(/\/$/, "") || "";
|
|
86
|
+
const cdnBase = `https://cdn.jsdelivr.net/npm/@nitrogenbuilder/editor@${EDITOR_CDN_VERSION}`;
|
|
87
|
+
const liveLoader = (_jsx("div", { role: "status", style: {
|
|
88
|
+
color: "#ffffff",
|
|
89
|
+
fontFamily: 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
|
|
90
|
+
fontSize: "2rem",
|
|
91
|
+
fontWeight: 600,
|
|
92
|
+
letterSpacing: "0.08em",
|
|
93
|
+
textTransform: "uppercase",
|
|
94
|
+
animation: "nitrogen-loader-pulse 3s ease-in-out infinite",
|
|
95
|
+
}, children: "Nitrogen" }));
|
|
96
|
+
return (_jsxs(_Fragment, { children: [!isEditorDev && (_jsxs(_Fragment, { children: [_jsx("link", { rel: "preconnect", href: "https://cdn.jsdelivr.net" }), _jsx("link", { rel: "preconnect", href: "https://fonts.gstatic.com", crossOrigin: "" })] })), isEditorDev ? (_jsxs(_Fragment, { children: [_jsx("link", { rel: "stylesheet", crossOrigin: "", href: `${editorOrigin}/fa620pro/css/all.css` }), _jsx("link", { rel: "stylesheet", crossOrigin: "", href: `${editorOrigin}/fa620pro/css/sharp-solid.css` }), _jsx("link", { rel: "stylesheet", crossOrigin: "", href: `${editorOrigin}/src/index.scss` })] })) : (_jsx(_Fragment, { children: _jsx("link", { rel: "stylesheet", crossOrigin: "", href: `${cdnBase}/index.css` }) })), _jsx("script", { dangerouslySetInnerHTML: {
|
|
75
97
|
__html: [
|
|
76
98
|
`window.nitrogenConfig = ${JSON.stringify(builderConfig)};`,
|
|
77
99
|
`window.nitrogenEditId = "${editId}";`,
|
|
@@ -86,12 +108,14 @@ export function createNitrogenEditorPage(config) {
|
|
|
86
108
|
alignItems: "center",
|
|
87
109
|
justifyContent: "center",
|
|
88
110
|
backgroundColor: "#0F1214",
|
|
89
|
-
}, children: _jsx("img", { src: `${
|
|
111
|
+
}, children: isEditorDev ? (_jsx("img", { src: `${editorOrigin}/src/components/logo-white.svg`, alt: "Loading\u2026", style: {
|
|
90
112
|
width: "24rem",
|
|
91
113
|
maxWidth: "100%",
|
|
92
114
|
animation: "nitrogen-loader-pulse 3s ease-in-out infinite",
|
|
93
|
-
} }) }), _jsx("style", { dangerouslySetInnerHTML: {
|
|
115
|
+
} })) : (liveLoader) }), _jsx("style", { dangerouslySetInnerHTML: {
|
|
94
116
|
__html: `@keyframes nitrogen-loader-pulse{0%{transform:scale(1);opacity:0}50%{opacity:1}100%{transform:scale(1.05);opacity:0}}`,
|
|
95
|
-
} })] }), _jsx("script", { type: "module",
|
|
117
|
+
} })] }), isEditorDev ? (_jsxs(_Fragment, { children: [_jsx("script", { type: "module", dangerouslySetInnerHTML: {
|
|
118
|
+
__html: `import RefreshRuntime from "${editorOrigin}/@react-refresh";RefreshRuntime.injectIntoGlobalHook(window);window.$RefreshReg$ = () => {};window.$RefreshSig$ = () => (type) => type;window.__vite_plugin_react_preamble_installed__ = true;`,
|
|
119
|
+
} }), _jsx("script", { type: "module", src: `${editorOrigin}/@vite/client` }), _jsx("script", { type: "module", crossOrigin: "", src: `${editorOrigin}/src/main.tsx` })] })) : (_jsx("script", { type: "module", crossOrigin: "", src: `${cdnBase}/index.js` }))] }));
|
|
96
120
|
};
|
|
97
121
|
}
|
package/package.json
CHANGED