@xyne/workflow-ui 1.3.36 → 1.3.37
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.
- package/dist/components/workflows/WorkflowApp.d.ts.map +1 -1
- package/dist/components/workflows/WorkflowApp.js +3 -19
- package/dist/components/workflows/WorkflowApp.js.map +1 -1
- package/dist/live/use-remote-adoption.d.ts +34 -0
- package/dist/live/use-remote-adoption.d.ts.map +1 -0
- package/dist/live/use-remote-adoption.js +56 -0
- package/dist/live/use-remote-adoption.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowApp.d.ts","sourceRoot":"","sources":["../../../src/components/workflows/WorkflowApp.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAUrE,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B;+DAC2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACpC;wFACoF;IACpF,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/E,eAAe,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC9C,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,kFAAkF;IAClF,aAAa,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,2EAA2E;IAC3E,YAAY,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsCD,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,MAAM,EACN,UAAU,EACV,eAAe,EACf,OAAO,EACP,aAAa,EACb,YAAY,EACZ,SAAS,GACV,EAAE,gBAAgB,+
|
|
1
|
+
{"version":3,"file":"WorkflowApp.d.ts","sourceRoot":"","sources":["../../../src/components/workflows/WorkflowApp.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAUrE,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B;+DAC2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACpC;wFACoF;IACpF,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/E,eAAe,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC9C,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,kFAAkF;IAClF,aAAa,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,2EAA2E;IAC3E,YAAY,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsCD,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,MAAM,EACN,UAAU,EACV,eAAe,EACf,OAAO,EACP,aAAa,EACb,YAAY,EACZ,SAAS,GACV,EAAE,gBAAgB,+BAiPlB"}
|
|
@@ -4,7 +4,7 @@ import { ArrowLeft } from 'lucide-react';
|
|
|
4
4
|
import { useQueryClient } from '@tanstack/react-query';
|
|
5
5
|
import { useWorkflowClient } from '../../hooks/use-workflow-client.js';
|
|
6
6
|
import { useWorkflowDetail, wfKeys } from '../../hooks/queries.js';
|
|
7
|
-
import {
|
|
7
|
+
import { useRemoteAdoption } from '../../live/use-remote-adoption.js';
|
|
8
8
|
import { WorkflowHome } from './WorkflowHome.js';
|
|
9
9
|
import {} from './WorkflowBrowser.js';
|
|
10
10
|
import { WorkflowDashboard } from '../dashboard/WorkflowDashboard.js';
|
|
@@ -80,25 +80,9 @@ export function WorkflowApp({ path, search, onNavigate, aiBuilderClient, onToast
|
|
|
80
80
|
//
|
|
81
81
|
// Either way the cache is invalidated, so the fresh copy is ready the moment
|
|
82
82
|
// the user asks for it.
|
|
83
|
-
const [builderEpoch, setBuilderEpoch] = useState(0);
|
|
84
|
-
const [staleRemote, setStaleRemote] = useState(false);
|
|
85
83
|
const builderDirty = useRef(false);
|
|
86
|
-
|
|
87
|
-
if (!workflowId)
|
|
88
|
-
return;
|
|
89
|
-
void queryClient.invalidateQueries({ queryKey: wfKeys.workflow(workflowId) });
|
|
90
|
-
if (builderDirty.current)
|
|
91
|
-
setStaleRemote(true);
|
|
92
|
-
else
|
|
93
|
-
setBuilderEpoch((epoch) => epoch + 1);
|
|
94
|
-
});
|
|
95
|
-
const adoptRemote = useCallback(() => {
|
|
96
|
-
setStaleRemote(false);
|
|
97
|
-
setBuilderEpoch((epoch) => epoch + 1);
|
|
98
|
-
}, []);
|
|
99
|
-
// A new workflow starts with a clean slate in both respects.
|
|
84
|
+
const { epoch: builderEpoch, stale: staleRemote, adopt: adoptRemote, clearStale, } = useRemoteAdoption(workflowId, () => builderDirty.current);
|
|
100
85
|
useEffect(() => {
|
|
101
|
-
setStaleRemote(false);
|
|
102
86
|
builderDirty.current = false;
|
|
103
87
|
}, [workflowId]);
|
|
104
88
|
const goTab = useCallback((tab) => onNavigate(tabToPath(tab)), [onNavigate]);
|
|
@@ -142,7 +126,7 @@ export function WorkflowApp({ path, search, onNavigate, aiBuilderClient, onToast
|
|
|
142
126
|
// Saving clears the dirty flag, and with it any warning that was
|
|
143
127
|
// only waiting on unsaved work.
|
|
144
128
|
if (!dirty)
|
|
145
|
-
|
|
129
|
+
clearStale();
|
|
146
130
|
}, ...(onSelectStep ? { onSelectStep } : {}), ...(aiBuilderClient ? { aiBuilderClient } : {}), ...(detail.permittedActions
|
|
147
131
|
? { permittedActions: detail.permittedActions }
|
|
148
132
|
: {}) }, `${route.workflowId}:${String(builderEpoch)}`) })] })) : (_jsx("div", { className: "flex h-full items-center justify-center text-[13px] text-[var(--wui-fg-muted)]", children: "Loading\u2026" }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowApp.js","sourceRoot":"","sources":["../../../src/components/workflows/WorkflowApp.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,WAAW,EACX,SAAS,EACT,MAAM,EACN,QAAQ,GAET,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAuB,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"WorkflowApp.js","sourceRoot":"","sources":["../../../src/components/workflows/WorkflowApp.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface RemoteAdoption {
|
|
2
|
+
/**
|
|
3
|
+
* Feed into an editor's `key`. It increments only when a change made elsewhere
|
|
4
|
+
* should replace what is on screen — and only once the new copy has actually
|
|
5
|
+
* been read.
|
|
6
|
+
*/
|
|
7
|
+
epoch: number;
|
|
8
|
+
/** A change landed that was deliberately not applied, because of local edits. */
|
|
9
|
+
stale: boolean;
|
|
10
|
+
/** Apply the pending change, discarding local edits. */
|
|
11
|
+
adopt: () => void;
|
|
12
|
+
/** Forget a pending change — call when the local edits are gone. */
|
|
13
|
+
clearStale: () => void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Decides when a workflow changed elsewhere should replace what the user is
|
|
17
|
+
* looking at.
|
|
18
|
+
*
|
|
19
|
+
* Two rules, and both are easy to get wrong:
|
|
20
|
+
*
|
|
21
|
+
* 1. **Never remount before the new copy has been read.** `invalidateQueries`
|
|
22
|
+
* resolves when the refetch settles; bumping the epoch any earlier remounts
|
|
23
|
+
* the editor against the copy we already had. Editors here seed from their
|
|
24
|
+
* initial config and ignore it afterwards — deliberately, so a background
|
|
25
|
+
* refetch cannot overwrite someone's typing — so an early remount is not
|
|
26
|
+
* merely premature, it is permanent: the fresh config arrives moments later
|
|
27
|
+
* and has nowhere to go. The event looks delivered, the network shows the new
|
|
28
|
+
* data, and the screen never changes.
|
|
29
|
+
*
|
|
30
|
+
* 2. **Never remount over unsaved work.** Report it instead and let the user
|
|
31
|
+
* choose, via {@link RemoteAdoption.adopt}.
|
|
32
|
+
*/
|
|
33
|
+
export declare function useRemoteAdoption(workflowId: string | undefined, isDirty: () => boolean): RemoteAdoption;
|
|
34
|
+
//# sourceMappingURL=use-remote-adoption.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-remote-adoption.d.ts","sourceRoot":"","sources":["../../src/live/use-remote-adoption.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,KAAK,EAAE,OAAO,CAAC;IACf,wDAAwD;IACxD,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,oEAAoE;IACpE,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,MAAM,OAAO,GACrB,cAAc,CAkChB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
2
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
3
|
+
import { wfKeys } from '../hooks/queries.js';
|
|
4
|
+
import { useWorkflowChanges } from './use-live-workflow.js';
|
|
5
|
+
/**
|
|
6
|
+
* Decides when a workflow changed elsewhere should replace what the user is
|
|
7
|
+
* looking at.
|
|
8
|
+
*
|
|
9
|
+
* Two rules, and both are easy to get wrong:
|
|
10
|
+
*
|
|
11
|
+
* 1. **Never remount before the new copy has been read.** `invalidateQueries`
|
|
12
|
+
* resolves when the refetch settles; bumping the epoch any earlier remounts
|
|
13
|
+
* the editor against the copy we already had. Editors here seed from their
|
|
14
|
+
* initial config and ignore it afterwards — deliberately, so a background
|
|
15
|
+
* refetch cannot overwrite someone's typing — so an early remount is not
|
|
16
|
+
* merely premature, it is permanent: the fresh config arrives moments later
|
|
17
|
+
* and has nowhere to go. The event looks delivered, the network shows the new
|
|
18
|
+
* data, and the screen never changes.
|
|
19
|
+
*
|
|
20
|
+
* 2. **Never remount over unsaved work.** Report it instead and let the user
|
|
21
|
+
* choose, via {@link RemoteAdoption.adopt}.
|
|
22
|
+
*/
|
|
23
|
+
export function useRemoteAdoption(workflowId, isDirty) {
|
|
24
|
+
const queryClient = useQueryClient();
|
|
25
|
+
const [epoch, setEpoch] = useState(0);
|
|
26
|
+
const [stale, setStale] = useState(false);
|
|
27
|
+
useWorkflowChanges(workflowId, () => {
|
|
28
|
+
if (!workflowId)
|
|
29
|
+
return;
|
|
30
|
+
void queryClient
|
|
31
|
+
.invalidateQueries({ queryKey: wfKeys.workflow(workflowId) })
|
|
32
|
+
.then(() => {
|
|
33
|
+
if (isDirty())
|
|
34
|
+
setStale(true);
|
|
35
|
+
else
|
|
36
|
+
setEpoch((previous) => previous + 1);
|
|
37
|
+
})
|
|
38
|
+
.catch(() => {
|
|
39
|
+
// The refetch failed, so the cache still holds the old copy and there is
|
|
40
|
+
// nothing new to show. The next notification, or a reconnect, retries.
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
const adopt = useCallback(() => {
|
|
44
|
+
setStale(false);
|
|
45
|
+
setEpoch((previous) => previous + 1);
|
|
46
|
+
}, []);
|
|
47
|
+
const clearStale = useCallback(() => {
|
|
48
|
+
setStale(false);
|
|
49
|
+
}, []);
|
|
50
|
+
// A different workflow starts with nothing pending.
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
setStale(false);
|
|
53
|
+
}, [workflowId]);
|
|
54
|
+
return { epoch, stale, adopt, clearStale };
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=use-remote-adoption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-remote-adoption.js","sourceRoot":"","sources":["../../src/live/use-remote-adoption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAiB5D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAA8B,EAC9B,OAAsB;IAEtB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1C,kBAAkB,CAAC,UAAU,EAAE,GAAG,EAAE;QAClC,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,KAAK,WAAW;aACb,iBAAiB,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;aAC5D,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,OAAO,EAAE;gBAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;;gBACzB,QAAQ,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,yEAAyE;YACzE,uEAAuE;QACzE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChB,QAAQ,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,oDAAoD;IACpD,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC7C,CAAC"}
|