import React, { Component, useState } from 'react';
import { storiesOf } from '@storybook/react';
import TimePickerPanel from '../index';
import { TimePicker as BasicTimePicker, Button } from '../../index';
import { strings } from '@douyinfe/semi-foundation/timePicker/constants';
import { get } from 'lodash-es';
import Callbacks from './Callbacks';
import CustomTrigger from './CustomTrigger';
import DisabledTime from './DisabledTime';
let TimePicker;
const stories = storiesOf('timePicker', module);
// auto add scrollItemProps.cycled = false, prevent waiting indefinitely in snapshot testing
const TimePickerForTest = props => {
let scrollItemProps = {};
if (!props.scrollItemProps) {
scrollItemProps = { cycled: false };
} else {
scrollItemProps = { ...props.scrollItemProps, cycled: false };
}
return ;
};
const init = () => {
if (process.env.NODE_ENV === 'development') {
TimePicker = BasicTimePicker;
} else {
TimePicker = TimePickerForTest;
}
};
init();
stories.add('TimePickerPanel default', () => {
return (
console.log(val)} />
);
});
stories.add('基础使用', () => );
class Demo extends React.Component {
constructor() {
super();
this.state = {
value: null,
};
this.onChange = this.onChange.bind(this);
}
onChange(time) {
// console.log(time);
this.setState({ value: time });
}
render() {
return ;
}
}
stories.add('TimePickerPanel 受控组件', () => {
const Demo = () => {
const [value, setValue] = useState(new Date());
const onChange = (date, str) => setValue(date);
return (
);
};
return ;
});
function CustomDemo() {
const [open, setOpen] = useState(false);
const closePanel = () => setOpen(false);
const onOpenChange = open => {
setOpen(open);
console.log(open);
};
return (
close}
/>
);
}
stories.add('设置面板头部,底部', () => );
stories.add('不同format格式', () => );
stories.add('禁用时间选择', () => {
return ;
});
stories.add('设置步长', () => {
return ;
});
stories.add('inputReadOnly', () => {
return ;
});
stories.add('range picker', () => {
const RangePickerDemo = () => {
const log = (...args) => {
console.log(...args);
};
const disabledHM = { 3: [3, 6, 12, 24, 48], 9: [9, 18, 36] };
const disabledHMS = { 6: { 6: [6, 12, 24, 48] }, 18: { 18: [18, 36] } };
const defaultValue = ['10:11:12', '12:11:23'];
const [value, setValue] = useState(['10:11:12', '12:11:23']);
const disabledHours = () => [1, 2, 4, 8, 16];
const disabledMinutes = hours => get(disabledHM, [hours], []);
const disabledSeconds = (hours, seconds) => get(disabledHMS, [hours, seconds], []);
const onChange = (dates, str) => {
log(dates, str);
setValue(dates);
};
return (
);
};
return ;
});
stories.add(`callbacks`, () => );
stories.add(`custom trigger`, () => );
stories.add(`disabled time demos`, () => );
stories.add(`showClear`, () => {
function Demo() {
return (
<>
{ console.log('clear', ...args); }} />
{ console.log('clear', ...args); }} />
>
);
}
return ;
});