vue-advanced-chat icon indicating copy to clipboard operation
vue-advanced-chat copied to clipboard

SyntaxError: "[object Object]" is not valid JSON

Open Oleh-Semenenko opened this issue 9 months ago • 1 comments
trafficstars

Hi everyone. I use Nuxt3. When I go to the page with the vue-advanced-chat, I get this error:

SyntaxError: "[object Object]" is not valid JSON at JSON.parse () at Proxy.castArray (vue-advanced-chat.js?v=2d499db9:35269:58) at Proxy.roomsCasted (vue-advanced-chat.js?v=2d499db9:35162:19) at ReactiveEffect.run (vue-advanced-chat.js?v=2d499db9:165:19) at get value (vue-advanced-chat.js?v=2d499db9:826:35) at Object.get [as roomsCasted] (vue-advanced-chat.js?v=2d499db9:2328:22) at Object.get (vue-advanced-chat.js?v=2d499db9:2198:19) at getter (vue-advanced-chat.js?v=2d499db9:2426:90) at callWithErrorHandling (vue-advanced-chat.js?v=2d499db9:1012:32) at getter (vue-advanced-chat.js?v=2d499db9:1503:22)

But when I refresh this page, everything works fine.

My code is:

<script setup lang="ts">
definePageMeta({
  ssr: false
});

const currentUserId = ref('1234');

const rooms = [
  {
    roomId: '1',
    roomName: 'Room 1',
    avatar: 'assets/imgs/people.png',
    unreadCount: 4,
    index: 3,
    lastMessage: {
      _id: 'xyz',
      content: 'Last message received',
      senderId: '1234',
      username: 'John Doe',
      timestamp: '10:20',
      saved: true,
      distributed: false,
      seen: false,
      new: true
    },
    users: [
      {
        _id: '1234',
        username: 'John Doe',
        avatar: 'assets/imgs/doe.png',
        status: {
          state: 'online',
          lastChanged: 'today, 14:30'
        }
      },
      {
        _id: '4321',
        username: 'John Snow',
        avatar: 'assets/imgs/snow.png',
        status: {
          state: 'offline',
          lastChanged: '14 July, 20:00'
        }
      }
    ],
    typingUsers: [4321]
  }
];
const messages = [
  {
    _id: '7890',
    indexId: 12092,
    content: 'Message 1',
    senderId: '1234',
    username: 'John Doe',
    avatar: 'assets/imgs/doe.png',
    date: '13 November',
    timestamp: '10:20',
    system: false,
    saved: true,
    distributed: true,
    seen: true,
    deleted: false,
    failure: true,
    disableActions: false,
    disableReactions: false,
    files: [
      {
        name: 'My File',
        size: 67351,
        type: 'png',
        audio: true,
        duration: 14.4,
        url: 'https://firebasestorage.googleapis.com/...',
        preview: 'data:image/png;base64,iVBORw0KGgoAA...',
        progress: 88
      }
    ],
    replyMessage: {
      content: 'Reply Message',
      senderId: '4321',
      files: [
        {
          name: 'My Replied File',
          size: 67351,
          type: 'png',
          audio: true,
          duration: 14.4,
          url: 'https://firebasestorage.googleapis.com/...',
          preview: 'data:image/png;base64,iVBORw0KGgoAA...'
        }
      ]
    }
  }
];
</script>

<template>
  <NuxtLayout name="chat">
    <vue-advanced-chat
      height="100%"
      :current-user-id="currentUserId"
      :rooms="rooms"
      :messages="messages"
      :rooms-loaded="true"
      :messages-loaded="true"
      :show-search="false"
      :show-add-room="false"
      :styles="{
        container: {
          borderRadius: '16px'
        }
      }"
    >
    </vue-advanced-chat>
  </NuxtLayout>
</template>

What is the problem it could be?

Oleh-Semenenko avatar Feb 19 '25 12:02 Oleh-Semenenko