HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/buyercall/buyercall/assets/vue/widgets/Worklist/components/ChatView.vue
<template>
  <vue-resizable :active="['r']" width="auto" height="auto" :minWidth="200">
    <div class="user-chat panel-center">
      <div class="card">
        <div class="p-4 border-bottom">
          <div class="row">
            <div class="col-md-4 col-9">
              <h5 class="font-size-15 mb-1">Akarsh</h5>
              <p class="text-muted mb-0">
                <i class="mdi mdi-circle text-success align-middle me-1"></i>
                Active now
              </p>
            </div>
            <div class="col-md-8 col-3">
              <ul class="list-inline user-chat-nav text-end mb-0">
                <li class="list-inline-item d-none d-sm-inline-block">
                  <b-dropdown
                    menu-class="dropdown-menu-md dropdown-menu-end"
                    variant="white"
                    right
                    toggle-class="nav-btn"
                  >
                    <template v-slot:button-content>
                      <i class="bx bx-search-alt-2"></i>
                    </template>
                    <form class="p-3">
                      <div class="form-group m-0">
                        <div class="input-group">
                          <input
                            type="text"
                            class="form-control"
                            placeholder="Search ..."
                            aria-label="Recipient's username"
                          />
                          <div class="input-group-append">
                            <button class="btn btn-primary" type="submit">
                              <i class="mdi mdi-magnify"></i>
                            </button>
                          </div>
                        </div>
                      </div>
                    </form>
                  </b-dropdown>
                </li>
                <li class="list-inline-item d-none d-sm-inline-block">
                  <b-dropdown
                    toggle-class="nav-btn"
                    menu-class="dropdown-menu-end"
                    right
                    variant="white"
                  >
                    <template v-slot:button-content>
                      <i class="bx bx-cog"></i>
                    </template>
                    <b-dropdown-item>View Profile</b-dropdown-item>
                    <b-dropdown-item>Clear chat</b-dropdown-item>
                    <b-dropdown-item>Muted</b-dropdown-item>
                    <b-dropdown-item>Delete</b-dropdown-item>
                  </b-dropdown>
                </li>

                <li class="list-inline-item">
                  <b-dropdown
                    toggle-class="nav-btn"
                    menu-class="dropdown-menu-end"
                    right
                    variant="white"
                  >
                    <template v-slot:button-content>
                      <i class="bx bx-dots-horizontal-rounded"></i>
                    </template>
                    <b-dropdown-item>Action</b-dropdown-item>
                    <b-dropdown-item>Another action</b-dropdown-item>
                    <b-dropdown-item>Something else</b-dropdown-item>
                  </b-dropdown>
                </li>
              </ul>
            </div>
          </div>
        </div>

        <div class="chat-users">
          <div class="chat-conversation p-3">
            <div data-simplebar style="max-height: 470px" id="containerElement">
              <ul class="list-unstyled">
                <li>
                  <div class="chat-day-title">
                    <span class="title">Today</span>
                  </div>
                </li>
                <li
                  v-for="data of chatMessagesData"
                  :key="data.message"
                  :class="{ right: `${data.userType}` === 'sender' }"
                >
                  <div class="conversation-list">
                    <b-dropdown variant="white" menu-class="dropdown-menu-end">
                      <template v-slot:button-content>
                        <i class="bx bx-dots-vertical-rounded"></i>
                      </template>
                      <b-dropdown-item>Copy</b-dropdown-item>
                      <b-dropdown-item>Save</b-dropdown-item>
                      <b-dropdown-item>Forward</b-dropdown-item>
                      <b-dropdown-item>Delete</b-dropdown-item>
                    </b-dropdown>
                    <div class="ctext-wrap">
                      <div class="conversation-name">{{ data.name }}</div>
                      <p>{{ data.message }}</p>
                      <p class="chat-time mb-0">
                        <i class="bx bx-time-five align-middle me-1"></i>
                        {{ data.time }}
                      </p>
                    </div>
                  </div>
                </li>
              </ul>
            </div>
          </div>
          <div class="p-3 chat-input-section">
            <form @submit.prevent="formSubmit" class="row">
              <div class="col">
                <div class="position-relative">
                  <input
                    type="text"
                    v-model="form.message"
                    class="form-control chat-input rounded"
                    placeholder="Enter Message..."
                    :class="{
                      'is-invalid': submitted && $v.form.message.$error,
                    }"
                  />
                  <div
                    v-if="submitted && $v.form.message.$error"
                    class="invalid-feedback"
                  ></div>
                  <div class="chat-input-links">
                    <ul class="list-inline mb-0">
                      <li class="list-inline-item">
                        <a
                          href="javascript: void(0);"
                          v-b-tooltip.hover
                          placement="top"
                          title="Emoji"
                        >
                          <i class="mdi mdi-emoticon-happy-outline"></i>
                        </a>
                      </li>
                      <li class="list-inline-item">
                        <a
                          href="javascript: void(0);"
                          v-b-tooltip.hover
                          placement="top"
                          title="Images"
                        >
                          <i class="mdi mdi-file-image-outline"></i>
                        </a>
                      </li>
                      <li class="list-inline-item">
                        <a
                          href="javascript: void(0);"
                          v-b-tooltip.hover
                          placement="top"
                          title="Add Files"
                        >
                          <i class="mdi mdi-file-document-outline"></i>
                        </a>
                      </li>
                    </ul>
                  </div>
                </div>
              </div>
              <div class="col-auto">
                <button type="submit" class="btn btn-primary btn-rounded chat-send w-md">
                  <span class="d-none d-sm-inline-block me-2">Send</span>
                  <i class="mdi mdi-send"></i>
                </button>
              </div>
            </form>
          </div>
        </div>
      </div>
    </div>
    <!-- <div class="splitter"></div> -->
  </vue-resizable>
</template>
<script>
import VueResizable from "vue-resizable";
import { BDropdown, BDropdownItem, BTooltip } from "bootstrap-vue-next";

export default {
  components: {
    VueResizable,
    BDropdown,
    BDropdownItem,
    BTooltip,
  },
  directives: { "b-tooltip": BTooltip },
  validations: {
    form: {
      message: {},
    },
  },
  data() {
    return {
      form: {
        message: "",
      },
      submitted: false,
      chatMessagesData: [
        {
          name: "Steven Franklin",
          message: "Hello!",
          time: "10:00",
          userType: "receiver",
        },
        {
          name: "Henry Wells",
          messages: "Hi, How are you? What about our next meeting?",
          time: "10:02",
          userType: "sender",
        },
        {
          name: "Steven Franklin",
          message: "Yeah everything is fine",
          time: "10:06",
          userType: "receiver",
        },
        {
          name: "Steven Franklin",
          message: "& Next meeting tomorrow 10.00AM",
          time: "10:06",
          userType: "receiver",
        },
        {
          name: "Henry Wells",
          message: "Wow that's great",
          time: "10:07",
          userType: "sender",
        },
      ],
    };
  },
  methods: {
    formSubmit(e) {},
  },
};
</script>