Skip to content

Commit c209ff0

Browse files
committed
feat: suporrt SSR mode
1 parent 5c7cb1a commit c209ff0

6 files changed

+38
-15
lines changed

CHANGELOG.md

+19-9
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,34 @@
11
# Change Log
22

3-
2.0.0 (November 15, 2020)
3+
### 2.1.1 (June 16, 2021)
4+
5+
- fix issue in SSR mode
6+
7+
### 2.0.0 (November 15, 2020)
8+
49
- development by typescript
510
- migration functional component
611

7-
1.0.4 (June 22, 2020)
8-
- add 'onClick' props.
9-
- can handle callback when image was clicked
12+
### 1.0.4 (June 22, 2020)
13+
14+
- add 'onClick' props.
15+
- can handle callback when image was clicked
16+
17+
### 1.0.3 (March 30, 2020)
1018

11-
1.0.3 (March 30, 2020)
1219
- modify props types about width and height. ( number -> string or number )
1320
- can set value like this. '100%' or '100px' or 100
1421

15-
1.0.2 (October 08, 2018)
22+
### 1.0.2 (October 08, 2018)
23+
1624
- add index.d.ts (for typescript).
1725

18-
1.0.1 (September 20, 2018)
26+
### 1.0.1 (September 20, 2018)
27+
1928
- release component.
2029

21-
1.0.0 (September 7, 2018)
30+
### 1.0.0 (September 7, 2018)
31+
2232
- initial setup for development environment.
2333
- config rollup for making react component.
24-
- config webpack for local testing.
34+
- config webpack for local testing.

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ Simple ImageSlider Component for ReactJS v17<br>
1616
- Just Two Elements will be used. (for display images)
1717
- Support GPU Render, by default.
1818
- Support Image Preload.
19-
- Selectable Navgation Styles.
19+
- Support SSR. ( server-side-rendering )
20+
- Selectable Navigation Styles.
2021

2122
# Live demo
2223

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-simple-image-slider",
3-
"version": "2.0.4",
3+
"version": "2.1.1",
44
"description": "simple image slider component for react",
55
"main": "dist/index.js",
66
"scripts": {
@@ -44,7 +44,7 @@
4444
"@babel/preset-env": "^7.14.5",
4545
"@babel/preset-react": "^7.14.5",
4646
"@babel/preset-typescript": "^7.14.5",
47-
"@material-ui/core": "^4.11.0",
47+
"@material-ui/core": "^4.11.4",
4848
"@rollup/plugin-babel": "^5.2.1",
4949
"@rollup/plugin-image": "^2.0.5",
5050
"@rollup/plugin-typescript": "^6.1.0",

rollup.config.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export default {
88
input: 'src/index.ts',
99
output: {
1010
dir: 'dist',
11-
format: 'esm'
11+
format: 'cjs'
1212
},
1313
plugins: [typescript({ exclude: 'example/*' }), getBabelOutputPlugin({ presets: ['@babel/preset-env'] }), image({ limit: 1000 })],
1414
external

src/ImageSliderBullets.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import * as React from 'react';
1+
import React from 'react';
22
import styles from './ImageSliderStyle';
33

44
type Props = {

src/ImageSliderPreLoader.ts

+13-1
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,22 @@ const ImageSliderPreLoader = (() => {
22
const loadedUrl: { [key: string]: boolean } = {};
33
const loadQueue: Array<string> = [];
44
const loaderCount = 3;
5-
const loaderPool: Array<HTMLImageElement> = new Array(loaderCount).fill(0).map(() => new Image());
5+
let loaderPool: Array<HTMLImageElement>;
66

7+
const init = () => {
8+
if (typeof Image !== 'function') return;
9+
10+
loaderPool = new Array(loaderCount).fill(0).map(() => new Image());
11+
};
12+
13+
init();
714
return {
815
load: (url: string) => {
16+
if (!loaderPool) {
17+
init();
18+
return;
19+
}
20+
921
if (!url || loadedUrl[url]) {
1022
return;
1123
}

0 commit comments

Comments
 (0)