mirror of
https://github.com/ascribe/onion.git
synced 2024-11-15 09:35:10 +01:00
d23331d9b9
ReactS3FineUploader used to check the current url’s query params to determine which method it should use to upload, but this decision means the component is tightly coupled with react-router and history.js. A major pain point is having to propagate the location prop all the way down to this component even when it’s not necessary. Now, ReactS3FineUploader’s parent elements can either parse the current query params themselves or, if they have a location from react-router, simply use the location. Added a few utils to help parse url params.
62 lines
1.5 KiB
JavaScript
62 lines
1.5 KiB
JavaScript
'use strict';
|
|
|
|
import Q from 'q';
|
|
|
|
import AppConstants from '../constants/application_constants';
|
|
|
|
// TODO: Create Unittests that test all functions
|
|
|
|
export function status(response) {
|
|
if (response.status >= 200 && response.status < 300) {
|
|
return response;
|
|
}
|
|
throw new Error(response.json());
|
|
}
|
|
|
|
export function getCookie(name) {
|
|
let parts = document.cookie.split(';');
|
|
|
|
for(let i = 0; i < parts.length; i++) {
|
|
if(parts[i].indexOf(AppConstants.csrftoken + '=') > -1) {
|
|
return parts[i].split('=').pop();
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
|
|
Given a url for an image, this method fetches it and returns a promise that resolves to
|
|
a blob object.
|
|
It can be used to create a 64base encoded data url.
|
|
|
|
Taken from: http://jsfiddle.net/jan_miksovsky/yy7zs/
|
|
|
|
CURRENTLY NOT USED...
|
|
|
|
*/
|
|
export function fetchImageAsBlob(url) {
|
|
return Q.Promise((resolve, reject) => {
|
|
let xhr = new XMLHttpRequest();
|
|
|
|
xhr.open('GET', url, true);
|
|
|
|
// Ask for the result as an ArrayBuffer.
|
|
xhr.responseType = 'arraybuffer';
|
|
|
|
xhr.onreadystatechange = function() {
|
|
if(xhr.readyState === 4 && xhr.status >= 400) {
|
|
reject(xhr.statusText);
|
|
}
|
|
};
|
|
|
|
xhr.onload = function() {
|
|
// Obtain a blob: URL for the image data.
|
|
let arrayBufferView = new Uint8Array(this.response);
|
|
let blob = new Blob([arrayBufferView], {type: 'image/jpeg'});
|
|
resolve(blob);
|
|
};
|
|
|
|
xhr.send();
|
|
});
|
|
}
|