Skip to content

Commit 8ccb1c1

Browse files
ssr window issue fixed
1 parent 647404a commit 8ccb1c1

File tree

5 files changed

+31
-26
lines changed

5 files changed

+31
-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: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
"dependencies": {
5050
"imagekit-javascript": "^1.2.1",
5151
"prop-types": "^15.7.2",
52-
"react-scripts": "3.4.0"
52+
"react-scripts": "3.4.0",
53+
"url-parse": "^1.4.7"
5354
}
5455
}

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: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
1+
var Url = require('url-parse'); //supports both browser and node
2+
Url('hostname', {});
3+
14
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-
};
5+
let parsedUrl = Url(url);
6+
let searchObject = {}, queries, split, i;
7+
8+
// Convert query string to object
9+
queries = parsedUrl.query.replace(/^\?/, '').split('&');
10+
for( i = 0; i < queries.length; i++ ) {
11+
split = queries[i].split('=');
12+
searchObject[split[0]] = split[1];
13+
}
14+
return {
15+
protocol: parsedUrl.protocol,
16+
host: parsedUrl.host,
17+
hostname: parsedUrl.hostname,
18+
port: parsedUrl.port,
19+
pathname: parsedUrl.pathname,
20+
search: parsedUrl.query,
21+
searchObject: searchObject,
22+
hash: parsedUrl.hash
23+
};
2324
}

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: 'typeof self !== \'undefined\' ? self : this',
1516
},
1617
module: {
1718
rules: [{

0 commit comments

Comments
 (0)