> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-22654f5b-docs-rn-guide-message-privately.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Call Logs

> Call Logs — CometChat documentation.

## Overview

`CometChatCallLogs` is a [Widget](/ui-kit/flutter/v4/components-overview#components) that shows the list of Call Logs available. By default, names are shown for all listed users, along with their avatars if available.

<Tabs>
  <Tab title="Android">
    <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/XgQ9DxAoWn0btB5m/images/5b913890-call_logs_overview_cometchat_screens-1984e324e4d2660808b828032884c01b.png?fit=max&auto=format&n=XgQ9DxAoWn0btB5m&q=85&s=22e2de64ec1e90b77dcc17949245ade7" alt="Image" width="4498" height="3121" data-path="images/5b913890-call_logs_overview_cometchat_screens-1984e324e4d2660808b828032884c01b.png" />
  </Tab>

  <Tab title="iOS">
    <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/mq8rEbFfi0JjKmkM/images/6b96ca71-call_logs_overview_cometchat_screens-d5252d8be283ee894dcd90baefcbe151.png?fit=max&auto=format&n=mq8rEbFfi0JjKmkM&q=85&s=0fe401afd6cc322379cc5d415f792b92" alt="Image" width="4498" height="3121" data-path="images/6b96ca71-call_logs_overview_cometchat_screens-d5252d8be283ee894dcd90baefcbe151.png" />
  </Tab>
</Tabs>

The `CometChatCallLogs` widget is composed of the following BaseWidgets:

| Widgets                                           | Description                                                                                                                                                                             |
| ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [CometChatListBase](/ui-kit/flutter/v4/list-base) | `CometChatListBase` is a container widget featuring a title, customizable background options, and a dedicated list widget for seamless integration within your application's interface. |
| [CometChatListItem](/ui-kit/flutter/v4/list-item) | This widget displays data retrieved from a CallLog object on a card, presenting a title and subtitle.                                                                                   |

## Usage

### Integration

`CometChatCallLogs` being a wrapper widget, offers versatility in its integration. It can be seamlessly launched via button clicks or any user-triggered action, enhancing the overall user experience and facilitating smoother interactions within the application.

You can launch `CometChatCallLogs` directly using `Navigator.push`, or you can define it as a widget within the `build` method of your `State` class.

##### 1. Using Navigator to Launch `CometChatCallLogs`

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    Navigator.push(context, MaterialPageRoute(builder: (context) => CometChatCallLogs()));
    ```
  </Tab>
</Tabs>

##### 2. Embedding `CometChatCallLogs` as a Widget in the build Method

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    import 'package:cometchat_calls_uikit/cometchat_calls_uikit.dart';
    import 'package:flutter/material.dart';

    class CallLogsExample extends StatefulWidget {
      const CallLogsExample({super.key});

      @override
      State<CallLogsExample> createState() => _CallLogsExampleState();
    }

    class _CallLogsExampleState extends State<CallLogsExample> {

      @override
      Widget build(BuildContext context) {
        return const Scaffold(
          body: SafeArea(
            child: CometChatCallLogs(),
          ),
        );
      }
    }
    ```
  </Tab>
</Tabs>

***

### Actions

[Actions](/ui-kit/flutter/v4/components-overview#actions) dictate how a widget functions. They are divided into two types: Predefined and User-defined. You can override either type, allowing you to tailor the behavior of the widget to fit your specific needs.

##### 1. onItemClick

This method proves valuable when users seek to override the `onItemClick` functionality within CometChatCallLogs, empowering them with greater control and customization options.

The `onItemClick` action doesn't have a predefined behavior. You can override this action using the following code snippet.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatCallLogs(
      onItemClick: (callLog) {
        // TODO("Not yet implemented")
      },
    )
    ```
  </Tab>
</Tabs>

***

##### 2. OnError

You can customize this behavior by using the provided code snippet to override the `OnError` and improve error handling.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatCallLogs(
      onError: (e) {
        // TODO("Not yet implemented")
      },
    )
    ```
  </Tab>
</Tabs>

***

##### 3. onBack

You can customize this behavior by using the provided code snippet to override the `onBack` and improve error handling.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatCallLogs(
      onBack: () {
        // TODO("Not yet implemented")
      },
    )
    ```
  </Tab>
</Tabs>

***

##### 4. onInfoIconClick

You can customize this behavior by using the provided code snippet to override the `onInfoIconClick` and improve error handling.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatCallLogs(
      onInfoIconClick: (CallLog callLog) {
        // TODO("Not yet implemented")
      },
    )
    ```
  </Tab>
</Tabs>

***

### Filters

**Filters** allow you to customize the data displayed in a list within a Widget. You can filter the list based on your specific criteria, allowing for a more customized. Filters can be applied using RequestBuilders of Chat SDK.

##### 1. CallLogRequestBuilder

The [CallLogRequestBuilder](/sdk/flutter/call-logs) enables you to filter and customize the call list based on available parameters in CallLogRequestBuilder. This feature allows you to create more specific and targeted queries during the call. The following are the parameters available in [CallLogRequestBuilder](/sdk/flutter/call-logs)

**Example**

In the example below, we are applying a filter based on the limit and have a call recording.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatCallLogs(
      callLogsRequestBuilder: CallLogRequestBuilder()
        ..limit = 10
        ..hasRecording = true,
    )
    ```
  </Tab>
</Tabs>

List of properties exposed by `CallLogRequestBuilder`

| **Property**       | Description                                                 | Code                     |
| ------------------ | ----------------------------------------------------------- | ------------------------ |
| **Auth Token**     | Sets the authentication token.                              | `authToken: String?`     |
| **Call Category**  | Sets the category of the call.                              | `callCategory: String?`  |
| **Call Direction** | Sets the direction of the call.                             | `callDirection: String?` |
| **Call Status**    | Sets the status of the call.                                | `callStatus: String?`    |
| **Call Type**      | Sets the type of the call.                                  | `callType: String?`      |
| **Guid**           | Sets the unique ID of the group involved in the call.       | `guid: String?`          |
| **Has Recording**  | Indicates if the call has a recording.                      | `hasRecording: bool`     |
| **Limit**          | Sets the maximum number of call logs to return per request. | `limit: int`             |
| **Uid**            | Sets the unique ID of the user involved in the call.        | `uid: String?`           |

***

### Events

[Events](/ui-kit/flutter/v4/components-overview#events) are emitted by a `Widget`. By using event you can extend existing functionality. Being global events, they can be applied in Multiple Locations and are capable of being Added or Removed.

The `CometChatCallLogs` widget does not have any exposed events.

***

## Customization

To fit your app's design requirements, you can customize the appearance of the conversation widget. We provide exposed methods that allow you to modify the experience and behavior according to your specific needs.

### Style

Using Style you can customize the look and feel of the widget in your app, These parameters typically control elements such as the color, size, shape, and fonts used within the widget.

##### 1. CallLogs Style

You can customize the appearance of the `CometChatCallLogs` Widget by applying the `CallLogsStyle` to it using the following code snippet.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatCallLogs(
      callLogsStyle: CallLogsStyle(
          background: Color(0xFFE4EBF5),
          titleStyle: TextStyle(color: Colors.red),
      ),
    )
    ```
  </Tab>
</Tabs>

<Tabs>
  <Tab title="Android">
    <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/fxK75AS6FzDL1Oqo/images/b439e694-call_logs_style_cometchat_screens-31c52aac917624f46c12148fafb1b41a.png?fit=max&auto=format&n=fxK75AS6FzDL1Oqo&q=85&s=52b24eacaf238a09880b022d44db11c0" alt="Image" width="4498" height="3121" data-path="images/b439e694-call_logs_style_cometchat_screens-31c52aac917624f46c12148fafb1b41a.png" />
  </Tab>

  <Tab title="iOS">
    <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/fxK75AS6FzDL1Oqo/images/b75e1dc5-call_logs_style_cometchat_screens-6814aa0f4d5ff13e0209282183593cb3.png?fit=max&auto=format&n=fxK75AS6FzDL1Oqo&q=85&s=67bd9f4304d330e8d3c3e59a85dd99f8" alt="Image" width="4498" height="3121" data-path="images/b75e1dc5-call_logs_style_cometchat_screens-6814aa0f4d5ff13e0209282183593cb3.png" />
  </Tab>
</Tabs>

List of properties exposed by `CallLogStyle`

| **Property**              | Description                               | Code                         |
| ------------------------- | ----------------------------------------- | ---------------------------- |
| **Back Icon Tint**        | Sets the color for the back icon.         | `backIconTint: Color?`       |
| **Background**            | Sets the background color.                | `background: Color?`         |
| **Border**                | Sets the border style.                    | `border: BoxBorder?`         |
| **Border Radius**         | Sets the border radius.                   | `borderRadius: double?`      |
| **Call Status Icon Tint** | Sets the color for the call status icon.  | `callStatusIconTint: Color?` |
| **Empty Text Style**      | Sets the text style for empty state text. | `emptyTextStyle: TextStyle?` |
| **Error Text Style**      | Sets the text style for error messages.   | `errorTextStyle: TextStyle?` |
| **Gradient**              | Sets the gradient background.             | `gradient: Gradient?`        |
| **Height**                | Sets the height of the call logs style.   | `height: double?`            |
| **Info Icon Tint**        | Sets the color for the info icon.         | `infoIconTint: Color?`       |
| **Loading Icon Tint**     | Sets the color for the loading icon.      | `loadingIconTint: Color?`    |
| **Sub Title Style**       | Sets the text style for subtitles.        | `subTitleStyle: TextStyle?`  |
| **Tail Title Style**      | Sets the text style for tail titles.      | `tailTitleStyle: TextStyle?` |
| **Title Style**           | Sets the text style for titles.           | `titleStyle: TextStyle?`     |
| **Width**                 | Sets the width of the call logs style.    | `width: double?`             |

***

##### 2. Avatar Styles

To apply customized styles to the `Avatar` widget in the `CallLogs` Widget, you can use the following code snippet. For further insights on `Avatar` Styles [refer](/ui-kit/flutter/v4/avatar#avatarstyle)

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatCallLogs(
      avatarStyle: AvatarStyle(
          border: Border.all(width: 5),
          borderRadius: 20,
          background: Colors.red
      ),
    )
    ```
  </Tab>
</Tabs>

***

##### 3. ListItem Styles

To apply customized styles to the `ListItemStyle` widget in the `CallLogs` Widget, you can use the following code snippet. For further insights on `ListItemStyle` Styles [refer](/ui-kit/flutter/v4/list-item)

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatCallLogs(
      listItemStyle: ListItemStyle(
          background: Color(0xFFE4EBF5),
          borderRadius: 20,
          border: Border.all(width: 2),
          margin: EdgeInsets.only(top: 10),
          padding: EdgeInsets.only(left: 10)
      ),
    )
    ```
  </Tab>
</Tabs>

***

### Functionality

These are a set of small functional customizations that allow you to fine-tune the overall experience of the widget. With these, you can change text, set custom icons, and toggle the visibility of UI elements.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatCallLogs(
      title: "Your Title",
      backButton: Icon(Icons.add_alert, color: Color(0xFF6851D6)),
    )
    ```
  </Tab>
</Tabs>

<Tabs>
  <Tab title="Android">
    <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/fxK75AS6FzDL1Oqo/images/b63f7edc-call_logs_functionality_cometchat_screens-9440a7269b6a247eec0ea0b0be9853d7.png?fit=max&auto=format&n=fxK75AS6FzDL1Oqo&q=85&s=9f9a8bbd4563c375f98f1a2532f86121" alt="Image" width="4498" height="3121" data-path="images/b63f7edc-call_logs_functionality_cometchat_screens-9440a7269b6a247eec0ea0b0be9853d7.png" />
  </Tab>

  <Tab title="iOS">
    <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/3EDM5JvI4mnAULac/images/7d1ac343-call_logs_functionality_cometchat_screens-6da1c65caba38476d7a76ef530beef6d.png?fit=max&auto=format&n=3EDM5JvI4mnAULac&q=85&s=6b8934f51590a09e8f9964b11c3ccb03" alt="Image" width="4498" height="3121" data-path="images/7d1ac343-call_logs_functionality_cometchat_screens-6da1c65caba38476d7a76ef530beef6d.png" />
  </Tab>
</Tabs>

Below is a list of customizations along with corresponding code snippets

| **Property**                  | **Description**                                  | **Code**                                         |
| ----------------------------- | ------------------------------------------------ | ------------------------------------------------ |
| **Back Button**               | A widget for the back button.                    | `backButton: Widget?`                            |
| **Call Logs Request Builder** | Builder for creating call log requests.          | `callLogsRequestBuilder: CallLogRequestBuilder?` |
| **Date Pattern**              | Format pattern for date display.                 | `datePattern: String?`                           |
| **Date Separator Pattern**    | Format pattern for date separator.               | `dateSeparatorPattern: String?`                  |
| **Empty State Text**          | Text to display when there are no call logs.     | `emptyStateText: String?`                        |
| **Error State Text**          | Text to display when there is an error.          | `errorStateText: String?`                        |
| **Hide Separator**            | Whether to hide the separator between call logs. | `hideSeparator: bool`                            |
| **Incoming Audio Call Icon**  | Icon for incoming audio calls.                   | `incomingAudioCallIcon: Icon?`                   |
| **Incoming Video Call Icon**  | Icon for incoming video calls.                   | `incomingVideoCallIcon: Icon?`                   |
| **Info Icon Url**             | URL for the info icon.                           | `infoIconUrl: String?`                           |
| **Loading Icon Url**          | URL for the loading icon.                        | `loadingIconUrl: String?`                        |
| **Missed Audio Call Icon**    | Icon for missed audio calls.                     | `missedAudioCallIcon: Icon?`                     |
| **Missed Video Call Icon**    | Icon for missed video calls.                     | `missedVideoCallIcon: Icon?`                     |
| **Outgoing Audio Call Icon**  | Icon for outgoing audio calls.                   | `outgoingAudioCallIcon: Icon?`                   |
| **Outgoing Video Call Icon**  | Icon for outgoing video calls.                   | `outgoingVideoCallIcon: Icon?`                   |
| **Show Back Button**          | Whether to show the back button.                 | `showBackButton: bool?`                          |
| **Title**                     | Title for the call logs section.                 | `title: String?`                                 |

***

### Advanced

For advanced-level customization, you can set custom widgets to the widget. This lets you tailor each aspect of the widget to fit your exact needs and application aesthetics. You can create and define your widgets, layouts, and UI elements and then incorporate those into the widget.

#### ListItemView

With this property, you can assign a custom ListItem to the Call Logs Widget.

**Example**

Here is the complete example for reference:

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatCallLogs(
      listItemView: (CallLog callLog, BuildContext context) {
        return Container(
          margin: const EdgeInsets.only(top: 10),
          width: MediaQuery.of(context).size.width/1.2,
          decoration: BoxDecoration(
            color: Color(0xFFE4EBF5),
            borderRadius: BorderRadius.circular(20),
            border: Border.all(width: 2)
          ),
          padding: const EdgeInsets.all(10),
          child: Row(
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              CometChatAvatar(
                name: callLog.participants![0].name!,
              ),
              Column(
                children: [
                  Text(callLog.participants![0].name!),
                  Text("Duration: ${callLog.totalDurationInMinutes} minutes"),
                ],
              )
            ],
          ),
        );
      },
    )
    ```
  </Tab>
</Tabs>

<Tabs>
  <Tab title="Android">
    <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/3EDM5JvI4mnAULac/images/7bf7c652-call_logs_list_item_view_cometchat_screens-fc0c9fa42cebc7df5a5550521a04f9be.png?fit=max&auto=format&n=3EDM5JvI4mnAULac&q=85&s=fd8301c4228bacd6625467e2761b8d48" alt="Image" width="4498" height="3121" data-path="images/7bf7c652-call_logs_list_item_view_cometchat_screens-fc0c9fa42cebc7df5a5550521a04f9be.png" />
  </Tab>

  <Tab title="iOS">
    <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/NN4EdpOU3viwWMb_/images/0f9a30ee-call_logs_list_item_view_cometchat_screens-f8055a669652334b67b74a31670c3646.png?fit=max&auto=format&n=NN4EdpOU3viwWMb_&q=85&s=19f111559fd4a5fe2c2ad7db4b52eea5" alt="Image" width="4498" height="3121" data-path="images/0f9a30ee-call_logs_list_item_view_cometchat_screens-f8055a669652334b67b74a31670c3646.png" />
  </Tab>
</Tabs>

***

#### SubtitleView

You can customize the subtitle widget for each call logs item to meet your requirements

**Example**

Here is the complete example for reference:

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatCallLogs(
      subTitleView: (context, conversation) {
        return const Row(
          children: [
            Icon(Icons.call, color: Color(0xFF6851D6), size: 25,),
            SizedBox(width: 10),
            Icon(Icons.video_call, color: Color(0xFF6851D6), size: 25,),
          ],
        );
      },
    )
    ```
  </Tab>
</Tabs>

<Tabs>
  <Tab title="Android">
    <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/7emVxEQ5MCxvzC60/images/1dd12265-call_logs_subtitle_view_cometchat_screens-4aea64352007988aee750e8a5dc02c31.png?fit=max&auto=format&n=7emVxEQ5MCxvzC60&q=85&s=87fc6e0ae20d01914cc89563b8d8a4cb" alt="Image" width="4498" height="3121" data-path="images/1dd12265-call_logs_subtitle_view_cometchat_screens-4aea64352007988aee750e8a5dc02c31.png" />
  </Tab>

  <Tab title="iOS">
    <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/mkn0UqPQ5BXljCV1/images/981acf30-call_logs_subtitle_view_cometchat_screens-ed091c2ccc50876ff02a6a3a8de4f388.png?fit=max&auto=format&n=mkn0UqPQ5BXljCV1&q=85&s=e6b76fecc785144d79e19c1723f6fb33" alt="Image" width="4498" height="3121" data-path="images/981acf30-call_logs_subtitle_view_cometchat_screens-ed091c2ccc50876ff02a6a3a8de4f388.png" />
  </Tab>
</Tabs>

***

#### TailView

You can customize the tail widget for each call logs item to meet your requirements

**Example**

Here is the complete example for reference:

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatCallLogs(
      tailView: (BuildContext context, CallLog callLog) {
        return SizedBox(
          width: 100,
          child: const Row(
            children: [
              Icon(Icons.call, color: Color(0xFF6851D6), size: 25,),
              SizedBox(width: 10),
              Icon(Icons.video_call, color: Color(0xFF6851D6), size: 25,),
            ],
          ),
        ); // Replaced the placeholder with a custom widget.
      },
    )
    ```
  </Tab>
</Tabs>

<Tabs>
  <Tab title="Android">
    <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/jpEUuHUk-hvu4tQT/images/a9c6f35c-call_logs_tail_view_cometchat_screens-7ba5ef4bcc793b005fc409530774b8d3.png?fit=max&auto=format&n=jpEUuHUk-hvu4tQT&q=85&s=43c4cb5f04bebcb9710b75ef21c6a55e" alt="Image" width="4498" height="3121" data-path="images/a9c6f35c-call_logs_tail_view_cometchat_screens-7ba5ef4bcc793b005fc409530774b8d3.png" />
  </Tab>

  <Tab title="iOS">
    <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/mNTojjz_O28of40c/images/f43498aa-call_logs_tail_view_cometchat_screens-b20d88c3eae006e9c1398872341caf38.png?fit=max&auto=format&n=mNTojjz_O28of40c&q=85&s=ac67e2cb0a49b7e3a63755d3f4d988ab" alt="Image" width="4498" height="3121" data-path="images/f43498aa-call_logs_tail_view_cometchat_screens-b20d88c3eae006e9c1398872341caf38.png" />
  </Tab>
</Tabs>

***

#### LoadingStateView

You can set a custom loader widget using `loadingStateView` to match the loading widget of your app.

**Example**

Here is the complete example for reference:

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatCallLogs(
      loadingStateView: (context) {
        return SizedBox(
          width: MediaQuery.of(context).size.width,
          child: const Center(
              child: CircularProgressIndicator()
          ),
        );
      },
    )
    ```
  </Tab>
</Tabs>

<Tabs>
  <Tab title="Android">
    <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/TO10Bmu50bb5qPTI/images/2e90449b-call_logs_loading_state_view_cometchat_screens-5e2a9f0d0ed4f3904e32dfef2010e9a2.png?fit=max&auto=format&n=TO10Bmu50bb5qPTI&q=85&s=d09f526b70a4596d26d0818f52e35746" alt="Image" width="4498" height="3121" data-path="images/2e90449b-call_logs_loading_state_view_cometchat_screens-5e2a9f0d0ed4f3904e32dfef2010e9a2.png" />
  </Tab>

  <Tab title="iOS">
    <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/PaxBG9I1yMoeQmt2/images/334c84cf-call_logs_loading_state_view_cometchat_screens-452faa9e5bd6ad6387af42e31f71bdc8.png?fit=max&auto=format&n=PaxBG9I1yMoeQmt2&q=85&s=26415d33e1c64585df23eced70508744" alt="Image" width="4498" height="3121" data-path="images/334c84cf-call_logs_loading_state_view_cometchat_screens-452faa9e5bd6ad6387af42e31f71bdc8.png" />
  </Tab>
</Tabs>

***

#### EmptyStateView

You can set a custom `EmptyStateView` using `emptyStateView` to match the empty widget of your app.

**Example**

Here is the complete example for reference:

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatCallLogs(
      emptyStateView: (context) {
        return SizedBox(
          width: MediaQuery.of(context).size.width,
          child: const Center(
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.center,
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  Spacer(),
                  Icon(Icons.sms_failed_outlined, color: Colors.red, size: 100,),
                  SizedBox(height: 20,),
                  Text("Your Custom Message"),
                  Spacer(),
                ],
              )
          ),
        );
      },
    )
    ```
  </Tab>
</Tabs>

<Tabs>
  <Tab title="Android">
    <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/NN4EdpOU3viwWMb_/images/0e3157da-call_logs_empty_state_view_cometchat_screens-ad7a755629b68e5337427806c7ec848b.png?fit=max&auto=format&n=NN4EdpOU3viwWMb_&q=85&s=0d8bcbe04abe55ceddda56a7c07d53a7" alt="Image" width="4498" height="3121" data-path="images/0e3157da-call_logs_empty_state_view_cometchat_screens-ad7a755629b68e5337427806c7ec848b.png" />
  </Tab>

  <Tab title="iOS">
    <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/mq8rEbFfi0JjKmkM/images/64d76f6f-call_logs_empty_state_view_cometchat_screens-f6db3c934f44b4c8814a323925bc96e9.png?fit=max&auto=format&n=mq8rEbFfi0JjKmkM&q=85&s=59b0f7d102d0b255d969fd8268f56e4c" alt="Image" width="4498" height="3121" data-path="images/64d76f6f-call_logs_empty_state_view_cometchat_screens-f6db3c934f44b4c8814a323925bc96e9.png" />
  </Tab>
</Tabs>

***

#### ErrorStateView

You can set a custom `ErrorStateView` using `errorStateView` to match the error widget of your app.

**Example**

Here is the complete example for reference:

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatCallLogs(
      errorStateView: (context) {
        return SizedBox(
          width: MediaQuery.of(context).size.width,
          child: const Center(
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.center,
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                Spacer(),
                Icon(Icons.error_outline, color: Colors.red, size: 100,),
                SizedBox(height: 20,),
                Text("Your Custom Error Message"),
                Spacer(),
              ],
            ),
          ),
        );
      },
    )
    ```
  </Tab>
</Tabs>

***

## Configurations

[Configurations](/ui-kit/flutter/v4/components-overview#configurations) offer the ability to customize the properties of each widget within a Composite Widget.

`CometChatCallLogs` has `CometChatOutgoingCall` widget. Hence, each of these widgets will have its individual \`Configuration\`\`.

* `Configurations` expose properties that are available in its individual widgets.

#### Outgoing Call

You can customize the properties of the OutGoing Call widget by making use of the `OutgoingCallConfiguration`. You can accomplish this by employing the `outgoingCallConfiguration` props as demonstrated below:

**Example**

Here is the complete example for reference:

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatCallLogs(
      outgoingCallConfiguration: OutgoingCallConfiguration(
        subtitle: "Outgoing Call",
        outgoingCallStyle: OutgoingCallStyle(
          background: Color(0xFFE4EBF5),
        )
      ),
    )
    ```
  </Tab>
</Tabs>

<Tabs>
  <Tab title="Android">
    <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/2SVOPiSpm0QEqRoz/images/e8884743-call_logs_outgoing_call_config_cometchat_screens-74adaf62cb240d32b466c122d66e98d2.png?fit=max&auto=format&n=2SVOPiSpm0QEqRoz&q=85&s=48873fa44ccf3634ed75f6d6aed06db2" alt="Image" width="4498" height="3121" data-path="images/e8884743-call_logs_outgoing_call_config_cometchat_screens-74adaf62cb240d32b466c122d66e98d2.png" />
  </Tab>

  <Tab title="iOS">
    <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/OOBJyP9hM0C-rAe_/images/de8acec6-call_logs_outgoing_call_config_cometchat_screens-836ab1ccf71553f8991268445fb70852.png?fit=max&auto=format&n=OOBJyP9hM0C-rAe_&q=85&s=bac0e32ab04ec28d5a1f592c0c70b977" alt="Image" width="4498" height="3121" data-path="images/de8acec6-call_logs_outgoing_call_config_cometchat_screens-836ab1ccf71553f8991268445fb70852.png" />
  </Tab>
</Tabs>

All exposed properties of `OutgoingCallConfiguration` can be found under [OutGoing Call](/ui-kit/flutter/v4/outgoing-call#functionality). Properties marked with the 🛑 symbol are not accessible within the Configuration Object.

***
