flutterflow-mcp 0.2.1 → 0.2.2
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/docs/ff-yaml/05-actions.md +112 -2
- package/package.json +1 -1
|
@@ -726,7 +726,112 @@ trueAction:
|
|
|
726
726
|
|
|
727
727
|
## Disabled Actions
|
|
728
728
|
|
|
729
|
-
|
|
729
|
+
FlutterFlow uses `disableAction` to mark actions or conditionals as disabled. There are three distinct patterns depending on what is being disabled.
|
|
730
|
+
|
|
731
|
+
### Pattern 1: Disabling a Leaf Action (Unconditional)
|
|
732
|
+
|
|
733
|
+
To fully disable a single action (navigate, database, revenueCat, etc.), wrap the action content in `disableAction` at the **action file level**. The trigger chain continues to reference the same key — FlutterFlow reads the file, sees `disableAction`, and skips execution.
|
|
734
|
+
|
|
735
|
+
```yaml
|
|
736
|
+
# Action file: id-epxy2a0w.yaml
|
|
737
|
+
key: epxy2a0w
|
|
738
|
+
disableAction:
|
|
739
|
+
actionNode:
|
|
740
|
+
key: gm8dis03 # Internal node key (can be any unique key)
|
|
741
|
+
action:
|
|
742
|
+
navigate:
|
|
743
|
+
allowBack: false
|
|
744
|
+
passedParameters:
|
|
745
|
+
widgetClassNodeKeyRef:
|
|
746
|
+
key: Scaffold_tydsj8ql
|
|
747
|
+
isNavigateBack: false
|
|
748
|
+
transition:
|
|
749
|
+
transitionType: FADE_IN
|
|
750
|
+
durationMillis: 500
|
|
751
|
+
pageNodeKeyRef:
|
|
752
|
+
key: Scaffold_tydsj8ql
|
|
753
|
+
key: epxy2a0w # Must match the outer key
|
|
754
|
+
```
|
|
755
|
+
|
|
756
|
+
| Field | Description |
|
|
757
|
+
|-------|-------------|
|
|
758
|
+
| `key` (outer) | The action's original key — chain references this |
|
|
759
|
+
| `disableAction.actionNode.key` | Internal node key (any unique value) |
|
|
760
|
+
| `disableAction.actionNode.action` | The original action content, preserved for re-enabling |
|
|
761
|
+
| `disableAction.actionNode.action.key` | Must match the outer `key` |
|
|
762
|
+
|
|
763
|
+
**Important:** Disabling a leaf action at the file level does NOT disable `followUpAction` chains defined in the trigger YAML. If the trigger chain has a `followUpAction` after this action reference, that follow-up will still execute.
|
|
764
|
+
|
|
765
|
+
### Pattern 2: Disabling a Conditional Node
|
|
766
|
+
|
|
767
|
+
To disable an entire `conditionActions` block in the trigger chain, two changes are required:
|
|
768
|
+
|
|
769
|
+
**Step 1 — Create a new action file** that wraps the full conditional in `disableAction.actionNode.conditionActions`. Leaf actions within the conditional are inlined (not file references) with their own `disableAction` wrappers:
|
|
770
|
+
|
|
771
|
+
```yaml
|
|
772
|
+
# Action file: id-ds8cnd01.yaml (new file)
|
|
773
|
+
key: ds8cnd01
|
|
774
|
+
disableAction:
|
|
775
|
+
actionNode:
|
|
776
|
+
key: f441awwi # Original conditional node key from the chain
|
|
777
|
+
conditionActions:
|
|
778
|
+
falseAction:
|
|
779
|
+
key: wkklfcpy
|
|
780
|
+
action:
|
|
781
|
+
key: epxy2a0w
|
|
782
|
+
disableAction: # Leaf action inlined with its own disable
|
|
783
|
+
actionNode:
|
|
784
|
+
key: gm8dis03
|
|
785
|
+
action:
|
|
786
|
+
navigate:
|
|
787
|
+
allowBack: false
|
|
788
|
+
pageNodeKeyRef:
|
|
789
|
+
key: Scaffold_tydsj8ql
|
|
790
|
+
key: epxy2a0w
|
|
791
|
+
trueActions:
|
|
792
|
+
- condition:
|
|
793
|
+
revenueCatEntitlementResponse: {}
|
|
794
|
+
trueAction:
|
|
795
|
+
key: 5uq5p5vt
|
|
796
|
+
action:
|
|
797
|
+
key: bgxsmj4b
|
|
798
|
+
disableAction: # Another leaf action inlined
|
|
799
|
+
actionNode:
|
|
800
|
+
key: gm8dis04
|
|
801
|
+
action:
|
|
802
|
+
navigate:
|
|
803
|
+
allowBack: false
|
|
804
|
+
pageNodeKeyRef:
|
|
805
|
+
key: Scaffold_91ca3wwv
|
|
806
|
+
key: bgxsmj4b
|
|
807
|
+
hasMultiConditions: false
|
|
808
|
+
key: ev7ush66
|
|
809
|
+
```
|
|
810
|
+
|
|
811
|
+
**Step 2 — Update the trigger chain YAML.** Replace the `conditionActions` block with an `action` reference to a noop key (a key with no corresponding action file):
|
|
812
|
+
|
|
813
|
+
```yaml
|
|
814
|
+
# Before (in trigger chain):
|
|
815
|
+
followUpAction:
|
|
816
|
+
key: f441awwi
|
|
817
|
+
conditionActions:
|
|
818
|
+
falseAction: ...
|
|
819
|
+
trueActions: ...
|
|
820
|
+
hasMultiConditions: false
|
|
821
|
+
key: ev7ush66
|
|
822
|
+
|
|
823
|
+
# After (in trigger chain):
|
|
824
|
+
followUpAction:
|
|
825
|
+
key: f441awwi
|
|
826
|
+
action:
|
|
827
|
+
key: np8noop1 # Noop key — no action file exists for this key
|
|
828
|
+
```
|
|
829
|
+
|
|
830
|
+
**Note:** The noop key has no corresponding action file. When pushed via the UI, FlutterFlow handles this internally. When pushed via the API, you may need to create the action file with the disabled conditional content under the noop key itself (see API Limitations).
|
|
831
|
+
|
|
832
|
+
### Pattern 3: Conditionally Disabled Action
|
|
833
|
+
|
|
834
|
+
Actions can be conditionally disabled using `disableAction` with a condition. When the condition evaluates to true, the wrapped action executes; otherwise it is skipped.
|
|
730
835
|
|
|
731
836
|
```yaml
|
|
732
837
|
key: hfzr0kmk
|
|
@@ -763,7 +868,12 @@ disableAction:
|
|
|
763
868
|
key: xsa3loej
|
|
764
869
|
```
|
|
765
870
|
|
|
766
|
-
|
|
871
|
+
### Key Rules
|
|
872
|
+
|
|
873
|
+
- `disableAction` is only valid in **action files**, never in the trigger chain YAML directly
|
|
874
|
+
- Leaf actions inlined inside `disableAction` use the full action body, not key references
|
|
875
|
+
- The original action content is preserved inside the wrapper for easy re-enabling
|
|
876
|
+
- Disabling a leaf action does NOT prevent `followUpAction` chains in the trigger from continuing
|
|
767
877
|
|
|
768
878
|
---
|
|
769
879
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flutterflow-mcp",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "MCP server for the FlutterFlow Project API — AI-assisted FlutterFlow development through Claude and other MCP-compatible clients",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "build/index.js",
|