useChat.js 776 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import { ref, unref } from 'vue';
  2. export const useChat = () => {
  3. const chatDataSource = ref([]);
  4. const createChat = chat => {
  5. chatDataSource.value = [chat];
  6. }
  7. const addChat = chat => {
  8. chatDataSource.value.push(chat);
  9. }
  10. const updateChat = chat => {
  11. const length = unref(chatDataSource).length;
  12. const index = length ? length - 1 : length;
  13. chatDataSource.value[index] = chat;
  14. }
  15. const clearChat = () => {
  16. chatDataSource.value = [];
  17. }
  18. const updateById = params => {
  19. const i = chatDataSource.value.findIndex(({ id }) => id === params.id);
  20. chatDataSource.value[i] = { ...chatDataSource.value[i], ...params};
  21. }
  22. return {
  23. chatDataSource,
  24. createChat,
  25. addChat,
  26. updateChat,
  27. clearChat,
  28. updateById
  29. }
  30. }