Skip to content

Commit 3a33b66

Browse files
authored
Merge pull request #10 from vaibhavbansal23/ssr-window-fix
ssr window issue fixed
2 parents 647404a + 577be8f commit 3a33b66

File tree

5 files changed

+55
-26
lines changed

5 files changed

+55
-26
lines changed

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "imagekitio-react",
3-
"version": "1.0.5",
3+
"version": "1.0.6",
44
"description": "React SDK for ImageKit.io which implements client-side upload and URL generation for use inside a react application.",
55
"scripts": {
66
"compile": "node_modules/.bin/babel src --out-dir lib --copy-files",

src/components/IKImage/IKImage.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React from 'react';
22
import ImageKitComponent from "../ImageKitComponent/ImageKitComponent";
33
import extractImageKitProps from '../../util/extractImageKitProps';
44

5-
export default class IKImage extends ImageKitComponent {
5+
class IKImage extends ImageKitComponent {
66
constructor(props, context) {
77
super(props, context);
88
this.imageRef = React.createRef();
@@ -95,4 +95,6 @@ export default class IKImage extends ImageKitComponent {
9595
}
9696
}
9797

98-
Image.propTypes = ImageKitComponent.propTypes;
98+
IKImage.propTypes = ImageKitComponent.propTypes;
99+
100+
export default IKImage;

src/util/urlParser.js

Lines changed: 47 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,49 @@
11
export function parseURL(url) {
2-
let parser = document.createElement('a'),
3-
searchObject = {},
4-
queries, split, i;
5-
// Let the browser do the work
6-
parser.href = url;
7-
// Convert query string to object
8-
queries = parser.search.replace(/^\?/, '').split('&');
9-
for( i = 0; i < queries.length; i++ ) {
10-
split = queries[i].split('=');
11-
searchObject[split[0]] = split[1];
12-
}
13-
return {
14-
protocol: parser.protocol,
15-
host: parser.host,
16-
hostname: parser.hostname,
17-
port: parser.port,
18-
pathname: parser.pathname,
19-
search: parser.search,
20-
searchObject: searchObject,
21-
hash: parser.hash
22-
};
2+
let parser;
3+
if(typeof document === 'undefined'){
4+
parser = parseUrlInNode(url);
5+
}else{
6+
parser = parseUrlInBrowser(url);
7+
}
8+
9+
return {
10+
protocol: parser.protocol,
11+
host: parser.host,
12+
hostname: parser.hostname,
13+
port: parser.port,
14+
pathname: parser.pathname,
15+
search: parser.search,
16+
searchObject: parser.searchObject,
17+
hash: parser.hash
18+
};
2319
}
20+
21+
function parseUrlInBrowser(urlToParse){
22+
var parser = document.createElement('a'),searchObject = {}, queries, split, i;
23+
// Let the browser do the work
24+
parser.href = urlToParse;
25+
// Convert query string to object
26+
queries = parser.search.replace(/^\?/, '').split('&');
27+
for( i = 0; i < queries.length; i++ ) {
28+
split = queries[i].split('=');
29+
searchObject[split[0]] = split[1];
30+
}
31+
parser.searchObject = searchObject;
32+
return parser;
33+
}
34+
35+
function parseUrlInNode(urlToParse){
36+
var url = require('url');
37+
38+
var parser = new URL(urlToParse);
39+
var searchObject = {}, queries, split, i;
40+
41+
// Convert query string to object
42+
queries = parser.search.replace(/^\?/, '').split('&');
43+
for( i = 0; i < queries.length; i++ ) {
44+
split = queries[i].split('=');
45+
searchObject[split[0]] = split[1];
46+
}
47+
parser.searchObject = searchObject;
48+
return parser;
49+
}

webpack.config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ module.exports = {
1111
library: 'imageKitReact',
1212
libraryTarget: 'umd',
1313
publicPath: '/dist/',
14-
umdNamedDefine: true
14+
umdNamedDefine: true,
15+
globalObject: 'this'
1516
},
1617
module: {
1718
rules: [{

0 commit comments

Comments
 (0)