Skip to content

Commit 2a396d4

Browse files
authored
Merge branch 'main' into david/troubleshootingtopics
2 parents 3a0aa41 + 70822fb commit 2a396d4

Some content is hidden

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

44 files changed

+403
-8
lines changed

docs/ff-concepts/design-system/design-system.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ Here are all the properties you can customize:
256256

257257
![main-axis-margin](../imgs/main-axis-margin.avif)
258258

259-
6. **Cross Axis Maring:** This refers to the space or gap along the cross direction of the scrollbar. For instance, in a vertically scrolling list, it refers to the left and right spacing, and in a horizontally scrolling list, it refers to the top and bottom spacing.
259+
6. **Cross Axis Margin:** This refers to the space or gap along the cross direction of the scrollbar. For instance, in a vertically scrolling list, it refers to the left and right spacing, and in a horizontally scrolling list, it refers to the top and bottom spacing.
260260

261261
![cross-axis-margin](../imgs/cross-axis-margin.avif)
262262

Binary file not shown.

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,14 @@ You can learn more about state management from this video:
4949
:::
5050

5151

52+
## Rebuild [Action]
5253

54+
The **Rebuild** action allows you to refresh a page or a component’s UI. This is especially useful when data changes dynamically; for example, after an API call, a database update, a custom action, or a class method modifies the internal state, and you want the latest data or UI state to be reflected instantly.
5355

56+
The Rebuild action provides different update types depending on where it is used:
57+
58+
- **Rebuild Page:** When on a page, you will see the **Rebuild Current Page** option, which refreshes the entire page’s UI.
59+
- **Rebuild Component:** When on a component, you will see the **Rebuild Current Component** option, which refreshes only that specific component.
60+
- **Rebuild Containing Page:** When on a component, you will see this option as well, which refreshes the entire page that contains the component. For example, if you have a **"Confirm"** button inside a dialog component that updates an order’s status, selecting this action will refresh the parent page to instantly show the updated order list.
61+
62+
![rebuild](imgs/rebuild.avif)

docs/resources/control-flow/user-interactivity/forms/form-widgets/text-field.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,15 @@ To autofocus a TextField, select the TextField widget, move to the **Properties
410410
</div>
411411
<p></p>
412412

413+
### Enable Interactive Selection
414+
415+
The **Enable Interactive Selection** toggle controls whether users can interact with the text selection features, such as long-press selection, copy/paste menus, and selection handles.
416+
417+
By default, this property is set to **True**, allowing users to select, copy, and paste text using the platform's built-in text selection controls. Disabling this can help prevent unintended text copying or editing, especially in sensitive fields.
418+
419+
420+
![interactive-selection](../imgs/interactive-selection.avif)
421+
413422
### Autocomplete a TextField
414423

415424
You might want to allow users to enter the text by suggesting them a list of items. The suggested items are shown if it contains the currently entered text from TextField. For example, using autocomplete to get the *Country* *name*, *Fruit* *name*, etc.

docs/resources/data-representation/app-state.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,10 @@ Here's a quick guide to updating the app state variable. We need to add an actio
114114
</iframe>
115115
</div>
116116

117+
:::tip
118+
If you want to rebuild a page or component without updating any state variables, use the [**Rebuild**](../../ff-concepts/state-management/state-variables.md#rebuild-action) state action.
119+
:::
120+
117121
## FAQs
118122

119123
<details>
Binary file not shown.

docs/resources/projects/libraries.md

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -253,17 +253,17 @@ You can easily upgrade to newer versions of the libraries as they become availab
253253

254254
## Library Pages
255255

256-
You can also add and manage pages within a library, making it easy to reuse those pages across multiple projects. These pages function like any regular project page in your app; they support navigation, parameters, state management, and transitions.
256+
When you publish a library, all the pages included in the library become available for use in the consumer project. These pages function like any regular project page in your app; they support navigation, parameters, state management, and transitions.
257257

258-
Including pages with libraries offers a modular approach to development, making it ideal for large teams and complex, multi-feature apps. For example, instead of recreating common flows like onboarding and payment flows, you can build them in a library once and use them wherever needed.
258+
Library Pages offers a modular approach to development, making it ideal for large teams and complex, multi-feature apps. For example, instead of recreating common flows like onboarding and payment flows, you can build them in a library once and use them wherever needed.
259259

260260
:::tip[Possible Use Cases]
261261
- **Super Apps** like Gojek and Uber with distinct modules such as ride booking, shopping, and payments. Each module can be developed as a separate library and imported into a single main project.
262262
- **Enterprise Apps** with isolated user journeys for different roles, such as admin and customer. Each role-based flow can be built as its own library and integrated into the core app as needed.
263263
- **White-labeled Apps** that share common onboarding flows can benefit from libraries. The onboarding process can be built once as a library and reused across all branded versions of the app.
264264
:::
265265

266-
The library author selects which pages to include and publishes the library. When users import or update the library, they can override the default route names to prevent conflicts between the library and their project. Library pages then appear in navigation actions just like any regular page.
266+
When users import or update the library, they can override the default route names to prevent conflicts between the library and their project. Library pages then appear in navigation actions just like any regular page.
267267

268268
<div style={{
269269
position: 'relative',
@@ -291,7 +291,50 @@ The library author selects which pages to include and publishes the library. Whe
291291
</div>
292292
<p></p>
293293

294+
### Library Pages in NavBar
294295

296+
Library pages can also be used in the NavBar, allowing users to add reusable flows into the app’s primary navigation structure. For example, in a Super App, you can import ride booking, food delivery, or payment pages from separate libraries and add them directly to the bottom navigation, giving users quick access to each module.
297+
298+
:::tip
299+
Want to learn more about building modular Super Apps using libraries? Check out our [**blog post**](https://blog.flutterflow.io/scaling-super-apps-modular-architecture-with-flutterflow-libraries/).
300+
:::
301+
302+
To display a library page on the NavBar, navigate to **Project Dependencies > FlutterFlow Libraries**, then click on **Pages** for the relevant library to open its details. In the list of pages, locate the desired page and click **Nav Bar Settings**, then enable **Show on NavBar**. You can also customize additional settings, such as label and icon, as needed.
303+
304+
To confirm, go to the **Nav Bar & App Bar** section, where you’ll see the library page listed as part of the NavBar items.
305+
306+
:::info
307+
NavBar settings for regular pages are available directly within the Page Settings panel in the builder. However, for Library pages, these settings are managed through the Library Details dialog.
308+
309+
![NavBar-settings-for-regular-and-library-page](imgs/NavBar-settings-for-regular-and-library-page.avif)
310+
:::
311+
312+
313+
<div style={{
314+
position: 'relative',
315+
paddingBottom: 'calc(56.67989417989418% + 41px)', // Keeps the aspect ratio and additional padding
316+
height: 0,
317+
width: '100%'}}>
318+
<iframe
319+
src="https://demo.arcade.software/BDac382RQTHTKFhtZcsc?embed&show_copy_link=true"
320+
title=""
321+
style={{
322+
position: 'absolute',
323+
top: 0,
324+
left: 0,
325+
width: '100%',
326+
height: '100%',
327+
colorScheme: 'light'
328+
}}
329+
frameborder="0"
330+
loading="lazy"
331+
webkitAllowFullScreen
332+
mozAllowFullScreen
333+
allowFullScreen
334+
allow="clipboard-write">
335+
</iframe>
336+
</div>
337+
<p></p>
295338

296339
## Library Values
297340

docs/resources/ui/components/component-lifecycle.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,10 @@ Type** property in your Action properties. Here's what it means:
249249
- **No Rebuild:** Choose this option when you need to update the state value without
250250
immediately reflecting the changes in the UI.
251251

252+
:::tip
253+
If you want to rebuild a component without updating any state variables, use the [**Rebuild**](../../../ff-concepts/state-management/state-variables.md#rebuild-action) state action.
254+
:::
255+
252256
:::warning[Expensive Rebuilds]
253257
Too many rebuilds can impact performance because rebuilding the widget tree
254258
frequently consumes resources and may lead to decreased responsiveness and

docs/resources/ui/pages/page-lifecycle.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,13 +327,17 @@ update, create a new Action called **Update Page State**.
327327
When updating your page state in Flutter, you'll often come across the **Update
328328
Type** property in your Action properties. Here's what it means:
329329

330-
**Rebuild Current Type:** This option triggers a re-rendering of the page,
330+
**Rebuild Current Page:** This option triggers a re-rendering of the page,
331331
ensuring
332332
that any changes to the state are reflected in the user interface (UI).
333333

334334
**No Rebuild:** Choose this option when you need to update the state without
335335
immediately reflecting the changes in the UI.
336336

337+
:::tip
338+
If you want to rebuild a page without updating any state variables, use the [**Rebuild**](../../../ff-concepts/state-management/state-variables.md#rebuild-action) state action.
339+
:::
340+
337341
:::warning[Expensive Rebuilds]
338342
Too many rebuilds can impact performance because rebuilding the widget tree
339343
frequently consumes resources and may lead to decreased responsiveness and

0 commit comments

Comments
 (0)