@@ -23,6 +23,10 @@ export default function Playground() {
2323 const [ containerClassName , setContainerClassName ] = useState ( "" ) ;
2424 const [ displayFormat , setDisplayFormat ] = useState ( "YYYY-MM-DD" ) ;
2525 const [ readOnly , setReadOnly ] = useState ( false ) ;
26+ const [ minDate , setMinDate ] = useState ( "" ) ;
27+ const [ maxDate , setMaxDate ] = useState ( "" ) ;
28+ const [ disabledDates , setDisabledDates ] = useState ( [ ] ) ;
29+ const [ newDisabledDates , setNewDisabledDates ] = useState ( { startDate : "" , endDate : "" } ) ;
2630 const [ startFrom , setStartFrom ] = useState ( "2023-03-01" ) ;
2731 const [ startWeekOn , setStartWeekOn ] = useState ( null ) ;
2832
@@ -59,6 +63,9 @@ export default function Playground() {
5963 containerClassName = { containerClassName }
6064 displayFormat = { displayFormat }
6165 readOnly = { readOnly }
66+ minDate = { minDate }
67+ maxDate = { maxDate }
68+ disabledDates = { disabledDates }
6269 startWeekOn = { startWeekOn }
6370 />
6471 </ div >
@@ -209,6 +216,19 @@ export default function Playground() {
209216 } }
210217 />
211218 </ div >
219+ < div className = "mb-2" >
220+ < label className = "block" htmlFor = "minDate" >
221+ Minimum Date
222+ </ label >
223+ < input
224+ className = "rounded border px-4 py-2 w-full border-gray-200"
225+ id = "minDate"
226+ value = { minDate }
227+ onChange = { e => {
228+ setMinDate ( e . target . value ) ;
229+ } }
230+ />
231+ </ div >
212232 </ div >
213233 < div className = "w-full sm:w-1/3 pr-2 flex flex-col" >
214234 < div className = "mb-2" >
@@ -263,6 +283,19 @@ export default function Playground() {
263283 } }
264284 />
265285 </ div >
286+ < div className = "mb-2" >
287+ < label className = "block" htmlFor = "maxDate" >
288+ Maximum Date
289+ </ label >
290+ < input
291+ className = "rounded border px-4 py-2 w-full border-gray-200"
292+ id = "maxDate"
293+ value = { maxDate }
294+ onChange = { e => {
295+ setMaxDate ( e . target . value ) ;
296+ } }
297+ />
298+ </ div >
266299 < div className = "mb-2" >
267300 < label className = "block" htmlFor = "startWeekOnClassName" >
268301 Start Week On
@@ -272,11 +305,89 @@ export default function Playground() {
272305 id = "startWeekOnClassName"
273306 value = { startWeekOn }
274307 onChange = { e => {
275- setStartWeekOn ( e . target . value )
308+ setStartWeekOn ( e . target . value ) ;
276309 } }
277310 />
278311 </ div >
279312 </ div >
313+ < div className = "w-full grid sm:grid-cols-3" >
314+ < div className = "sm:col-start-2 sm:col-span-2 p-2 border-t grid grid-cols-2" >
315+ < h1 className = "mb-2 text-lg font-semibold text-center col-span-3" >
316+ Disable Dates
317+ </ h1 >
318+ < div className = "mb-2 sm:col-span-2 mr-2" >
319+ < label className = "block" htmlFor = "startDate" >
320+ Start Date
321+ </ label >
322+ < input
323+ className = "rounded border px-4 py-2 border-gray-200 sm:w-full w-3/4"
324+ id = "startDate"
325+ value = { newDisabledDates . startDate }
326+ onChange = { e => {
327+ setNewDisabledDates ( prev => {
328+ return {
329+ ...prev ,
330+ startDate : e . target . value
331+ } ;
332+ } ) ;
333+ } }
334+ />
335+ </ div >
336+ < div className = "mb-2" >
337+ < label className = "block" htmlFor = "endDate" >
338+ End Date
339+ </ label >
340+ < input
341+ className = "rounded border px-4 py-2 border-gray-200 sm:w-full w-3/4"
342+ id = "endDate"
343+ value = { newDisabledDates . endDate }
344+ onChange = { e => {
345+ setNewDisabledDates ( prev => {
346+ return {
347+ ...prev ,
348+ endDate : e . target . value
349+ } ;
350+ } ) ;
351+ } }
352+ />
353+ </ div >
354+ < div className = "mb-2 col-span-3" >
355+ < button
356+ onClick = { ( ) => {
357+ if (
358+ newDisabledDates . startDate !== "" &&
359+ newDisabledDates . endDate !== ""
360+ ) {
361+ setDisabledDates ( prev => [ ...prev , newDisabledDates ] ) ;
362+ setNewDisabledDates ( { startDate : "" , endDate : "" } ) ;
363+ }
364+ } }
365+ className = "w-full bg-black text-white text-lg text-center p-2 rounded-lg"
366+ >
367+ Add
368+ </ button >
369+ </ div >
370+ < div className = "mb-2 grid col-span-3 grid-col-2" >
371+ { disabledDates . map ( ( range , index ) => (
372+ < div className = "mb-2 p-2" key = { index } >
373+ < button
374+ className = "bg-red-500 text-white text-center rounded-xl p-2"
375+ onClick = { ( ) => {
376+ setDisabledDates (
377+ disabledDates . filter ( r => r !== range )
378+ ) ;
379+ } }
380+ >
381+ Delete
382+ </ button >
383+ < span className = "pl-2" >
384+ { range . startDate } - { range . endDate }
385+ </ span >
386+ </ div >
387+ ) ) }
388+ </ div >
389+ </ div >
390+ </ div >
280391 </ div >
281392 < div className = "flex flex-row flex-wrap items-center justify-center w-full" >
282393 < a
0 commit comments