Skip to content

Commit 1522222

Browse files
committed
WiP netlify deploy
1 parent a465616 commit 1522222

File tree

4 files changed

+103
-1
lines changed

4 files changed

+103
-1
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
export let netlifyAccessToken = '';
2+
export let netlifySiteId = '';
3+
export const netlifyTokenHandler = () => {
4+
const siteId = document.cookie
5+
.split('; ')
6+
.find((row) => row.startsWith('netlify_site_id='))
7+
?.split('=')[1];
8+
if (siteId) {
9+
netlifySiteId = siteId;
10+
}
11+
12+
const accessToken = document.cookie
13+
.split('; ')
14+
.find((row) => row.startsWith('netlify_access_token='))
15+
?.split('=')[1];
16+
if (accessToken) {
17+
netlifyAccessToken = accessToken;
18+
} else {
19+
const urlParams = new URLSearchParams(window.location.search);
20+
const tokenFromUrl = urlParams.get('netlify_access_token');
21+
if (tokenFromUrl) {
22+
netlifyAccessToken = tokenFromUrl;
23+
document.cookie = `netlify_access_token=${tokenFromUrl}; path=/; max-age=31536000; secure; samesite=strict`;
24+
}
25+
}
26+
};
27+
28+
export const setNetlifySiteId = (siteId: string) => {
29+
netlifySiteId = siteId;
30+
document.cookie = `netlify_site_id=${siteId}; path=/; max-age=31536000; secure; samesite=strict`;
31+
};

apps/vps-web/src/main.tsx

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@ import { pythonPage } from './app/pages/python';
66
import { examplePage } from './app/pages/example';
77
import {
88
BaseNodeInfo,
9+
createJSXElement,
910
ElementNodeMap,
1011
Flow,
1112
IComputeResult,
1213
IConnectionNodeComponent,
1314
IFlowCanvasBase,
1415
IRectNodeComponent,
16+
navBarButton,
1517
setupCustomEditor,
1618
} from '@devhelpr/visual-programming-system';
1719
import * as monaco from 'monaco-editor';
@@ -29,10 +31,18 @@ import {
2931
OffscreenCanvasNodes,
3032
} from './app/ai-flow-engine-worker/ai-flow-engine-worker-message';
3133
import { CanvasNode } from './app/custom-nodes/classes/canvas-node-class';
34+
import {
35+
netlifyAccessToken,
36+
netlifySiteId,
37+
netlifyTokenHandler,
38+
setNetlifySiteId,
39+
} from './app/netlify-deployment-wip/token-handler';
3240

3341
/* @ts-expect-error:will-fix-later */
3442
const API_URL_ROOT = import.meta.env.VITE_API_URL;
3543

44+
netlifyTokenHandler();
45+
3646
setupCustomEditor(() => {
3747
let editorInstance: monaco.editor.IStandaloneCodeEditor | null = null;
3848
const resizeObserver: ResizeObserver | undefined = undefined;
@@ -328,6 +338,55 @@ if (url.pathname === '/run-flow') {
328338
node.nodeInfo.updateVisual(data);
329339
}
330340
},
341+
},
342+
undefined,
343+
() => {
344+
if (!url.searchParams.get('dev')) {
345+
return null;
346+
}
347+
const deployWithNetlify = () => {
348+
//const redirectUrl = `https://localhost:8787/netlify/code-flow-canvas`;
349+
if (netlifyAccessToken) {
350+
const postUrl =
351+
'https://form-generator-worker.maikel-f16.workers.dev/netlify/deploy-code-flow-canvas';
352+
fetch(postUrl, {
353+
method: 'POST',
354+
headers: {
355+
'Content-Type': 'application/json',
356+
},
357+
body: JSON.stringify({
358+
netlifyAccessToken: netlifyAccessToken,
359+
netlifySiteId: netlifySiteId,
360+
}),
361+
})
362+
.then((response) => response.json())
363+
.then((data) => {
364+
console.log('Deployment response:', data);
365+
if (data.success) {
366+
alert('Deployment successful!');
367+
if (data.siteId) {
368+
setNetlifySiteId(data.siteId);
369+
}
370+
} else {
371+
alert('Deployment failed: ' + data.message);
372+
}
373+
})
374+
.catch((error) => {
375+
console.error('Error during deployment:', error);
376+
alert('Deployment failed: ' + error.message);
377+
});
378+
} else {
379+
const redirectUrl =
380+
'https://form-generator-worker.maikel-f16.workers.dev/netlify/code-flow-canvas';
381+
382+
fetch(redirectUrl);
383+
}
384+
};
385+
return (
386+
<button class={navBarButton} click={deployWithNetlify}>
387+
Deploy
388+
</button>
389+
);
331390
}
332391
); //, 100, 32);
333392
});

libs/app-canvas/src/app/flow-app.element.tsx

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,8 @@ export class FlowAppElement extends AppElement<NodeInfo, FlowEngine> {
298298
hideFlowPresets?: boolean,
299299
theme?: Theme,
300300
flowEngine?: FlowEngine,
301-
onSetCanvasApp?: (canvasApp: IFlowCanvasBase<NodeInfo>) => void
301+
onSetCanvasApp?: (canvasApp: IFlowCanvasBase<NodeInfo>) => void,
302+
customMenuButtons?: () => JSX.Element | null
302303
) {
303304
super(
304305
appRootSelector,
@@ -941,6 +942,16 @@ export class FlowAppElement extends AppElement<NodeInfo, FlowEngine> {
941942
'Create composition'
942943
);
943944

945+
if (customMenuButtons) {
946+
const element = customMenuButtons();
947+
if (element) {
948+
renderElement(
949+
element,
950+
menubarElement!.domElement as HTMLElement
951+
);
952+
}
953+
}
954+
944955
// renderElement(
945956
// <button
946957
// class={`${navBarIconButton}`}

libs/visual-programming-system/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,4 @@ export * from './interfaces/run-counter';
6262
export * from './utils/pointer-pos';
6363
export * from './components/events/pointer-events';
6464
export * from './interfaces/layout-properties';
65+
export * from './consts/classes';

0 commit comments

Comments
 (0)