059c5586a4
perf(ui): ignore all no-op node and edge changes
2024-05-19 20:14:01 +10:00
9ed5698aa8
fix(ui): do not remove exposed fields when updating workflows
2024-05-19 20:14:01 +10:00
0b5696c5d4
feat(ui): remove nodeExclusivelySelected action
2024-05-19 20:14:01 +10:00
a51142674a
tidy(ui): more succinct syntax for edge and node updates
2024-05-19 20:14:01 +10:00
b8b671c0db
feat(ui): remove selectionDeleted action
2024-05-19 20:14:01 +10:00
7cceafe0dd
feat(ui): remove selectionPasted action
2024-05-19 20:14:01 +10:00
cbe32b647a
feat(ui): remove selectedAll action
2024-05-19 20:14:01 +10:00
9a8e0842bb
feat(ui): remove nodeReplaced action
2024-05-19 20:14:01 +10:00
1d7671298f
fix(ui): group edge selection actions
2024-05-19 20:14:01 +10:00
e38d75c3dc
feat(ui): get rid of nodeAdded
2024-05-19 20:14:01 +10:00
21fab9785a
feat(ui): tweak edge styling
2024-05-19 20:14:01 +10:00
b3429553bb
fix(ui): collapsed edges selected state
2024-05-19 20:14:01 +10:00
e480844042
fix(ui): edge styling
2024-05-19 20:14:01 +10:00
26029108f7
feat(ui): rework node and edge mutation logic
...
Remove our DIY'd reducers, consolidating all node and edge mutations to use `edgesChanged` and `nodesChanged`, which are called by reactflow. This makes the API for manipulating nodes and edges less tangly and error-prone.
2024-05-19 20:14:01 +10:00
504ac82077
fix(ui): duplicated edges when updating edge with lazy connect
2024-05-19 20:14:01 +10:00
6b11740dda
chore(ui): knip
2024-05-19 20:14:01 +10:00
a80e3448f5
feat(ui): rework pendingConnection
2024-05-19 20:14:01 +10:00
4bda174eb9
tests(ui): coverage for getCollectItemType
2024-05-19 20:14:01 +10:00
b1e28c2f2c
tests(ui): coverage for getFirstValidConnection
2024-05-19 20:14:01 +10:00
83000a4190
feat(ui): rework getFirstValidConnection with new helpers
2024-05-19 20:14:01 +10:00
c98205d0d7
tests(ui): candidate fields, getFirstValidConnection (wip)
2024-05-19 20:14:01 +10:00
ce2ad5903c
feat(ui): extract logic for finding candidate fields to own function
2024-05-19 20:14:01 +10:00
fe3980a369
tests(ui): add buildNode convenience wrapper for buildInvocationNode
2024-05-19 20:14:01 +10:00
ea97ae5ae8
tidy(ui): extraneous vars in makeConnectionErrorSelector
2024-05-19 20:14:01 +10:00
3605b6b1a3
fix(ui): handling for in-progress edge updates during conection validation
2024-05-19 20:14:01 +10:00
fc31dddbf7
feat(ui): use new validateConnection
2024-05-19 20:14:01 +10:00
6ad01d824d
feat(ui): add strict mode to validateConnection
2024-05-19 20:14:01 +10:00
78f9f3ee95
feat(ui): better types for validateConnection
2024-05-19 20:14:01 +10:00
972398d203
tests(ui): add iterate to test schema
2024-05-19 20:14:01 +10:00
857889d1fa
tests(ui): coverage for getCollectItemType
2024-05-19 20:14:01 +10:00
8074a802d6
tests(ui): coverage for validateConnectionTypes
2024-05-19 20:14:01 +10:00
059d5a682c
tidy(ui): validateConnection code clarity
2024-05-19 20:14:01 +10:00
00c2d8f95d
tidy(ui): areTypesEqual var names
2024-05-19 20:14:01 +10:00
04a596179b
tests(ui): finish test cases for validateConnection
2024-05-19 20:14:01 +10:00
3fcb2720d7
tests(ui): add tests for consolidated connection validation
2024-05-19 20:14:01 +10:00
6f7160b9fd
fix(ui): call updateNodeInternals when making connections
2024-05-19 20:14:01 +10:00
6b4e464d17
fix(ui): rework edge update logic
2024-05-19 20:14:01 +10:00
9f7841a04b
tidy(ui): clean up addnodepopover hotkeys
2024-05-19 20:14:01 +10:00
468644ab18
fix(ui): rebase conflict
2024-05-19 20:14:01 +10:00
9d127fee6b
feat(ui): makeConnectionErrorSelector now creates a parameterized selector
2024-05-19 20:14:01 +10:00
6658897210
tidy(ui): tidy connection validation functions and logic
2024-05-19 20:14:01 +10:00
af7b194bec
chore(ui): lint
2024-05-19 20:14:01 +10:00
de1ea50e6d
fix(ui): rebase resolution
2024-05-19 20:14:01 +10:00
a012bb6e07
feat(ui): add ModelIdentifierField field type
...
This new field type accepts _any_ model. A field renderer lets the user select any available model.
2024-05-19 20:14:01 +10:00
6a2c53f6c5
fix(ui): do not allow comparison between undefined original types
2024-05-19 20:14:01 +10:00
2cbf7d9221
fix(ui): stupid ts
2024-05-19 20:14:01 +10:00
85a5a7c47a
feat(ui): add originalType
to FieldType, improved connection validation
...
We now keep track of the original field type, derived from the python type annotation in addition to the override type provided by `ui_type`.
This makes `ui_type` work more like it sound like it should work - change the UI input component only.
Connection validation is extend to also check the original types. If there is any match between two fields' "final" or original types, we consider the connection valid.This change is backwards-compatible; there is no workflow migration needed.
2024-05-19 20:14:01 +10:00
af3fd26d4e
fix(ui): bug when clearing processor
...
When clearing the processor config, we shouldn't re-process the image. This logic wasn't handled correctly, but coincidentally the bug didn't cause a user-facing issue.
Without a config, we had a runtime error when trying to build the node for the processor graph and the listener failed.
So while we didn't re-process the image, it was because there was an error, not because the logic was correct.
Fix this by bailing if there is no image or config.
2024-05-19 07:25:48 +10:00
5127fd6320
fix(ui): control adapter autoprocess jank
...
If you change the control model and the new model has the same default processor, we would still re-process the image, even if there was no need to do so.
With this change, if the image and processor config are unchanged, we bail out.
2024-05-19 07:25:48 +10:00
386d552493
fix(ui): loading workflows from file
2024-05-18 09:04:37 +10:00