# Action Catalog

Actions define the behavior of the app in response to user interactions with the app's elements or widgets. These actions can be triggered by various user gestures (or touch), such as tapping on a button, selecting an option from a dropdown list, or submitting form, on page load.

Actions can be simple or complex, depending on the app's requirements. Simple actions might include displaying a message, navigating to a new screen, or updating the value of a variable. Complex actions might involve making an API call or integrating with other third-party services using custom actions.

By defining actions in response to user interactions, you can create more engaging and intuitive user experiences.

## Available Actions

| Action                                                                                                                       | Category         | Description                                                        |
| ---------------------------------------------------------------------------------------------------------------------------- | ---------------- | ------------------------------------------------------------------ |
| [**Call External Method**](https://docs.digia.tech/logic-and-interaction/actions/call-external-method)                       | API & Data       | Execute methods from external libraries or custom integrations     |
| [**Call REST API**](https://docs.digia.tech/logic-and-interaction/actions/call-rest-api)                                     | API & Data       | Trigger pre-configured API calls with success/error handling       |
| [**Control Drawer**](https://github.com/Digia-Technology-Private-Limited/digiaDocs/blob/main/docs/actions/control_drawer.md) | UI & Interaction | Open, close, or toggle navigation drawer state                     |
| [**Control Navigation Bar**](https://docs.digia.tech/logic-and-interaction/actions/control-navigation-bar)                   | UI & Interaction | Modify navigation bar appearance and behavior                      |
| [**Control Object**](https://docs.digia.tech/logic-and-interaction/actions/control-object)                                   | UI & Interaction | Interact with controllable widget instances                        |
| [**Copy to Clipboard**](https://docs.digia.tech/logic-and-interaction/actions/copy-to-clipboard)                             | File & Media     | Copy text content to device clipboard                              |
| [**Delay**](https://docs.digia.tech/logic-and-interaction/actions/delay)                                                     | Timing & Events  | Pause action execution for specified duration                      |
| [**Execute Callback**](https://docs.digia.tech/logic-and-interaction/actions/execute-callback)                               | API & Data       | Invoke custom callback functions with arguments                    |
| [**File Picker**](https://docs.digia.tech/logic-and-interaction/actions/file-picker)                                         | File & Media     | Allow users to select files from device storage                    |
| [**Fire Event**](https://docs.digia.tech/logic-and-interaction/actions/fire-event)                                           | Timing & Events  | Trigger custom events for component communication                  |
| [**Go To Page**](https://docs.digia.tech/logic-and-interaction/actions/go-to-page)                                           | Navigation       | Navigate to different pages with data passing and stack management |
| [**Image Picker**](https://docs.digia.tech/logic-and-interaction/actions/image-picker)                                       | File & Media     | Enable camera or gallery image selection                           |
| [**Open Dialog**](https://docs.digia.tech/logic-and-interaction/actions/open-dialog)                                         | UI & Interaction | Display modal dialogs with custom content                          |
| [**Open URL**](https://docs.digia.tech/logic-and-interaction/actions/open-url)                                               | UI & Interaction | Launch external URLs in browser or system apps                     |
| [**Pop**](https://docs.digia.tech/logic-and-interaction/actions/pop)                                                         | Navigation       | Return to previous page with optional result data                  |
| [**Pop Until**](https://docs.digia.tech/logic-and-interaction/actions/pop-until)                                             | Navigation       | Navigate back through stack until reaching specific route          |
| [**Rebuild State**](https://docs.digia.tech/logic-and-interaction/actions/rebuild-state)                                     | State Management | Force UI rebuild without changing state values                     |
| [**Set App State**](https://docs.digia.tech/logic-and-interaction/actions/set-app-state)                                     | State Management | Update global application state variables                          |
| [**Set State**](https://docs.digia.tech/logic-and-interaction/actions/set-state)                                             | State Management | Modify local state in components, pages, or containers             |
| [**Share**](https://docs.digia.tech/logic-and-interaction/actions/share)                                                     | File & Media     | Share content via system sharing capabilities                      |
| [**Show Bottom Sheet**](https://docs.digia.tech/logic-and-interaction/actions/show-bottom-sheet)                             | UI & Interaction | Display bottom sheet modals with custom content                    |
| [**Toast**](https://docs.digia.tech/logic-and-interaction/actions/toast)                                                     | UI & Interaction | Show temporary notification messages                               |
| [**Upload**](https://docs.digia.tech/logic-and-interaction/actions/upload)                                                   | File & Media     | Upload files to configured storage endpoints                       |

## Action Categories

### 🔄 State Management

Actions for managing application state and triggering UI updates.

### 🧭 Navigation

Actions for moving between pages and managing navigation stack.

### 🌐 API & Data

Actions for communicating with external services and handling data operations.

### 🎨 UI & Interaction

Actions for controlling user interface elements and user feedback.

### 📁 File & Media

Actions for handling file operations, media selection, and sharing.

### ⏱️ Timing & Events

Actions for controlling timing and triggering custom events.

## How To add a Action

1. Select the widget from the Widget Panel where you want to add the action.
2. Locate the **'On Click'** menu in the Properties Panel inside the Widget's Default Properties.
3. Tap on the **'+'** icon next to the **'On Click'** menu.
4. Choose the desired action from the dropdown menu.
