1.0.6 • Published 4 years ago

react-timeline-range-slider-with-disabled v1.0.6

Weekly downloads
12
License
MIT
Repository
github
Last release
4 years ago

Original Component

https://github.com/lizashkod/react-timeline-range-slider

react-timeline-range-slider

demo gif

Installation

 npm i react-timeline-range-slider-with-disabled

Props

PropTypeDefaultDescription
timelineIntervalarraystartOfToday(), endOfToday()Interval to display
selectedIntervalarraynew Date(), addHours(new Date(), 1)Selected interval inside the timeline
disabledIntervalsarray[]Array of disabled intervals inside the timeline
containerClassNamestringClassName of the wrapping container
stepnumber48Number of milliseconds between steps
ticksNumbernumber1800000Number of steps on the timeline (the default value is 30 minutes)
errorboolfalseIs the selected interval is not valid
disabledboolfalseDisable Slide
onUpdateCallbackfunction
onChangeCallbackfunction

Example

Live demo

import React from 'react'  
import { endOfToday, format, set } from 'date-fns' 
import TimeRange from 'react-timeline-range-slider'  

const now = new Date()
const getTodayAtSpecificHour = (hour = 12) =>
	set(now, { hours: hour, minutes: 0, seconds: 0, milliseconds: 0 })

const selectedStart = getTodayAtSpecificHour()
const selectedEnd = getTodayAtSpecificHour(14)

const startTime = getTodayAtSpecificHour(7)
const endTime = endOfToday()

const disabledIntervals = [
  { start: getTodayAtSpecificHour(16), end: getTodayAtSpecificHour(17) },
  { start: getTodayAtSpecificHour(7), end: getTodayAtSpecificHour(12) },
  { start: getTodayAtSpecificHour(20), end: getTodayAtSpecificHour(24) }
]

class App extends React.Component {  
  state = {  
    error: false,  
    selectedInterval: [selectedStart, selectedEnd],  
  }
	
  errorHandler = ({ error }) => this.setState({ error })  

  onChangeCallback = selectedInterval => this.setState({ selectedInterval })  

  render() {  
    const { selectedInterval, error } = this.state  
      return (  
        <TimeRange
          error={error}  
          ticksNumber={36}  
          selectedInterval={selectedInterval}  
          timelineInterval={[startTime, endTime]}  
          onUpdateCallback={this.errorHandler}  
          onChangeCallback={this.onChangeCallback}
          disabledIntervals={disabledIntervals}  
        />
      )  
  }  
}  

export default App