Skip to content

Commit eb553ac

Browse files
authored
Content Fixes (#75)
* Fix State Management docs + links cleanup * Refactor ui-building-blocks folder * fix links * collapse most sidebar sections * keep doc home page as a single page and not a category page * Fix paths * Add more links to page section.
1 parent 73b1c4d commit eb553ac

File tree

210 files changed

+177
-137
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

210 files changed

+177
-137
lines changed

docs/ff-concepts/adding-customization/cloud-functions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ Here are the step-by-step instructions to build such an example:
4848
### 1. Add page state variables
4949

5050
For this example, you'll need to set up two
51-
[Page State variables](../../resources/ui-building-blocks/pages/page-lifecycle.md#creating-a-page-state):
51+
[Page State variables](../../resources/ui/pages/page-lifecycle.md#creating-a-page-state):
5252

5353
1. **generatingImage (*****Type: Boolean*****)**: This is used to control the visibility of a
5454
loading indicator during the logo creation process. Its value is set to *True* before initiating the API call and switched to *False* once the logo generation is complete.

docs/ff-concepts/adding-customization/custom-functions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ You can't have imports in a custom function. To be able to add imports, consider
7171
<details>
7272
<summary>Getting error: The function 'FFAppState' isn't defined.</summary>
7373

74-
You can't use the app state variable (i.e., FFAppState().variablename) directly in your custom
74+
You can't use the app state variable (i.e., `FFAppState().variablename`) directly in your custom
7575
function code. Instead, you can pass the app state variable as a parameter and then use it in your code.
7676

7777
</details>

docs/ff-concepts/animations/page_transitions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Here, the transitions are recorded with the duration set to 1000ms to make the a
2727

2828
## Animate single navigate transition
2929

30-
To set a transition animation for a single navigate action, first, ensure that you have added a [**Navigate To**](../../resources/ui-building-blocks/pages/navigation#navigate-to-action) action and then select an animation from the **Transition Type** dropdown. By default, the animations use 300 milliseconds as the duration for which it plays but you can change it by specifying a value inside the **Duration** (ms) field.
30+
To set a transition animation for a single navigate action, first, ensure that you have added a [**Navigate To**](../../resources/ui/pages/navigation#navigate-to-action) action and then select an animation from the **Transition Type** dropdown. By default, the animations use 300 milliseconds as the duration for which it plays but you can change it by specifying a value inside the **Duration** (ms) field.
3131

3232
![single-navigate-transition-animation.avif](animation_gifs/single-navigate-transition-animation.avif)
3333

docs/ff-concepts/layout/building-layout.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ keywords: [FlutterFlow, Building Layout, Concepts]
99

1010
# Building Layout
1111

12-
In FlutterFlow, you build a page layout using Widgets. **Widgets**, such as [Text](../../resources/ui-building-blocks/widgets/built-in-widgets/text.md), [Buttons](#), [Images](#), and [Icons](#), are visible on the screen. Others, like [Containers](#), [Rows](#), [Columns](#), and [Stacks](#), are not directly visible but help arrange and position the visible elements on the page.
12+
In FlutterFlow, you build a page layout using Widgets. **Widgets**, such as [Text](../../resources/ui/widgets/built-in-widgets/text.md), [Buttons](#), [Images](#), and [Icons](#), are visible on the screen. Others, like [Containers](#), [Rows](#), [Columns](#), and [Stacks](#), are not directly visible but help arrange and position the visible elements on the page.
1313

1414
These widgets are categorized into four main types: [Layout Elements](#), [Base Elements](#),
1515
[Page Elements](#), and [Form Elements](#). To build a page, you combine different widgets from these categories to get the desired look and feel of your app.

docs/ff-concepts/layout/responsive-widgets/conditional-builder-widget.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ keywords: [FlutterFlow, ConditionalBuilder, Concepts]
88
---
99
# ConditionalBuilder
1010

11-
The `ConditionalBuilder` widget allows you to dynamically display different widgets based on certain conditions (either [single](/advanced-functionality/conditional-logic#single-condition) or [multiple](/advanced-functionality/conditional-logic#multiple-conditions-and-or)). Using this widget, you can define different conditions, each associated with a specific widget to be displayed when that condition is true. It's like having a switch that shows different things depending on what's happening in your app.
11+
The `ConditionalBuilder` widget allows you to dynamically display different widgets based on certain conditions (either [single](../../../resources/control-flow/functions/conditional-logic.md#single-condition) or [multiple](../../../resources/control-flow/functions/conditional-logic.md#multiple-conditions-andor)). Using this widget, you can define different conditions, each associated with a specific widget to be displayed when that condition is true. It's like having a switch that shows different things depending on what's happening in your app.
1212

1313
For example, displaying different charts based on user roles. For team members, an individual progress chart can be shown. Team leads can view the overall progress of the entire team, while project managers can see over project progress chart. Just like the below:
1414

@@ -20,11 +20,11 @@ To add the `ConditionalBuilder` widget to your app:
2020

2121
1. Add the **ConditionalBuilder** widget (from the **Base Elements**) to where you want to display dynamic widgets.
2222

23-
2. Move to the **Properties Panel** **>** **Conditional Builder Properties,** andUnder the **First Condition**, provide the **IF** [condition](/advanced-functionality/conditional-logic) by clicking on **UNSET**.
23+
2. Move to the **Properties Panel** **>** **Conditional Builder Properties,** andUnder the **First Condition**, provide the **IF** [condition](../../../resources/control-flow/functions/conditional-logic.md) by clicking on **UNSET**.
2424
3. Now, besides the **THEN**, click **Empty**. This will automatically select the **IF** widget in the widget tree. Inside that, add a widget that you want to display if this condition is true.
2525
4. To add one more condition-based widget, click on the "+" button, add a condition for the **ELSE IF** section, and add a widget inside the **Else If** widget in the widget tree.
2626
5. If none of the conditions are satisfied, add a default widget to display inside the **Else** widget.
27-
6. Use the **Show In UI Builder** option to see that particular widget in the [canvas area](/getting-started/ui-builder/canvas-area). You can see only one widget at a time.
27+
6. Use the **Show In UI Builder** option to see that particular widget in the [canvas area](../../../intro/ff-ui/canvas.md). You can see only one widget at a time.
2828

2929
<div class="video-container"><iframe src="https://www.loom.
3030
com/embed/fe8edb48bdf744abab13f3ba7f925c5c?sid=85533669-195d-4f5e-aeae-029ceee40cb5" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>

docs/ff-concepts/navigation-routing/deep-dynamic-linking.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ To set the page URL:
110110
#### 3. Sharing deep link
111111

112112
You can share the deep link of the current page by adding
113-
the [share action](/actions/actions/share/share).
113+
the [share action](share-action.md).
114114

115115
To share the deep link of the current page:
116116

@@ -320,7 +320,7 @@ To set the page URL:
320320

321321
You can share the dynamic link of the current page by adding the [**Generate Current Page Link
322322
**](generate-current-page-link.md)
323-
action and then sharing it using the [**Share Action**](/actions/actions/share/share).
323+
action and then sharing it using the [**Share Action**](share-action.md).
324324

325325
To share the dynamic link of the page:
326326

docs/ff-concepts/state-management/generated-code.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ Additionally, they provide space for action blocks, which are a set of actions t
2424

2525
## Page State
2626

27-
Variables used exclusively within a pagesuch as a text field validator or the value of a checkboxare stored in the Model of each page. These variables can be accessed by other component children on the same page. For instance, on a page with a form, tapping a button in one component may need to access the value of a text field in a different component.
27+
[Variables](../../resources/ui/pages/page-lifecycle.md) used exclusively within a pagesuch as a text field validator or the value of a checkboxare stored in the `Model` of each page. These variables can be accessed by other component children on the same page. For instance, on a page with a form, tapping a button in one component may need to access the value of a text field in a different component.
2828

29-
Variables within a page are tracked through StatefulWidgets and are encapsulated into that page’s Model.
29+
Variables within a page are tracked through `StatefulWidget` and are encapsulated into that page’s Model.
3030

3131
## Component State
3232

33-
Similar to page state, component variables are accessible within the component where they are defined. Each component has a corresponding Model and Widget class. Variables may be passed in from their parent as parameters. Additionally, you can access component state values from its parent Page widget.
33+
Similar to page state, [**Component State variables**](../../resources/ui/components/custom-components/component-lifecycle.md) are accessible within the component where they are defined. Each component has a corresponding `Model` and `Widget` class. Variables may be passed in from their parent as parameters. Additionally, you can access component state values from its parent Page widget.
3434

3535
This accessibility is possible because the Model of a component is instantiated within the parent Page model. It utilizes the Provider method `context.read()`, which returns any existing model in the tree before instantiating a new one. Thus, any updates to the state in the component model will reflect in the parent’s instance of that component model.
3636

docs/ff-concepts/state-management/state-management.md

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22
title: State Management
33
description: An overview of state management in FlutterFlow
44
---
5-
5+
# State Management
66
State management is a crucial concept focused on maintaining and controlling the **state** of an application. Simply put, it involves monitoring the changes within your app and updating the user interface to reflect these changes.
77

8-
You can think of the UI as a function of your state variables, where changes in these variables directly influence what the UI displays.
8+
The UI (user interface) displays information based on state variables. When these state variables change, the UI updates to reflect the changes.
9+
10+
## State Variables
911

1012
In FlutterFlow, there are a few types of state variables that you can create:
1113

@@ -15,27 +17,35 @@ In FlutterFlow, there are a few types of state variables that you can create:
1517
</figure>
1618

1719

18-
- State variables are themselves **variables** - meaning they have a *name* and a *data type*.
20+
- State variables are themselves [**variables**](../../resources/data-representation/overview.md#variable) - meaning they have a *name* and a *data type*.
1921
- They also have an initial value that is set when you create the variable.
2022
- Once you create a state variable, it's value can be used to change the configuration of widget properties - like any other variable.
21-
- You can update the value of state variables using the *Update State Variable* action.
23+
- You can update the value of state variables using the **[Update State Variable](#updating-state-variables)** action.
24+
25+
### Creating State Variables
26+
- To create an **App State variable**, refer to this **[guide](../../resources/data-representation/app-state.md#create-app-state-variable)**.
27+
- To create a **Page State variable**, refer to this [**guide**](../../resources/ui/pages/page-lifecycle.md#creating-a-page-state).
28+
- To create a **Component State variable**, refer to this [**guide**](../../resources/ui/components/custom-components/component-lifecycle.md#creating-a-component-state).
29+
30+
Note: Users cannot create **widget state variables**. These are automatically exposed by FlutterFlow when a Form widget is used.
31+
32+
33+
34+
### Updating State Variables
35+
- To update an **App State variable**, refer to this **[guide](../../resources/data-representation/app-state.md#update-app-state-action)**.
36+
- Refer to the [**Page Lifecycle**](../../resources/ui/pages/page-lifecycle.md) guide to learn about updating **[Page State variables](../../resources/ui/pages/page-lifecycle.md#update-page-state-action)**.
37+
- Refer to the [**Component Lifecycle**](../../resources/ui/components/custom-components/component-lifecycle.md) guide to learn about updating **[Component State variables](../../resources/ui/components/custom-components/component-lifecycle.md#update-component-state-action)**.
2238

39+
<p></p>
40+
41+
42+
:::tip[Learn from video]
2343
You can learn more about state management from this video:
2444
<div class="video-container">
2545
<iframe src="https://www.youtube.com/embed/jD6L4xjYjJA?si=-RjniUB-K0ZsMoB1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
2646
</div>
27-
28-
<p></p>
29-
30-
:::tip
31-
To learn more about state management in FlutterFlow, read up on
32-
[**Variables**](../../resources/data-representation/overview.md#variable) and how
33-
[**Page
34-
State**](../../resources/ui-building-blocks/pages/page-lifecycle.md#page-state), or
35-
[**Component State**](#) or [**App State variables**](#) are modified in FlutterFlow.
3647
:::
3748

3849

3950

4051

41-
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
{
2-
"label": "Authentication",
3-
"position": 1
2+
"label": "Authentication"
43
}

docs/ff-integrations/database/cloud-firestore/firestore-actions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ To do so:
274274
:::
275275

276276
Here is an example showing the
277-
[**Snackbar**](../../../resources/ui-building-blocks/pages/page-elements.md#show-snackbar-action)
277+
[**Snackbar**](../../../resources/ui/pages/page-elements.md#show-snackbar-action)
278278
message when the data
279279
changes in a collection.
280280

0 commit comments

Comments
 (0)