0.0.5 • Published 2 years ago

@stery-app/datepicker v0.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Objective

To create an unstyled datepicker component for react implementing the example below

<Datepicker
    open
    id="datepicker"
    name="name"
    i18n="en"
    className="hello class"
    asRange={true}
    useRange={true}
    startAt={new Date}
    endAt={new Date}
    onChange={(e, date | dateRange) => {
        console.log(e, date | dateRange);
    }}
    onBlur={(e, date | dateRange) => {
        console.log(e, date | dateRange);
    }}
    onFocus={(e, date | dateRange) => {
        console.log(e, date | dateRange);
    }}
    onToggle={(e, open, date | dateRange) => {
        console.log(e, open, date | dateRange);
    }}
>
    <div className="relative">
        <Datepicker.Input readOnly disabled className="input-class" />
        {({ open }) => (
            <Datepicker.Button onClick={(e) => {e.toggle()}}>
                <Datepicker.ToggleIcon open={open} />
            </Datepicker.Button>
        )}
    </div>
    {({ open }) => (
        // Calendar Container
        <Datepicker.Calendar className="border p-2">
            {/* Months render */}
            <Datepicker.Months>
                {({open, previous, current, next, month, selectMonth}) => (
                    <div className="w-full flex items-center justify-between">
                        <Datepicker.Button onClick={(e) => { selectMonth(previous)}}>
                            <Datepicker.PreviousIcon />
                        </Datepicker.Button>
                        <div>{current}</div>
                        <Datepicker.Button onClick={(e) => { selectMonth(next)}}>
                            <Datepicker.NextIcon />
                        </Datepicker.Button>
                    </div>
                )}
            </Datepicker.Months>

            {/* Days render */}
            <Datepicker.Days className="grid">
                {({ previous, current, next, day }) => {
                    previous ? (
                        <Datepicker.DayButton className="previous">
                            {day}
                        </Datepicker.DayButton>
                    ) : null;
                    current ? (
                        <Datepicker.DayButton className="current">
                            {day}
                        </Datepicker.DayButton>
                    ) : null;
                    next ? (
                        <Datepicker.DayButton className="next">
                            {day}
                        </Datepicker.DayButton>
                    ) : null;
                }}
            </Datepicker.Days>

            {/* Custom shortcut */}
            <Datepicker.Button className="shortcut" onClick={(e) => {
                e.selectDate(new Date, new Date | null)
            }}>Go To Date</Datepicker.Button>
        </Datepicker.Calendar>
    )}
</Datepicker>
0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago