diff --git a/.eslintrc.json b/.eslintrc.json
index ee92fe4..f2a5d26 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -3,6 +3,7 @@
"plugins": [
"react"
],
+ "parser": "babel-eslint",
"env": {
"browser": true
},
diff --git a/.travis.yml b/.travis.yml
index 6fc0e4a..5ed592e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,12 +2,17 @@ language: node_js
sudo: false
+addons:
+ apt:
+ packages:
+ - xvfb
+
notification:
email:
- wsj7552715@hotmail.com
node_js:
-- 4.0.0
+- 6.9.0
before_install:
- |
@@ -17,6 +22,11 @@ before_install:
exit
fi
phantomjs --version
+install:
+ - export DISPLAY=':99.0'
+ - Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
+ - npm install
+
script:
- |
@@ -25,7 +35,6 @@ script:
else
npm run $TEST_TYPE
fi
-
env:
matrix:
- TEST_TYPE=test
@@ -34,4 +43,4 @@ env:
matrix:
allow_failures:
- - env: "TEST_TYPE=saucelabs"
+ - env: "TEST_TYPE=saucelabs"
\ No newline at end of file
diff --git a/demo/CarouselDemo.jsx b/demo/CarouselDemo.jsx
index 7705dce..ca591eb 100644
--- a/demo/CarouselDemo.jsx
+++ b/demo/CarouselDemo.jsx
@@ -6,9 +6,8 @@
* All rights reserved.
*/
-const React = require('react');
-
-const Carousel = require('../src');
+import React from 'react';
+import Carousel from '../src';
class Demo extends React.Component {
@@ -48,4 +47,4 @@ class Demo extends React.Component {
}
}
-module.exports = Demo;
+export default Demo;
diff --git a/demo/index.js b/demo/index.js
index e6946a2..516baa8 100644
--- a/demo/index.js
+++ b/demo/index.js
@@ -6,5 +6,8 @@
* All rights reserved.
*/
- var Demo = require('./CarouselDemo');
- ReactDOM.render(, document.getElementById('UXCoreDemo'));
+import React from 'react';
+import ReactDOM from 'react-dom';
+import Demo from './CarouselDemo';
+
+ReactDOM.render(, document.getElementById('UXCoreDemo'));
diff --git a/package.json b/package.json
index f80cd62..a705f92 100644
--- a/package.json
+++ b/package.json
@@ -1,51 +1,55 @@
{
- "name": "uxcore-carousel",
- "version": "0.3.6",
- "description": "uxcore-carousel component for uxcore.",
- "repository": "https://github.com/uxcore/uxcore-carousel.git",
- "author": "eternaslky",
- "main": "build/index.js",
- "scripts": {
- "start": "uxcore-tools run start",
- "server": "uxcore-tools run server",
- "lint": "uxcore-tools run lint",
- "build": "uxcore-tools run build",
- "test": "uxcore-tools run test",
- "coverage": "uxcore-tools run coverage",
- "pub": "uxcore-tools run pub",
- "dep": "uxcore-tools run dep",
- "tnpm-dep": "uxcore-tools run tnpm-dep",
- "chrome": "uxcore-tools run chrome",
- "browsers": "uxcore-tools run browsers",
- "saucelabs": "uxcore-tools run saucelabs",
- "update": "uxcore-tools run update"
- },
- "bugs": {
- "url": "http://github.com/uxcore/uxcore-carousel/issues"
- },
- "keywords": [
- "react",
- "react-component",
- "uxcore-carousel",
- "Carousel",
- ""
- ],
- "devDependencies": {
- "console-polyfill": "^0.2.2",
- "es5-shim": "^4.5.8",
- "expect.js": "~0.3.1",
- "kuma-base": "1.x",
- "react": "0.14.x",
- "react-addons-test-utils": "0.14.x",
- "react-dom": "0.14.x",
- "uxcore-kuma": "2.x",
- "uxcore-tools": "0.2.x"
- },
- "dependencies": {
- "classnames": "^2.1.2",
- "object-assign": "^4.0.0",
- "react-slick": "0.14.8"
- },
- "contributors": [],
- "license": "MIT"
-}
\ No newline at end of file
+ "name": "uxcore-carousel",
+ "version": "0.3.6",
+ "description": "uxcore-carousel component for uxcore.",
+ "repository": "https://github.com/uxcore/uxcore-carousel.git",
+ "author": "eternaslky",
+ "main": "build/index.js",
+ "scripts": {
+ "start": "uxcore-tools run start",
+ "server": "uxcore-tools run server",
+ "lint": "uxcore-tools run lint",
+ "build": "uxcore-tools run build",
+ "test": "uxcore-tools run test",
+ "coverage": "uxcore-tools run coverage",
+ "pub": "uxcore-tools run pub",
+ "dep": "uxcore-tools run dep",
+ "tnpm-dep": "uxcore-tools run tnpm-dep",
+ "chrome": "uxcore-tools run chrome",
+ "browsers": "uxcore-tools run browsers",
+ "saucelabs": "uxcore-tools run saucelabs",
+ "update": "uxcore-tools run update",
+ "tnpm-update": "uxcore-tools run tnpm-update"
+ },
+ "bugs": {
+ "url": "http://github.com/uxcore/uxcore-carousel/issues"
+ },
+ "keywords": [
+ "react",
+ "react-component",
+ "uxcore-carousel",
+ "Carousel",
+ ""
+ ],
+ "devDependencies": {
+ "console-polyfill": "^0.2.2",
+ "enzyme": "^3.0.0",
+ "enzyme-adapter-react-15": "^1.0.0",
+ "es5-shim": "^4.5.8",
+ "expect.js": "~0.3.1",
+ "kuma-base": "1.x",
+ "react": "15.x",
+ "react-addons-test-utils": "^15.6.2",
+ "react-dom": "15.x",
+ "react-test-renderer": "15.x",
+ "uxcore-kuma": "*",
+ "uxcore-tools": "0.2.x"
+ },
+ "dependencies": {
+ "classnames": "^2.1.2",
+ "prop-types": "15.x",
+ "react-slick": "0.14.8"
+ },
+ "contributors": [],
+ "license": "MIT"
+}
diff --git a/src/Carousel.jsx b/src/Carousel.jsx
index 4c72bef..df1a12f 100644
--- a/src/Carousel.jsx
+++ b/src/Carousel.jsx
@@ -9,6 +9,11 @@
// matchMedia polyfill for
// https://github.com/WickyNilliams/enquire.js/issues/82
+import classnames from 'classnames';
+import React from 'react';
+import PropTypes from 'prop-types';
+import Slick from 'react-slick';
+
if (typeof window !== 'undefined') {
const matchMediaPolyfill = function matchMediaPolyfill() {
return {
@@ -22,12 +27,24 @@ if (typeof window !== 'undefined') {
window.matchMedia = window.matchMedia || matchMediaPolyfill;
}
-const Slick = require('react-slick');
-const classnames = require('classnames');
-const React = require('react');
-
-
class Carousel extends React.Component {
+ static displayName = 'Carousel';
+ static propTypes = {
+ centerDots: PropTypes.bool,
+ children: PropTypes.node,
+ };
+ static defaultProps = {
+ prefixCls: 'kuma-carousel',
+ largeArrowsAndDots: false,
+ dots: true,
+ cssEase: 'ease-out',
+ infinite: true,
+ speed: 500,
+ slidesToShow: 1,
+ centerDots: true,
+ slidesToScroll: 1,
+ arrows: 'hover',
+ };
processChildren() {
const me = this;
@@ -40,8 +57,8 @@ class Carousel extends React.Component {
render() {
const me = this;
-
const { className, prefixCls, centerDots, largeArrowsAndDots, ...props } = me.props;
+
props.arrows = !!props.arrows;
return (
@@ -62,26 +79,5 @@ class Carousel extends React.Component {
}
}
-Carousel.defaultProps = {
- prefixCls: 'kuma-carousel',
- largeArrowsAndDots: false,
- dots: true,
- cssEase: 'ease-out',
- infinite: true,
- speed: 500,
- slidesToShow: 1,
- centerDots: true,
- slidesToScroll: 1,
- arrows: 'hover'
-};
-
-
-// http://facebook.github.io/react/docs/reusable-components.html
-Carousel.propTypes = {
- centerDots: React.PropTypes.bool,
- children: React.PropTypes.node,
-};
-
-Carousel.displayName = 'Carousel';
+export default Carousel;
-module.exports = Carousel;
diff --git a/src/index.js b/src/index.js
index ca23f4a..eac93a2 100644
--- a/src/index.js
+++ b/src/index.js
@@ -6,4 +6,6 @@
* All rights reserved.
*/
-module.exports = require('./Carousel');
\ No newline at end of file
+import Carousel from './Carousel';
+
+export default Carousel;