From b448914ec5a769b5e7358a3fb0a8f7903ed4caec Mon Sep 17 00:00:00 2001 From: Alvaro Leal Date: Mon, 29 May 2023 17:43:48 +0200 Subject: [PATCH] Fix drag shapefile to upload --- src/components/shape-file-uploader/component.jsx | 13 ++++++++++--- src/utils/analyze-areas-utils.js | 4 ++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/components/shape-file-uploader/component.jsx b/src/components/shape-file-uploader/component.jsx index 8b7d34e14..2487c3e1c 100644 --- a/src/components/shape-file-uploader/component.jsx +++ b/src/components/shape-file-uploader/component.jsx @@ -12,9 +12,16 @@ import { ReactComponent as AddShapeIcon } from 'icons/add_shape_icon.svg'; function ShapeFileUploader({ sizeWarning, view, onError, onSuccess }) { const t = useT(); - const { getRootProps, getInputProps, rootRef } = useDropzone({ - onDrop: useCallback(() => { - featureCollectionFromShape(rootRef.current, view, onSuccess, onError); + const { getRootProps, getInputProps } = useDropzone({ + onDrop: useCallback((files) => { + if (!files || !files[0]) { + console.error('No file provided'); + return; + } + + const formData = new FormData(); + formData.append('file', files[0]); + featureCollectionFromShape(formData, view, onSuccess, onError); }), }); diff --git a/src/utils/analyze-areas-utils.js b/src/utils/analyze-areas-utils.js index e5fc7288e..e965dffae 100644 --- a/src/utils/analyze-areas-utils.js +++ b/src/utils/analyze-areas-utils.js @@ -32,7 +32,7 @@ export function createHashFromGeometry(geometry) { return sha1(flatRings.toString()); } -export function featureCollectionFromShape(input, view, onSucces, onError) { +export function featureCollectionFromShape(body, view, onSucces, onError) { const generateRequestParams = { filetype: 'shapefile', publishParameters: JSON.stringify({ @@ -45,7 +45,7 @@ export function featureCollectionFromShape(input, view, onSucces, onError) { 'https://www.arcgis.com/sharing/rest/content/features/generate', { query: generateRequestParams, - body: input, + body, method: 'post', responseType: 'json', }