11import { Args , Meta , StoryObj } from "@storybook/react-vite" ;
22import { DateTimePicker } from "./DateTimePicker" ;
3- import { getPredefinedTimePeriodsForDateTimePicker } from "./utils" ;
3+ import { DateRangeListItem , getPredefinedTimePeriodsForDateTimePicker } from "./utils" ;
4+ import dayjs from "dayjs" ;
45
56const meta : Meta < typeof DateTimePicker > = {
67 component : DateTimePicker ,
@@ -20,7 +21,7 @@ type Story = StoryObj<typeof meta>;
2021
2122export const Default : Story = {
2223 args : {
23- predefinedDatesList : [ ] ,
24+ predefinedTimesList : [ ] ,
2425 } ,
2526 render : ( args : Args ) => {
2627 const endDate = args . endDate ? new Date ( args . endDate ) : undefined ;
@@ -42,14 +43,11 @@ export const Default: Story = {
4243 } ,
4344} ;
4445
45- export const DateRangeWithMaxRange : Story = {
46- args : {
47- maxRangeLength : 15 ,
48- predefinedDatesList : [ ] ,
49- } ,
46+ export const PredefinedTimesDefault : Story = {
5047 render : ( args : Args ) => {
5148 const endDate = args . endDate ? new Date ( args . endDate ) : undefined ;
5249 const startDate = args . startDate ? new Date ( args . startDate ) : undefined ;
50+ const predefinedTimesList = getPredefinedTimePeriodsForDateTimePicker ( ) ;
5351
5452 return (
5553 < DateTimePicker
@@ -61,24 +59,111 @@ export const DateRangeWithMaxRange: Story = {
6159 maxRangeLength = { args . maxRangeLength }
6260 onSelectDateRange = { args . onSelectDateRange }
6361 placeholder = { args . placeholder }
62+ predefinedTimesList = { predefinedTimesList }
6463 startDate = { startDate }
6564 />
6665 ) ;
6766 } ,
6867} ;
6968
70- export const DateRangeFutureStartDatesDisabled : Story = {
71- args : {
72- futureStartDatesDisabled : true ,
73- predefinedDatesList : [ ] ,
74- } ,
75- } ;
76-
77- export const PredefinedDatesLastSixMonths : Story = {
69+ export const PredefinedDatesScrollable : Story = {
7870 render : ( args : Args ) => {
7971 const endDate = args . endDate ? new Date ( args . endDate ) : undefined ;
8072 const startDate = args . startDate ? new Date ( args . startDate ) : undefined ;
81- const predefinedDatesList = getPredefinedTimePeriodsForDateTimePicker ( ) ;
73+ const now = dayjs ( ) ;
74+ const predefinedTimesList : Array < DateRangeListItem > = [
75+ {
76+ dateRange : {
77+ startDate : now . subtract ( 15 , "minute" ) . toDate ( ) ,
78+ endDate : now . toDate ( ) ,
79+ } ,
80+ label : "Past 15 minutes" ,
81+ } ,
82+ {
83+ dateRange : {
84+ startDate : now . subtract ( 30 , "minute" ) . toDate ( ) ,
85+ endDate : now . toDate ( ) ,
86+ } ,
87+ label : "Past 30 minutes" ,
88+ } ,
89+ {
90+ dateRange : {
91+ startDate : now . subtract ( 1 , "hour" ) . toDate ( ) ,
92+ endDate : now . toDate ( ) ,
93+ } ,
94+ label : "Past hour" ,
95+ } ,
96+ {
97+ dateRange : {
98+ startDate : now . subtract ( 2 , "hour" ) . toDate ( ) ,
99+ endDate : now . toDate ( ) ,
100+ } ,
101+ label : "Past 2 hours" ,
102+ } ,
103+ {
104+ dateRange : {
105+ startDate : now . subtract ( 6 , "hour" ) . toDate ( ) ,
106+ endDate : now . toDate ( ) ,
107+ } ,
108+ label : "Past 6 hours" ,
109+ } ,
110+ {
111+ dateRange : {
112+ startDate : now . subtract ( 12 , "hour" ) . toDate ( ) ,
113+ endDate : now . toDate ( ) ,
114+ } ,
115+ label : "Past 12 hours" ,
116+ } ,
117+ {
118+ dateRange : {
119+ startDate : now . subtract ( 1 , "day" ) . toDate ( ) ,
120+ endDate : now . toDate ( ) ,
121+ } ,
122+ label : "Past day" ,
123+ } ,
124+ {
125+ dateRange : {
126+ startDate : now . subtract ( 1 , "week" ) . toDate ( ) ,
127+ endDate : now . toDate ( ) ,
128+ } ,
129+ label : "Past week" ,
130+ } ,
131+ {
132+ dateRange : {
133+ startDate : now . subtract ( 2 , "week" ) . toDate ( ) ,
134+ endDate : now . toDate ( ) ,
135+ } ,
136+ label : "Past 2 weeks" ,
137+ } ,
138+ {
139+ dateRange : {
140+ startDate : now . subtract ( 1 , "month" ) . toDate ( ) ,
141+ endDate : now . toDate ( ) ,
142+ } ,
143+ label : "Past month" ,
144+ } ,
145+ {
146+ dateRange : {
147+ startDate : now . subtract ( 3 , "month" ) . toDate ( ) ,
148+ endDate : now . toDate ( ) ,
149+ } ,
150+ label : "Past 3 months" ,
151+ } ,
152+ {
153+ dateRange : {
154+ startDate : now . subtract ( 6 , "month" ) . toDate ( ) ,
155+ endDate : now . toDate ( ) ,
156+ } ,
157+ label : "Past 6 months" ,
158+ } ,
159+ {
160+ dateRange : {
161+ startDate : now . subtract ( 1 , "year" ) . toDate ( ) ,
162+ endDate : now . toDate ( ) ,
163+ } ,
164+ label : "Past year" ,
165+ }
166+ ] ;
82167
83168 return (
84169 < DateTimePicker
@@ -90,18 +175,21 @@ export const PredefinedDatesLastSixMonths: Story = {
90175 maxRangeLength = { args . maxRangeLength }
91176 onSelectDateRange = { args . onSelectDateRange }
92177 placeholder = { args . placeholder }
93- predefinedDatesList = { predefinedDatesList }
178+ predefinedTimesList = { predefinedTimesList }
94179 startDate = { startDate }
95180 />
96181 ) ;
97182 } ,
98183} ;
99184
100- export const PredefinedDatesNextSixMonths : Story = {
185+ export const DateTimeWithMaxRange : Story = {
186+ args : {
187+ maxRangeLength : 15 ,
188+ predefinedTimesList : [ ] ,
189+ } ,
101190 render : ( args : Args ) => {
102191 const endDate = args . endDate ? new Date ( args . endDate ) : undefined ;
103192 const startDate = args . startDate ? new Date ( args . startDate ) : undefined ;
104- const predefinedDatesList = getPredefinedTimePeriodsForDateTimePicker ( ) ;
105193
106194 return (
107195 < DateTimePicker
@@ -113,70 +201,43 @@ export const PredefinedDatesNextSixMonths: Story = {
113201 maxRangeLength = { args . maxRangeLength }
114202 onSelectDateRange = { args . onSelectDateRange }
115203 placeholder = { args . placeholder }
116- predefinedDatesList = { predefinedDatesList }
117204 startDate = { startDate }
118205 />
119206 ) ;
120207 } ,
121208} ;
122209
123- export const PredefinedDatesArbitraryDates : Story = {
124- render : ( args : Args ) => {
125- const endDate = args . endDate ? new Date ( args . endDate ) : undefined ;
126- const startDate = args . startDate ? new Date ( args . startDate ) : undefined ;
127- const predefinedDatesList = [
128- { startDate : new Date ( "04/14/2025" ) , endDate : new Date ( "05/14/2025" ) } ,
129- { startDate : new Date ( "05/14/2025" ) , endDate : new Date ( "06/14/2025" ) } ,
130- { startDate : new Date ( "06/14/2025" ) , endDate : new Date ( "07/14/2025" ) } ,
131- ] ;
132-
133- return (
134- < DateTimePicker
135- key = "default"
136- endDate = { endDate }
137- disabled = { args . disabled }
138- futureDatesDisabled = { args . futureDatesDisabled }
139- futureStartDatesDisabled = { args . futureStartDatesDisabled }
140- maxRangeLength = { args . maxRangeLength }
141- onSelectDateRange = { args . onSelectDateRange }
142- placeholder = { args . placeholder }
143- predefinedDatesList = { predefinedDatesList }
144- startDate = { startDate }
145- />
146- ) ;
210+ export const DateTimeFutureStartDatesDisabled : Story = {
211+ args : {
212+ futureStartDatesDisabled : true ,
213+ predefinedTimesList : [ ] ,
147214 } ,
148215} ;
149216
150- export const PredefinedDatesScrollable : Story = {
151- render : ( args : Args ) => {
152- const endDate = args . endDate ? new Date ( args . endDate ) : undefined ;
153- const startDate = args . startDate ? new Date ( args . startDate ) : undefined ;
154- const predefinedDatesList = [
155- { startDate : new Date ( "09/14/2024" ) , endDate : new Date ( "10/14/2024" ) } ,
156- { startDate : new Date ( "10/14/2024" ) , endDate : new Date ( "11/14/2024" ) } ,
157- { startDate : new Date ( "11/14/2024" ) , endDate : new Date ( "12/14/2024" ) } ,
158- { startDate : new Date ( "12/14/2024" ) , endDate : new Date ( "01/14/2025" ) } ,
159- { startDate : new Date ( "01/14/2025" ) , endDate : new Date ( "02/14/2025" ) } ,
160- { startDate : new Date ( "02/14/2025" ) , endDate : new Date ( "03/14/2025" ) } ,
161- { startDate : new Date ( "03/14/2025" ) , endDate : new Date ( "04/14/2025" ) } ,
162- { startDate : new Date ( "04/14/2025" ) , endDate : new Date ( "05/14/2025" ) } ,
163- { startDate : new Date ( "05/14/2025" ) , endDate : new Date ( "06/14/2025" ) } ,
164- { startDate : new Date ( "06/14/2025" ) , endDate : new Date ( "07/14/2025" ) } ,
165- ] ;
166217
167- return (
168- < DateTimePicker
169- key = "default"
170- endDate = { endDate }
171- disabled = { args . disabled }
172- futureDatesDisabled = { args . futureDatesDisabled }
173- futureStartDatesDisabled = { args . futureStartDatesDisabled }
174- maxRangeLength = { args . maxRangeLength }
175- onSelectDateRange = { args . onSelectDateRange }
176- placeholder = { args . placeholder }
177- predefinedDatesList = { predefinedDatesList }
178- startDate = { startDate }
179- />
180- ) ;
181- } ,
182- } ;
218+ // export const PredefinedDatesArbitraryDates: Story = {
219+ // render: (args: Args) => {
220+ // const endDate = args.endDate ? new Date(args.endDate) : undefined;
221+ // const startDate = args.startDate ? new Date(args.startDate) : undefined;
222+ // const predefinedTimesList = [
223+ // { startDate: new Date("04/14/2025"), endDate: new Date("05/14/2025") },
224+ // { startDate: new Date("05/14/2025"), endDate: new Date("06/14/2025") },
225+ // { startDate: new Date("06/14/2025"), endDate: new Date("07/14/2025") },
226+ // ];
227+
228+ // return (
229+ // <DateTimePicker
230+ // key="default"
231+ // endDate={endDate}
232+ // disabled={args.disabled}
233+ // futureDatesDisabled={args.futureDatesDisabled}
234+ // futureStartDatesDisabled={args.futureStartDatesDisabled}
235+ // maxRangeLength={args.maxRangeLength}
236+ // onSelectDateRange={args.onSelectDateRange}
237+ // placeholder={args.placeholder}
238+ // predefinedTimesList={predefinedTimesList}
239+ // startDate={startDate}
240+ // />
241+ // );
242+ // },
243+ // };
0 commit comments