@lvce-editor/renderer-process 20.2.0 → 20.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -744,7 +744,7 @@ const acquire$1 = id => {
744
744
  return promise;
745
745
  };
746
746
  const getFileHandles$1 = async ids => {
747
- const promises = ids.map(id => acquire$1(id));
747
+ const promises = ids.map(acquire$1);
748
748
  const handles = await Promise.all(promises);
749
749
  return handles;
750
750
  };
@@ -785,7 +785,7 @@ const applyDragInfoMaybe = event => {
785
785
  }
786
786
  } else {
787
787
  for (const item of dragInfo.items) {
788
- dataTransfer.items.add(item.data, item.data);
788
+ dataTransfer.items.add(item.data, item.type);
789
789
  }
790
790
  if (dragInfo.label) {
791
791
  setDragImage(dataTransfer, dragInfo.label);
@@ -805,9 +805,49 @@ const stopIgnore = () => {
805
805
  const enabled = () => {
806
806
  return ignore;
807
807
  };
808
+ const unwrapItemString = async item => {
809
+ const {
810
+ resolve,
811
+ promise
812
+ } = Promise.withResolvers();
813
+ item.getAsString(resolve);
814
+ const value = await promise;
815
+ return {
816
+ kind: 'string',
817
+ type: item.type,
818
+ value
819
+ };
820
+ };
821
+ const unwrapItemFile = async item => {
822
+ // @ts-ignore
823
+ const file = await item.getAsFileSystemHandle();
824
+ return {
825
+ kind: 'file',
826
+ type: item.type,
827
+ value: file
828
+ };
829
+ };
830
+ const unknownItem = {
831
+ kind: 'unknown',
832
+ type: '',
833
+ value: ''
834
+ };
835
+ const unwrapItem = item => {
836
+ switch (item.kind) {
837
+ case 'file':
838
+ return unwrapItemFile(item);
839
+ case 'string':
840
+ return unwrapItemString(item);
841
+ default:
842
+ return unknownItem;
843
+ }
844
+ };
808
845
  const handleDataTransferFiles = event => {
846
+ if (!event.dataTransfer) {
847
+ return [];
848
+ }
809
849
  const items = [...event.dataTransfer.items];
810
- const promises = items.map(item => item.getAsFileSystemHandle());
850
+ const promises = items.map(unwrapItem);
811
851
  const ids = promises.map(promise => add(promise));
812
852
  return ids;
813
853
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/renderer-process",
3
- "version": "20.2.0",
3
+ "version": "20.3.0",
4
4
  "keywords": [
5
5
  "lvce-editor",
6
6
  "renderer-process"