# Nested Comments Thread (with Like and Reply)

## Overview

This block contains a list of comments created by different users. Each user can create a new comment, reply to, or like a parent comment. This block (and its comments database object) can be connected to any data object in your database (e.g., a topic, a product, or a post). Admins (or users with admin access) can manage the comments section by hovering over a comment and clicking on the ellipsis menu to delete the comment.

## Structure

When this block is added to a page, it is placed within a group called ***Blocks container 860 (do not rename)*** on the page. This group contains the responsive settings for all blocks.

* **new\_nestedcommentsGroup**\
  This reusable element contains all of the logic and UI for the nested comments module. It contains four main groups:<br>
  * **Group Parent message input**\
    This group contains the multiline input for posting a parent `comment`. Clicking on **Button Parent POST** will most the text in **MultilineInput Parent Comment** as a parent `comment`.<br>
  * **RepeatingGroup Parent comment**\
    This repeating group displays all parent `comments` posted by users (where the parent comment is empty).
    * **RepeatingGroup Child comment** displays all children comments (where the parent comment is parent group's comment).
    * Clicking on **Text Parent reply button** will show **Group Child message input\_t-comment** and allow the user to reply to a parent `comment`.
      * Clicking on **Button Child REPLY** will post the `comment` underneath the parent `comment`.
    * Clicking on **Text Parent like button** and **Text Child like button** will show **Popup likes**.
    * Clicking on **Group Parent fav comment\_t-comment** or **Group Child fav comment\_t-comment** will like/unlike the comment.
    * Clicking on **Group Parent menu\_t-comment** and **Group Child menu\_t-comment** will show a menu to delete a `comment`.
      * You should add another statement to the existing conditional statements on these groups: *...and Current user's Role is App Admin*<br>
  * **Group Main no comments**\
    This group will be visible when **RepeatingGroup Parent comment's** list of comments count is 0.<br>
  * **Popup Likes**\
    This popup shows a list of users who have liked a `comment`.

## How to set up

* Add a field to the `Comment` data type that represents the object on which you want users to comment. For example, if you want users to comment on products, you should add a `Product` field.

![](/files/-LbzWjPZiiLmw8oGahZx)

* Open the **new\_nestedcomments** reusable <br>
* Modify the type of content displayed in the reusable to be whatever object for which you want to show comments. In this case you should make the group type be `Product`.

![](/files/-LchFAIe395PmeYUl5Oe)

* Modify the data source for **RepeatingGroup Parent comment** to include whatever filter you need. In this case, you should only include comments that are linked to the `Product` being displayed. &#x20;

![](/files/-LchFU23O4r3ISmmKGbR)

* Modify the action that runs when the **Button Parent POST** is clicked to also link the`Comment` created to the relevant object, in this case the `Product` that's displayed in the reusable.

![](/files/-LbzXakg9MJ1NnGHtqbl)

* Add a data source whenever you use the **new\_nestedcomments** reusable element as an instance on a page.&#x20;

![](/files/-LchG49kVyGKPKOGu1fS)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.airdev.co/canvas-pages-and-modules/2.0.0/modules/nested-comments-thread-with-like-and-reply.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
