UNPKG

react-image-timeline-sixteen

Version:
108 lines (78 loc) 3.85 kB
# React Image Timeline An image-centric timeline component for React.js. View chronological events in a pleasant way. #### Features - Responsive & mobile-friendly - Easily customized - Gracefully handles overflow and non-uniform content - Lightweight (only CSS and SVG) #### View Example http://aaron9000.github.io/react-image-timeline/ #### Screenshot ![screenshot](https://github.com/aaron9000/react-image-timeline/blob/master/assets/screenshot.png) #### Add to Existing Project - `npm install moment --save` if needed - `npm install ramda --save` if needed - `npm install react-image-timeline --save` #### Usage ```js import ReactDOM from 'react-dom'; import Timeline from 'react-image-timeline'; require('react-image-timeline/dist/timeline.css'); ReactDOM.render(<Timeline events={events} />, document.getElementById('root')); ``` #### Sample Data [View Sample Data](https://gist.github.com/aaron9000/ca9600c9fc2e8c4b9a503b5789413852) #### Props | Key | Type | Required |--------------------------|--------------------------|--------------------------| | events | array<Event> | required | | reverseOrder | boolean | | | customStartLabel | component | | | customEndLabel | component | | | customHeader | component | | | customImageBody | component | | | customTextBody | component | | | customFooter | component | | #### Event | Key | Type | Required| |--------------------------|--------------------------|--------------------------| | date | date | required | | title | string | required | | imageUrl | string | required | | text | string | required | | onClick | function | | | buttonText | string | | | extras | object | | #### Custom Event Data To pass extra data into custom components, use the `extras` field on the `event` model. #### Custom Styles To customize the timeline styles, add CSS to override [timeline.css](https://github.com/aaron9000/react-image-timeline/blob/master/lib/timeline.css). #### Custom Dot Pattern The dots are defined in CSS using a [base64-encoded image](https://www.base64-image.de/). Encode a new image and override the corresponding CSS class. #### Custom Components For more advanced customization, you can pass in custom components to replace the defaults. Custom components will be passed an `event` model in props. ```js // A custom header to replace the default const CustomHeader = (props) => { // The corresponding "event" model const {title, extras} = props.event; // Custom data payload const {customField} = extras; // Use your own CSS return <div className="custom-header"> <h1>{title}</h1> <p>{customField}</p> </div>; }; ReactDOM.render(<Timeline events={events} customHeader={CustomHeader}/>, document.getElementById('root')); ``` #### Run Example Project ``` npm install npm run example ``` Then, visit [localhost:3000/example](http://localhost:3000/example) in your browser. #### Run Tests ``` npm run test ```