Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 0bb3334

Browse files
committedNov 15, 2020
feat: 2.0.1 done
1 parent 59fe639 commit 0bb3334

28 files changed

+1123
-1196
lines changed
 

‎.babelrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
[
44
"@babel/preset-env",
55
{
6-
"loose": true,
6+
"useBuiltIns": "usage",
77
"modules": false,
88
"targets": "> 0.25%, not dead"
99
}

‎.eslintignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
node_modules/*
22
dist/*
3+
example/index.js
4+
webpack.config.js
5+
rollup.config.js

‎.eslintrc

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
{
22
"parser": "@typescript-eslint/parser",
3-
"plugins": ["@typescript-eslint", "react", "jsx-a11y", "import"],
4-
"extends": [
5-
"airbnb",
6-
"eslint:recommended",
7-
"plugin:@typescript-eslint/eslint-recommended",
8-
"plugin:@typescript-eslint/recommended"
9-
],
3+
"parserOptions": {
4+
"sourceType": "module"
5+
},
6+
"plugins": ["@typescript-eslint", "prettier"],
7+
"extends": ["eslint:recommended", "plugin:react/recommended", "plugin:@typescript-eslint/recommended"],
8+
"rules": {
9+
"prettier/prettier": "error"
10+
},
1011
"env": {
1112
"browser": true
13+
},
14+
"settings": {
15+
"react": {
16+
"version": "detect" // https://github.com/yannickcr/eslint-plugin-react#configuration
17+
}
1218
}
1319
}

‎.npmignore

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,13 @@
22
.vscode
33
.git*
44

5+
src
56
example
67
node_modules
78
npm-debug.log
89
yarn-debug.log
9-
yarn-error.log
10+
yarn-error.log
11+
demo.gif
12+
rollup.config.js
13+
webpack.config.js
14+
tsconfig.json

‎.prettierignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
dist
22
src
33
example
4-
rollup.config.js
54
webpack.config.js
65
*.json
7-
*.md
6+
*.md
7+
.babelrc

‎.prettierrc

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"tabWidth": 2,
3+
"singleQuote": true,
4+
"printWidth": 120,
5+
"bracketSpacing": true,
6+
"jsxBracketSameLine": true,
7+
"useTabs": false,
8+
"semi": true,
9+
"requirePragma": false,
10+
"proseWrap": "preserve",
11+
"htmlWhitespaceSensitivity": "ignore",
12+
"endOfLine": "auto",
13+
"trailingComma": "none"
14+
}

‎CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Change Log
22

3+
2.0.0 (November 15, 2020)
4+
- development by typescript
5+
- migration functional component
6+
37
1.0.4 (June 22, 2020)
48
- add 'onClick' props.
59
- can handle callback when image was clicked

‎README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
[license-image]: https://img.shields.io/badge/license-MIT-blue.svg
1111
[license-url]: https://github.com/kimcoder/react-simple-image-slider/blob/master/LICENSE
1212

13-
Simple ImageSlider Component for ReactJS v16.0<br>
13+
Simple ImageSlider Component for ReactJS v16.13<br>
1414
- Just Two Elements will be used. (for display images)
1515
- Support GPU Render, by default.
1616
- Support Image Preload.
@@ -103,7 +103,7 @@ npm run build:watch // build watch mode
103103
// yarn
104104
yarn example
105105
yarn build
106-
yarn buidl:watch
106+
yarn build:watch
107107
```
108108
If you want to run a test app, should build before do that.<br>
109109

‎example/App.jsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import SimpleImageSlider from "..";
1515

1616
class App extends React.Component {
1717
listSubHeader = <ListSubheader><h1>Slider Settings</h1></ListSubheader>;
18-
1918
toggleOptions = ["useGPURender", "showNavs", "showBullets"];
2019

2120
images = [

‎example/index.js

Lines changed: 30 additions & 42 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎index.d.ts

Lines changed: 0 additions & 30 deletions
This file was deleted.

‎package-lock.json

Lines changed: 692 additions & 711 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎package.json

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
{
22
"name": "react-simple-image-slider",
3-
"version": "2.0.0",
3+
"version": "2.0.1",
44
"description": "simple image slider component for react",
5-
"main": "dist/ImageSlider.js",
5+
"main": "dist/index.js",
66
"scripts": {
7-
"example": "webpack-dev-server --inline --mode development",
7+
"example": "webpack-dev-server",
8+
"example:deploy": "webpack --config webpack.config.js",
9+
"dev": "rollup -c --watch & npm run example",
810
"build": "rollup -c",
9-
"build:watch": "rollup -c --watch",
10-
"prebuild": "rm -rf dist"
11+
"prebuild": "rm -rf dist",
12+
"lint": "eslint .",
13+
"lint:fix": "eslint --fix .",
14+
"prettier": "prettier --check .",
15+
"prettier:fix": "prettier --write ."
1116
},
1217
"keywords": [
1318
"reactjs",
@@ -31,36 +36,29 @@
3136
"url": "https://github.com/kimcoder/react-simple-image-slider/issues"
3237
},
3338
"homepage": "https://github.com/kimcoder/react-simple-image-slider#readme",
34-
"dependencies": {
35-
"@babel/runtime": "^7.0.0",
36-
"prop-types": "^15.6.2"
37-
},
39+
"dependencies": {},
3840
"devDependencies": {
3941
"@babel/core": "^7.11.4",
40-
"@babel/eslint-parser": "^7.11.4",
41-
"@babel/eslint-plugin": "^7.11.3",
4242
"@babel/plugin-proposal-class-properties": "^7.10.4",
4343
"@babel/plugin-transform-runtime": "^7.11.0",
44-
"@babel/polyfill": "^7.10.4",
4544
"@babel/preset-env": "^7.11.0",
4645
"@babel/preset-react": "^7.10.4",
4746
"@babel/preset-typescript": "^7.10.4",
4847
"@material-ui/core": "^4.11.0",
48+
"@rollup/plugin-babel": "^5.2.1",
49+
"@rollup/plugin-image": "^2.0.5",
50+
"@rollup/plugin-typescript": "^6.1.0",
51+
"@typescript-eslint/eslint-plugin": "^4.7.0",
4952
"@typescript-eslint/parser": "^3.10.1",
5053
"babel-loader": "^8.0.2",
51-
"eslint": "^7.7.0",
52-
"eslint-config-airbnb": "^18.2.0",
53-
"eslint-plugin-import": "^2.22.0",
54-
"eslint-plugin-jsx-a11y": "^6.3.1",
54+
"eslint": "^7.13.0",
55+
"eslint-plugin-prettier": "^3.1.4",
5556
"eslint-plugin-react": "^7.20.6",
56-
"eslint-plugin-react-hooks": "^4.1.0",
57-
"prettier": "^2.1.1",
57+
"gh-pages": "^3.1.0",
58+
"prettier": "^2.1.2",
5859
"react": "^16.13.1",
5960
"react-dom": "^16.13.1",
6061
"rollup": "^2.26.5",
61-
"rollup-plugin-babel": "^4.4.0",
62-
"rollup-plugin-img": "^1.1.0",
63-
"rollup-plugin-typescript2": "^0.27.2",
6462
"typescript": "^4.0.2",
6563
"webpack": "^4.44.1",
6664
"webpack-cli": "^3.3.12",

‎rollup.config.js

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,16 @@
1-
import babel from "rollup-plugin-babel";
2-
import image from "rollup-plugin-img";
3-
import typescript from 'rollup-plugin-typescript2';
4-
import pkg from "./package.json";
1+
import { getBabelOutputPlugin } from '@rollup/plugin-babel';
2+
import image from '@rollup/plugin-image';
3+
import typescript from '@rollup/plugin-typescript';
4+
import babelConfig from './babel.config';
55

6-
const external = id => !id.startsWith("/") && !id.startsWith(".");
6+
const external = (id) => !id.startsWith('/') && !id.startsWith('.');
77

88
export default {
9-
input: "src/index.ts",
10-
output: {
11-
file: pkg.main,
12-
format: "esm",
13-
},
14-
plugins: [
15-
babel({ runtimeHelpers: true }),
16-
image({ limit: 1000 }),
17-
typescript({
18-
tsconfig: 'tsconfig.json',
19-
tsconfigOverride: {
20-
include: [ 'src/**/*' ],
21-
exclude: [ 'node_modules', 'example' ]
22-
}
23-
})
24-
],
25-
external,
9+
input: 'src/index.ts',
10+
output: {
11+
dir: 'dist',
12+
format: 'esm'
13+
},
14+
plugins: [typescript(), getBabelOutputPlugin({ presets: ['@babel/preset-env'] }), image({ limit: 1000 })],
15+
external
2616
};

‎src/ImageSlider.jsx

Lines changed: 0 additions & 161 deletions
This file was deleted.

‎src/ImageSlider.tsx

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
import React from "react";
2+
import ImagePreLoader from "./ImageSliderPreLoader";
3+
import styles from "./ImageSliderStyle";
4+
import ImageSliderNavigation, { ImageSliderNavDirection, ImageSliderNavStyle } from './ImageSliderNavigation';
5+
6+
export type SimpleImageSliderProps = {
7+
width: number | string;
8+
height: number | string;
9+
images: Array<{ url: string }>;
10+
style?: React.CSSProperties;
11+
showNavs: boolean;
12+
showBullets: boolean;
13+
slideDuration?: number;
14+
bgColor?: string;
15+
useGPURender?: boolean;
16+
navStyle?: ImageSliderNavStyle;
17+
onClick?: (idx: number, event: React.SyntheticEvent) => void;
18+
onClickNav?: (toRight: boolean) => void;
19+
onClickBullets?: (idx: number) => void;
20+
onStartSlide?: (idx: number, length: number) => void;
21+
onCompleteSlide?: (idx: number, length: number) => void;
22+
};
23+
24+
const SimpleImageSlider: React.FC<SimpleImageSliderProps> = ({
25+
width,
26+
height,
27+
images,
28+
showNavs,
29+
showBullets,
30+
style = undefined,
31+
slideDuration = 0.5,
32+
bgColor = '#000',
33+
useGPURender = true,
34+
navStyle = ImageSliderNavStyle.NORMAL,
35+
onClick = undefined,
36+
onClickNav = undefined,
37+
onClickBullets = undefined,
38+
onStartSlide = undefined,
39+
onCompleteSlide = undefined,
40+
}: SimpleImageSliderProps) => {
41+
const rootStyle: React.CSSProperties = React.useMemo(() => (styles.getRootContainer(width, height, bgColor)), [width, height, bgColor]);
42+
const [slideIdx, setSlideIdx] = React.useState(0);
43+
const [slideDirection, setSlideDirection] = React.useState(ImageSliderNavDirection.RIGHT);
44+
const [isSliding, setIsSliding] = React.useState(false);
45+
const [currentSliderStyle, setCurrentSlideStyle] = React.useState(styles.getImageSlide(images[0].url, slideDuration, 0, useGPURender));
46+
const [nextSliderStyle, setNextSliderStyle] = React.useState(styles.getImageSlide(images[1].url, slideDuration, 1, useGPURender));
47+
48+
const handleClick = React.useCallback((event: React.SyntheticEvent) => {
49+
onClick && onClick(slideIdx, event);
50+
}, [slideIdx]);
51+
52+
const handleClickNav = React.useCallback((direction: ImageSliderNavDirection) => () => {
53+
if (isSliding) {
54+
return;
55+
}
56+
57+
onClickNav && onClickNav(true);
58+
slide(direction === ImageSliderNavDirection.RIGHT ? slideIdx + 1 : slideIdx - 1);
59+
}, [slideIdx, isSliding]);
60+
61+
const handleClickBullets = React.useCallback((idx: number) => () => {
62+
console.log(idx , slideIdx, isSliding);
63+
if (idx === slideIdx || isSliding) {
64+
return;
65+
}
66+
67+
onClickBullets && onClickBullets(idx);
68+
slide(idx);
69+
}, [slideIdx, isSliding]);
70+
71+
const slide = (idx: number) => {
72+
const toNext: boolean = idx > slideIdx;
73+
const currentUrl: string = images[slideIdx].url;
74+
const nextUrl: string = images[idx].url;
75+
const nextReadyX: 1 | -1 = toNext ? 1 : -1;
76+
77+
setSlideIdx(idx);
78+
setSlideDirection(idx > slideIdx ? ImageSliderNavDirection.RIGHT : ImageSliderNavDirection.LEFT);
79+
setCurrentSlideStyle(styles.getImageSlide(currentUrl, 0, 0, useGPURender));
80+
setNextSliderStyle(styles.getImageSlide(nextUrl, 0, nextReadyX, useGPURender));
81+
setIsSliding(true);
82+
83+
onStartSlide && onStartSlide(idx + 1, images.length);
84+
idx + 2 < images.length && ImagePreLoader.load(images[idx + 2].url);
85+
};
86+
87+
React.useEffect(() => {
88+
if (isSliding) {
89+
setTimeout(() => {
90+
const toRight: boolean = slideDirection === ImageSliderNavDirection.RIGHT;
91+
const currentUrl: string = images[toRight ? slideIdx - 1 : slideIdx + 1].url;
92+
const nextUrl: string = images[slideIdx].url;
93+
const currentOffetX: 1 | -1 = toRight ? -1 : 1;
94+
95+
setCurrentSlideStyle(styles.getImageSlide(currentUrl, slideDuration, currentOffetX, useGPURender));
96+
setNextSliderStyle(styles.getImageSlide(nextUrl, slideDuration, 0, useGPURender));
97+
}, 50);
98+
}
99+
}, [slideIdx, isSliding]);
100+
101+
const handleSlideEnd = React.useCallback(() => {
102+
setCurrentSlideStyle(styles.getImageSlide(images[slideIdx].url, 0, 0, useGPURender));
103+
setIsSliding(false);
104+
onCompleteSlide && onCompleteSlide(slideIdx + 1, images.length);
105+
}, [slideIdx]);
106+
107+
return (
108+
<div style={{ ...rootStyle, ...style }}>
109+
<div style={styles.getSubContainer(width, height)}>
110+
{/* Render Slider */}
111+
<div style={styles.ImageSlider} onClick={handleClick}>
112+
<div style={currentSliderStyle} onTransitionEnd={handleSlideEnd}/>
113+
<div style={nextSliderStyle}/>
114+
</div>
115+
116+
{/* Render Navigation */}
117+
{showNavs && images.length > 0 && slideIdx > 0 && (
118+
<ImageSliderNavigation
119+
direction={ImageSliderNavDirection.LEFT}
120+
navStyle={navStyle}
121+
onClickNav={handleClickNav}
122+
/>
123+
)}
124+
{showNavs && images.length > 0 && slideIdx < images.length - 1 && (
125+
<ImageSliderNavigation
126+
direction={ImageSliderNavDirection.RIGHT}
127+
navStyle={navStyle}
128+
onClickNav={handleClickNav}
129+
/>
130+
)}
131+
132+
{/* Render Bullets */}
133+
{showBullets && images.length > 0 && (
134+
<div style={styles.getBulletContainer(images.length)}>
135+
{Array.from(Array(images.length).keys()).map((e) => (
136+
<button
137+
key={`bullet-${e}`}
138+
type="button"
139+
data-id={`bullet-${e}`}
140+
style={e === slideIdx ? styles.BulletActive : styles.BulletNormal}
141+
onClick={handleClickBullets(e)}
142+
/>))
143+
}
144+
</div>
145+
)}
146+
</div>
147+
</div>
148+
);
149+
};
150+
151+
export default SimpleImageSlider;

‎src/ImageSliderData.js

Lines changed: 0 additions & 23 deletions
This file was deleted.

‎src/ImageSliderNavigation.tsx

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import React from "react";
2+
import styles from "./ImageSliderStyle";
3+
import ImageNavArrowLeft1 from "./images/arrow-left-1.png";
4+
import ImageNavArrowLeft2 from "./images/arrow-left-2.png";
5+
import ImageNavArrowRight1 from "./images/arrow-right-1.png";
6+
import ImageNavArrowRight2 from "./images/arrow-right-2.png";
7+
8+
export enum ImageSliderNavStyle {
9+
NORMAL = 1,
10+
BOLD = 2
11+
}
12+
13+
export enum ImageSliderNavDirection {
14+
LEFT = 'left',
15+
RIGHT = 'right'
16+
}
17+
18+
type ImageSliderNavigationProps = {
19+
navStyle: ImageSliderNavStyle;
20+
direction: ImageSliderNavDirection;
21+
onClickNav: (direction: ImageSliderNavDirection) => (event: React.SyntheticEvent<HTMLButtonElement>) => void;
22+
};
23+
24+
const altNavArrowLeft = "slide to left";
25+
const altNavArrowRight = "slide to right";
26+
const images: { [key: string]: string } = {
27+
[`image-${ImageSliderNavDirection.LEFT}-${ImageSliderNavStyle.NORMAL}`]: ImageNavArrowLeft1,
28+
[`image-${ImageSliderNavDirection.RIGHT}-${ImageSliderNavStyle.NORMAL}`]: ImageNavArrowRight1,
29+
[`image-${ImageSliderNavDirection.LEFT}-${ImageSliderNavStyle.BOLD}`]: ImageNavArrowLeft2,
30+
[`image-${ImageSliderNavDirection.RIGHT}-${ImageSliderNavStyle.BOLD}`]: ImageNavArrowRight2
31+
};
32+
33+
const ImageSliderNavigation: React.FC<ImageSliderNavigationProps> = (props: ImageSliderNavigationProps) => {
34+
return (
35+
<button
36+
type="button"
37+
style={props.direction === ImageSliderNavDirection.LEFT ? styles.NavLeft : styles.NavRight}
38+
onClick={props.onClickNav(props.direction)}
39+
>
40+
<img
41+
src={images[`image-${props.direction}-${props.navStyle}`]}
42+
alt={props.direction === ImageSliderNavDirection.LEFT ? altNavArrowLeft : altNavArrowRight}
43+
/>
44+
</button>
45+
)
46+
};
47+
48+
export default ImageSliderNavigation;

‎src/ImageSliderPreLoader.js

Lines changed: 0 additions & 32 deletions
This file was deleted.

‎src/ImageSliderPreLoader.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
const ImageSliderPreLoader = (() => {
2+
const loadedUrl: { [key: string]: boolean } = {};
3+
const loadQueue: Array<string> = [];
4+
const loaderCount = 3;
5+
const loaderPool: Array<HTMLImageElement> = new Array(loaderCount).fill(0).map(() => new Image());
6+
7+
return {
8+
load: (url: string) => {
9+
if (!url || loadedUrl[url]) {
10+
return;
11+
}
12+
13+
if (loaderPool.length === 0) {
14+
loadQueue.push(url);
15+
} else {
16+
const imageLoader: HTMLImageElement = loaderPool.shift() as HTMLImageElement;
17+
18+
imageLoader.src = url;
19+
imageLoader.onload = () => {
20+
loadedUrl[url] = true;
21+
if (loadQueue.length > 0) {
22+
imageLoader.src = loadQueue.shift() as string;
23+
} else {
24+
loaderPool.push(imageLoader);
25+
}
26+
};
27+
}
28+
}
29+
};
30+
})();
31+
32+
export default ImageSliderPreLoader;

‎src/ImageSliderPropTypes.js

Lines changed: 0 additions & 49 deletions
This file was deleted.

‎src/ImageSliderStyle.js

Lines changed: 0 additions & 81 deletions
This file was deleted.

‎src/ImageSliderStyle.ts

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
const basic = {
2+
display: "block",
3+
margin: "0",
4+
padding: "0",
5+
border: "0",
6+
};
7+
const basicRootContainer = {
8+
position: "absolute",
9+
left: 0,
10+
top: 0,
11+
width: "100%",
12+
height: "100%",
13+
};
14+
const basicSlide = {
15+
position: "absolute",
16+
left: 0,
17+
top: 0,
18+
width: "100%",
19+
height: "100%",
20+
backgroundSize: "cover",
21+
};
22+
const basicNav = {
23+
position: "absolute",
24+
top: "50%",
25+
cursor: "pointer",
26+
outline: "none",
27+
background: "none",
28+
};
29+
const bulletContainer = {
30+
position: "absolute",
31+
left: "50%",
32+
bottom: "15px",
33+
};
34+
const bulletSize = 15;
35+
const bulletMargin = 3;
36+
const basicBullet = {
37+
display: "inline-block",
38+
cursor: "pointer",
39+
outline: "none",
40+
background: "none",
41+
boxShadow: "1px 1px 1px 0px #1a1a1a",
42+
borderRadius: "50%",
43+
border: "1px solid #FFFFFF",
44+
width: `${bulletSize}px`,
45+
height: `${bulletSize}px`,
46+
marginLeft: `${bulletMargin}px`,
47+
marginRight: `${bulletMargin}px`,
48+
};
49+
50+
export default {
51+
ImageSlider: { ...basic, ...basicRootContainer } as React.CSSProperties,
52+
ImageSlideCurrent: { ...basicSlide, overflow: "hidden" } as React.CSSProperties,
53+
ImageSlideNext: { ...basicSlide, overflow: "hidden" } as React.CSSProperties,
54+
NavLeft: { ...basic, ...basicNav, left: "30px", marginTop: "-25px" } as React.CSSProperties,
55+
NavRight: { ...basic, ...basicNav, right: "30px", marginTop: "-25px" } as React.CSSProperties,
56+
BulletNormal: { ...basic, ...basicBullet } as React.CSSProperties,
57+
BulletActive: { ...basic, ...basicBullet, background: "#FFF" } as React.CSSProperties,
58+
59+
getRootContainer: (width: number | string, height: number | string, backgroundColor: string): React.CSSProperties => ({ ...basic,
60+
overflow: "hidden",
61+
width,
62+
height,
63+
backgroundColor,
64+
}) as React.CSSProperties,
65+
getSubContainer: (width: number | string, height: number | string): React.CSSProperties => ({ ...basic,
66+
position: "absolute",
67+
overflow: "hidden",
68+
width,
69+
height,
70+
}) as React.CSSProperties,
71+
getBulletContainer: (bulletLength: number): React.CSSProperties => ({ ...basic,
72+
...bulletContainer,
73+
marginLeft: `-${bulletLength * (bulletSize + bulletMargin * 2) / 2}px`
74+
}) as React.CSSProperties,
75+
getImageSlide: (url: string, duration: number, idx: number, isGpuRender: boolean): React.CSSProperties => ({ ...basicSlide,
76+
overflow: "hidden",
77+
transition: `${duration}s`,
78+
backgroundImage: `url(${url})`,
79+
transform: isGpuRender ? `translate3d(${idx * 100}%, 0px, 0px)` : `translate(${idx * 100}%, 0px)`,
80+
}) as React.CSSProperties,
81+
};

‎src/ImageSliderUtil.js

Lines changed: 0 additions & 6 deletions
This file was deleted.

‎src/global.d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
declare module '*.png' {
2+
const value: string;
3+
export = value;
4+
}

‎src/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import ImageSlider from './ImageSlider';
2+
3+
export default ImageSlider;

‎tsconfig.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
"module": "ESNext",
77
"moduleResolution": "node",
88
"esModuleInterop": true,
9-
"sourceMap": true,
109
"noImplicitAny": true,
1110
"noImplicitThis": true,
1211
"alwaysStrict": true,
@@ -18,7 +17,8 @@
1817

1918
"jsx": "react",
2019
"types": ["react"],
21-
"outDir": "dist"
20+
"rootDir": "src",
21+
"outDir": "dist",
2222
},
2323
"include": [
2424
"src/**/*",

‎webpack.config.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ const path = require("path");
22

33
module.exports = {
44
entry: {
5-
index: ["@babel/polyfill", "./example/App.jsx"],
5+
index: ["./example/App.jsx"],
66
},
77
output: {
88
filename: "[name].js",
@@ -20,6 +20,8 @@ module.exports = {
2020
],
2121
devServer: {
2222
contentBase: "./example",
23-
host: "0.0.0.0",
23+
host: "localhost",
24+
inline: true,
25+
open: true
2426
},
2527
};

0 commit comments

Comments
 (0)
Please sign in to comment.