Commit 6adfe2b3 authored by Дмитрий Малюгин's avatar Дмитрий Малюгин 🕓
Browse files

trying and trying...

parent 1a000774
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -3824,7 +3824,6 @@
        "@types/node": "^18.0.0 || >=20.0.0",
        "less": "*",
        "lightningcss": "^1.21.0",
        "sass": "*",
        "stylus": "*",
        "sugarss": "*",
        "terser": "^5.4.0"
@@ -3839,9 +3838,6 @@
        "lightningcss": {
          "optional": true
        },
        "sass": {
          "optional": true
        },
        "stylus": {
          "optional": true
        },
+19 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ import { useInterfaceStore } from '@/app/stores/interface';
import type { IEntity } from '@/app/interfaces/environment';
import { useDataStore } from '@/app/stores/data';
import { useWebsocketStore } from '@/app/stores/websocket';
import { useFilesWebsocketStore } from '@/app/stores/filesWebsocket';

export async function uploadFile($event: Event) {
  const target = $event.target as HTMLInputElement;
@@ -58,3 +59,21 @@ export const changeOrderHomeEntity = (entityUuid: string, direction: 'up' | 'dow
  };
  websocketStore.sendData(data);
};

export function addUrlsToImageEntities(entities: IEntity[]) {
  const filesWebsocketStore = useFilesWebsocketStore();
  const filesBlob = filesWebsocketStore.filesBlob;
  let index = 0;
  console.log('filesBlob[0].data', filesBlob[0]);
  console.log('filesBlob[0].data', filesBlob[0]);
  console.log('filesBlob.length', filesBlob.length);
  return entities.map((entity: IEntity) => {
    if (!entity.image_width) return entity;
    filesBlob[index] = new Blob([filesBlob[index]], { type: 'image/jpeg' });
    entity.imageUrl = URL.createObjectURL(filesBlob[index]);
    console.log('entity.imageUrl', entity.imageUrl);
    index += 1;
    console.log('filesBlob.length', filesBlob.length);
    return entity;
  });
}
+1 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ export interface IEntity {
  font_size?: string;
  paragraph_size?: string;
  text_position?: string;
  image_blob?: string;
  image_url?: string;
  image_width?: number;
  image_height?: number;
+1 −1
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ export const useDataStore = defineStore('dataStore', () => {
  }

  function setHomeEntities(entities: IEntity[]) {
    homeEntities.value = entities;
    homeEntities.value = [...entities];
  }
  return { sheets, homeEntities, editHomeEntities, setHomeEntities };
});
+50 −0
Original line number Diff line number Diff line
import { defineStore } from 'pinia';
import { useDataStore } from '@/app/stores/data';
import type { IEntity } from '@/app/interfaces/environment';
import { useInterfaceStore } from '@/app/stores/interface';
import { useWebsocketStore } from '@/app/stores/websocket';

export const useFilesWebsocketStore = defineStore('filesWebsocketStore', () => {
  const socket = ref();
  const dataStore = useDataStore();
  const interfaceStore = useInterfaceStore();
  const homeEntities = computed(() => dataStore.homeEntities);
  const filesBlob = ref([]);

  onMounted(() => {
    socket.value = new WebSocket('ws://localhost:5001');
    socket.value.binaryType = 'arraybuffer';
    socket.value.onmessage = (response: any) => {
      console.log('response: ', response);
      switch (response?.event) {
        case 'changeHomeBackgroundUrl':
          interfaceStore.setHomeBackgroundUrlFromDB(response.data?.setting_value);
          break;
        case 'editImageHomeEntity': {
          let entities = [...dataStore.homeEntities];
          entities = entities.map((entity: IEntity) => {
            if (entity.entity_uuid !== response.data.entity_uuid) return entity;
            return response.data;
          });
          dataStore.editHomeEntities(entities);
          break;
        }
        default: {
          console.log('default');
          filesBlob.value.push(response);
        }
      }
    };
    socket.value.onclose = () => {
      console.log('Websocket connection closed');
    };
    socket.value.onerror = () => {
      console.log('Websocket caught an error');
    };
  });

  function sendData(data: any) {
    socket.value.send(data);
  }
  return { filesBlob, sendData };
});
Loading