import React from 'react'; import createClass from 'create-react-class'; import { Meta, Story } from '@storybook/react'; import timemachine from 'timemachine'; import DateSelect, { IDateSelectProps } from './DateSelect'; import Button from '../Button/Button'; export default { title: 'Controls/DateSelect', component: DateSelect, subcomponents: { 'DateSelect.CalendarMonth': DateSelect.CalendarMonth }, parameters: { docs: { description: { component: DateSelect.peek.description, }, }, layout: 'centered', }, args: DateSelect.defaultProps, } as Meta; export const Basic: Story = (args) => { timemachine.config({ dateString: 'December 25, 2018 13:12:59', }); const Component = createClass({ getInitialState() { return { selectedDate: null, }; }, handleSelectDate(date: any) { this.setState({ selectedDate: date, }); }, render() { const { selectedDate } = this.state; return (
selected date:{' '} {selectedDate && selectedDate.toLocaleDateString('en-US')}
); }, }); return ; }; /* Select Range */ export const SelectRange: Story = () => { timemachine.config({ dateString: 'December 25, 2018 13:12:59', }); const Component = createClass({ getInitialState() { return { selectMode: 'from', from: null, to: null, }; }, handleSelectDate(date: any) { const { selectMode } = this.state; this.setState({ selectMode: 'to', [selectMode]: date, }); }, handleReset() { this.setState({ selectMode: 'from', from: null, to: null, }); }, render() { const { selectMode, from, to } = this.state; return (
from: {from && from.toLocaleDateString('en-US')}, to:{' '} {to && to.toLocaleDateString('en-US')}
); }, }); return ; }; /* Disabled Days */ export const DisabledDays: Story = () => { timemachine.config({ dateString: 'December 25, 2018 13:12:59', }); function isPastDay(date: any) { const day = new Date(date.getTime()).setHours(0, 0, 0, 0); const today = new Date().setHours(0, 0, 0, 0); return day < today; } return (
); }; /* Initial Month */ export const InitialMonth: Story = () => { timemachine.config({ dateString: 'December 25, 2018 13:12:59', }); return (
); }; /* Mutiple Months */ export const MutipleMonths: Story = () => { timemachine.config({ dateString: 'December 25, 2018 13:12:59', }); return ( ); }; MutipleMonths.parameters = { layout: 'padded', }; /* Custom Modifiers */ export const CustomModifiers: Story = () => { timemachine.config({ dateString: 'December 25, 2018 13:12:59', }); return (
date.getDay() === 2, } as any } />
); }; /* Relative Font Size */ export const RelativeFontSize: Story = () => { timemachine.config({ dateString: 'December 25, 2018 13:12:59', }); const Component = createClass({ getInitialState() { return { selectedDate: null, }; }, handleSelectDate(date: any) { this.setState({ selectedDate: date, }); }, render() { const { selectedDate } = this.state; return (
selected date:{' '} {selectedDate && selectedDate.toLocaleDateString('en-US')}
); }, }); return ; }; /* Disable Slide Panel */ export const DisableSlidePanel: Story = () => { timemachine.config({ dateString: 'December 25, 2018 13:12:59', }); const Component = createClass({ getInitialState() { return { selectedDate: null, }; }, handleSelectDate(date: any) { this.setState({ selectedDate: date, }); }, render() { const { selectedDate } = this.state; return (
selected date:{' '} {selectedDate && selectedDate.toLocaleDateString('en-US')}
); }, }); return ; };