Skip to content

Commit 2d7f87c

Browse files
authored
Update index.js
1 parent 314ca09 commit 2d7f87c

File tree

1 file changed

+112
-1
lines changed

1 file changed

+112
-1
lines changed

pages/index.js

Lines changed: 112 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)