@uxf/datepicker 1.1.6 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/contexts/time-picker-context.d.ts +14 -0
- package/contexts/time-picker-context.js +17 -0
- package/hooks/use-hour.d.ts +17 -0
- package/hooks/use-hour.js +40 -0
- package/hooks/use-hour.test.d.ts +1 -0
- package/hooks/use-hour.test.js +46 -0
- package/hooks/use-hours.d.ts +12 -0
- package/hooks/use-hours.js +19 -0
- package/hooks/use-hours.test.d.ts +1 -0
- package/hooks/use-hours.test.js +67 -0
- package/hooks/use-minute.d.ts +17 -0
- package/hooks/use-minute.js +40 -0
- package/hooks/use-minute.test.d.ts +1 -0
- package/hooks/use-minute.test.js +46 -0
- package/hooks/use-minutes.d.ts +12 -0
- package/hooks/use-minutes.js +19 -0
- package/hooks/use-minutes.test.d.ts +1 -0
- package/hooks/use-minutes.test.js +43 -0
- package/hooks/use-time-picker.d.ts +28 -0
- package/hooks/use-time-picker.js +101 -0
- package/hooks/use-time-picker.test.d.ts +1 -0
- package/hooks/use-time-picker.test.js +94 -0
- package/package.json +5 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare type TimePickerContextProps = {
|
|
3
|
+
focusedHour: number | null;
|
|
4
|
+
focusedMinute: number | null;
|
|
5
|
+
isHourFocused: (hour: number) => boolean;
|
|
6
|
+
isHourSelected: (hour: number) => boolean;
|
|
7
|
+
isMinuteFocused: (minute: number) => boolean;
|
|
8
|
+
isMinuteSelected: (minute: number) => boolean;
|
|
9
|
+
onHourFocus: (hour: number) => void;
|
|
10
|
+
onHourSelect: (hour: number) => void;
|
|
11
|
+
onMinuteFocus: (minute: number) => void;
|
|
12
|
+
onMinuteSelect: (minute: number) => void;
|
|
13
|
+
};
|
|
14
|
+
export declare const TimePickerContext: import("react").Context<TimePickerContextProps>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TimePickerContext = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
exports.TimePickerContext = (0, react_1.createContext)({
|
|
6
|
+
focusedHour: null,
|
|
7
|
+
focusedMinute: null,
|
|
8
|
+
isHourFocused: function () { return false; },
|
|
9
|
+
isHourSelected: function () { return false; },
|
|
10
|
+
isMinuteFocused: function () { return false; },
|
|
11
|
+
isMinuteSelected: function () { return false; },
|
|
12
|
+
onHourFocus: function () { return undefined; },
|
|
13
|
+
onHourSelect: function () { return undefined; },
|
|
14
|
+
onMinuteFocus: function () { return undefined; },
|
|
15
|
+
onMinuteSelect: function () { return undefined; },
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0cy90aW1lLXBpY2tlci1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUFzQztBQWV6QixRQUFBLGlCQUFpQixHQUFHLElBQUEscUJBQWEsRUFBeUI7SUFDbkUsV0FBVyxFQUFFLElBQUk7SUFDakIsYUFBYSxFQUFFLElBQUk7SUFDbkIsYUFBYSxFQUFFLGNBQU0sT0FBQSxLQUFLLEVBQUwsQ0FBSztJQUMxQixjQUFjLEVBQUUsY0FBTSxPQUFBLEtBQUssRUFBTCxDQUFLO0lBQzNCLGVBQWUsRUFBRSxjQUFNLE9BQUEsS0FBSyxFQUFMLENBQUs7SUFDNUIsZ0JBQWdCLEVBQUUsY0FBTSxPQUFBLEtBQUssRUFBTCxDQUFLO0lBQzdCLFdBQVcsRUFBRSxjQUFNLE9BQUEsU0FBUyxFQUFULENBQVM7SUFDNUIsWUFBWSxFQUFFLGNBQU0sT0FBQSxTQUFTLEVBQVQsQ0FBUztJQUM3QixhQUFhLEVBQUUsY0FBTSxPQUFBLFNBQVMsRUFBVCxDQUFTO0lBQzlCLGNBQWMsRUFBRSxjQUFNLE9BQUEsU0FBUyxFQUFULENBQVM7Q0FDbEMsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { KeyboardEvent, RefObject } from "react";
|
|
2
|
+
export interface UseHourProps {
|
|
3
|
+
hour: number;
|
|
4
|
+
hourRef?: RefObject<HTMLElement>;
|
|
5
|
+
focusedHour: number | null;
|
|
6
|
+
isHourFocused: (hour: number) => boolean;
|
|
7
|
+
isHourSelected: (hour: number) => boolean;
|
|
8
|
+
onHourFocus: (hour: number) => void;
|
|
9
|
+
onHourSelect: (hour: number) => void;
|
|
10
|
+
}
|
|
11
|
+
export interface UseHourReturnType {
|
|
12
|
+
isSelected: boolean;
|
|
13
|
+
onClick?: () => void;
|
|
14
|
+
onKeyDown: (e: KeyboardEvent<HTMLElement>) => void;
|
|
15
|
+
tabIndex: number;
|
|
16
|
+
}
|
|
17
|
+
export declare function useHour({ hour, hourRef, focusedHour, isHourFocused, isHourSelected, onHourFocus, onHourSelect, }: UseHourProps): UseHourReturnType;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useHour = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
function useHour(_a) {
|
|
6
|
+
var hour = _a.hour, hourRef = _a.hourRef, focusedHour = _a.focusedHour, isHourFocused = _a.isHourFocused, isHourSelected = _a.isHourSelected, onHourFocus = _a.onHourFocus, onHourSelect = _a.onHourSelect;
|
|
7
|
+
var onClick = (0, react_1.useCallback)(function () { return onHourSelect(hour); }, [hour, onHourSelect]);
|
|
8
|
+
(0, react_1.useEffect)(function () {
|
|
9
|
+
if (hourRef && hourRef.current && isHourFocused(hour)) {
|
|
10
|
+
hourRef.current.focus();
|
|
11
|
+
}
|
|
12
|
+
}, [hourRef, hour, isHourFocused]);
|
|
13
|
+
var onKeyDown = (0, react_1.useCallback)(function (e) {
|
|
14
|
+
if (["ArrowRight", "ArrowLeft", "ArrowUp", "ArrowDown"].includes(e.key)) {
|
|
15
|
+
e.preventDefault();
|
|
16
|
+
switch (e.key) {
|
|
17
|
+
case "ArrowRight":
|
|
18
|
+
onHourFocus(hour + 1);
|
|
19
|
+
break;
|
|
20
|
+
case "ArrowLeft":
|
|
21
|
+
onHourFocus(hour - 1);
|
|
22
|
+
break;
|
|
23
|
+
case "ArrowUp":
|
|
24
|
+
onHourFocus(hour - 4);
|
|
25
|
+
break;
|
|
26
|
+
case "ArrowDown":
|
|
27
|
+
onHourFocus(hour + 4);
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}, [hour, onHourFocus]);
|
|
32
|
+
return {
|
|
33
|
+
isSelected: isHourSelected(hour),
|
|
34
|
+
onClick: onClick,
|
|
35
|
+
onKeyDown: onKeyDown,
|
|
36
|
+
tabIndex: focusedHour === null || isHourFocused(hour) ? 0 : -1,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
exports.useHour = useHour;
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWhvdXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlLWhvdXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQXlFO0FBbUJ6RSxTQUFnQixPQUFPLENBQUMsRUFRVDtRQVBYLElBQUksVUFBQSxFQUNKLE9BQU8sYUFBQSxFQUNQLFdBQVcsaUJBQUEsRUFDWCxhQUFhLG1CQUFBLEVBQ2IsY0FBYyxvQkFBQSxFQUNkLFdBQVcsaUJBQUEsRUFDWCxZQUFZLGtCQUFBO0lBRVosSUFBTSxPQUFPLEdBQUcsSUFBQSxtQkFBVyxFQUFDLGNBQU0sT0FBQSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQWxCLENBQWtCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUU1RSxJQUFBLGlCQUFTLEVBQUM7UUFDTixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNuRCxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBRW5DLElBQU0sU0FBUyxHQUFHLElBQUEsbUJBQVcsRUFDekIsVUFBQyxDQUE2QjtRQUMxQixJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyRSxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkIsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFO2dCQUNYLEtBQUssWUFBWTtvQkFDYixXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN0QixNQUFNO2dCQUNWLEtBQUssV0FBVztvQkFDWixXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN0QixNQUFNO2dCQUNWLEtBQUssU0FBUztvQkFDVixXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN0QixNQUFNO2dCQUNWLEtBQUssV0FBVztvQkFDWixXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN0QixNQUFNO2FBQ2I7U0FDSjtJQUNMLENBQUMsRUFDRCxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FDdEIsQ0FBQztJQUVGLE9BQU87UUFDSCxVQUFVLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQztRQUNoQyxPQUFPLEVBQUUsT0FBTztRQUNoQixTQUFTLFdBQUE7UUFDVCxRQUFRLEVBQUUsV0FBVyxLQUFLLElBQUksSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pFLENBQUM7QUFDTixDQUFDO0FBOUNELDBCQThDQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var react_hooks_1 = require("@testing-library/react-hooks");
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var use_hour_1 = require("./use-hour");
|
|
6
|
+
test("useHour", function () {
|
|
7
|
+
var result = (0, react_hooks_1.renderHook)(function () {
|
|
8
|
+
return (0, use_hour_1.useHour)({
|
|
9
|
+
hour: 5,
|
|
10
|
+
focusedHour: null,
|
|
11
|
+
isHourFocused: function () { return false; },
|
|
12
|
+
isHourSelected: function () { return false; },
|
|
13
|
+
onHourFocus: function () { return undefined; },
|
|
14
|
+
onHourSelect: function () { return undefined; },
|
|
15
|
+
});
|
|
16
|
+
}).result;
|
|
17
|
+
expect(result.current.tabIndex).toBe(0);
|
|
18
|
+
expect(result.current.isSelected).toBe(false);
|
|
19
|
+
});
|
|
20
|
+
test("actions", function () {
|
|
21
|
+
var selectedHour = null;
|
|
22
|
+
var focusedHour = null;
|
|
23
|
+
var ref = (0, react_hooks_1.renderHook)(function () { return (0, react_1.useRef)(null); }).result;
|
|
24
|
+
var _a = (0, react_hooks_1.renderHook)(function () {
|
|
25
|
+
return (0, use_hour_1.useHour)({
|
|
26
|
+
hour: 30,
|
|
27
|
+
focusedHour: null,
|
|
28
|
+
isHourFocused: function (hour) { return focusedHour === hour; },
|
|
29
|
+
isHourSelected: function (hour) { return selectedHour === hour; },
|
|
30
|
+
onHourFocus: function (hour) { return (focusedHour = hour); },
|
|
31
|
+
onHourSelect: function (hour) { return (selectedHour = hour); },
|
|
32
|
+
hourRef: ref.current,
|
|
33
|
+
});
|
|
34
|
+
}), result = _a.result, rerender = _a.rerender;
|
|
35
|
+
expect(result.current.tabIndex).toBe(0);
|
|
36
|
+
// select
|
|
37
|
+
expect(result.current.isSelected).toBe(false);
|
|
38
|
+
(0, react_hooks_1.act)(function () {
|
|
39
|
+
if (result.current.onClick) {
|
|
40
|
+
result.current.onClick();
|
|
41
|
+
}
|
|
42
|
+
rerender();
|
|
43
|
+
});
|
|
44
|
+
expect(result.current.isSelected).toBe(true);
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWhvdXIudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2UtaG91ci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNERBQStEO0FBQy9ELCtCQUErQjtBQUMvQix1Q0FBcUM7QUFFckMsSUFBSSxDQUFDLFNBQVMsRUFBRTtJQUNKLElBQUEsTUFBTSxHQUFLLElBQUEsd0JBQVUsRUFBQztRQUMxQixPQUFBLElBQUEsa0JBQU8sRUFBQztZQUNKLElBQUksRUFBRSxDQUFDO1lBQ1AsV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLGNBQU0sT0FBQSxLQUFLLEVBQUwsQ0FBSztZQUMxQixjQUFjLEVBQUUsY0FBTSxPQUFBLEtBQUssRUFBTCxDQUFLO1lBQzNCLFdBQVcsRUFBRSxjQUFNLE9BQUEsU0FBUyxFQUFULENBQVM7WUFDNUIsWUFBWSxFQUFFLGNBQU0sT0FBQSxTQUFTLEVBQVQsQ0FBUztTQUNoQyxDQUFDO0lBUEYsQ0FPRSxDQUNMLE9BVGEsQ0FTWjtJQUVGLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsU0FBUyxFQUFFO0lBQ1osSUFBSSxZQUFZLEdBQWtCLElBQUksQ0FBQztJQUN2QyxJQUFJLFdBQVcsR0FBa0IsSUFBSSxDQUFDO0lBRTlCLElBQVEsR0FBRyxHQUFLLElBQUEsd0JBQVUsRUFBQyxjQUFNLE9BQUEsSUFBQSxjQUFNLEVBQWMsSUFBSSxDQUFDLEVBQXpCLENBQXlCLENBQUMsT0FBaEQsQ0FBaUQ7SUFFOUQsSUFBQSxLQUF1QixJQUFBLHdCQUFVLEVBQUM7UUFDcEMsT0FBQSxJQUFBLGtCQUFPLEVBQUM7WUFDSixJQUFJLEVBQUUsRUFBRTtZQUNSLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGFBQWEsRUFBRSxVQUFBLElBQUksSUFBSSxPQUFBLFdBQVcsS0FBSyxJQUFJLEVBQXBCLENBQW9CO1lBQzNDLGNBQWMsRUFBRSxVQUFBLElBQUksSUFBSSxPQUFBLFlBQVksS0FBSyxJQUFJLEVBQXJCLENBQXFCO1lBQzdDLFdBQVcsRUFBRSxVQUFBLElBQUksSUFBSSxPQUFBLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFwQixDQUFvQjtZQUN6QyxZQUFZLEVBQUUsVUFBQSxJQUFJLElBQUksT0FBQSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBckIsQ0FBcUI7WUFDM0MsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO1NBQ3ZCLENBQUM7SUFSRixDQVFFLENBQ0wsRUFWTyxNQUFNLFlBQUEsRUFBRSxRQUFRLGNBVXZCLENBQUM7SUFFRixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFeEMsU0FBUztJQUNULE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxJQUFBLGlCQUFHLEVBQUM7UUFDQSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDNUI7UUFDRCxRQUFRLEVBQUUsQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const labelFormatFn: (hour: number) => string;
|
|
2
|
+
export declare type HourType = {
|
|
3
|
+
value: number;
|
|
4
|
+
label: string;
|
|
5
|
+
};
|
|
6
|
+
export interface UseHoursProps {
|
|
7
|
+
labelFormat?: (hour: number) => string;
|
|
8
|
+
}
|
|
9
|
+
export interface UseHoursReturnType {
|
|
10
|
+
hours: HourType[];
|
|
11
|
+
}
|
|
12
|
+
export declare function useHours({ labelFormat }: UseHoursProps): UseHoursReturnType;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useHours = exports.labelFormatFn = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var labelFormatFn = function (hour) { return hour.toString().padStart(2, "0"); };
|
|
6
|
+
exports.labelFormatFn = labelFormatFn;
|
|
7
|
+
function useHours(_a) {
|
|
8
|
+
var _b = _a.labelFormat, labelFormat = _b === void 0 ? exports.labelFormatFn : _b;
|
|
9
|
+
var hours = (0, react_1.useMemo)(function () {
|
|
10
|
+
return Array(24)
|
|
11
|
+
.fill(0)
|
|
12
|
+
.map(function (_, i) { return ({ value: i, label: labelFormat(i) }); });
|
|
13
|
+
}, [labelFormat]);
|
|
14
|
+
return {
|
|
15
|
+
hours: hours,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
exports.useHours = useHours;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWhvdXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZS1ob3Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBZ0M7QUFFekIsSUFBTSxhQUFhLEdBQUcsVUFBQyxJQUFZLElBQUssT0FBQSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBaEMsQ0FBZ0MsQ0FBQztBQUFuRSxRQUFBLGFBQWEsaUJBQXNEO0FBZWhGLFNBQWdCLFFBQVEsQ0FBQyxFQUE4QztRQUE1QyxtQkFBMkIsRUFBM0IsV0FBVyxtQkFBRyxxQkFBYSxLQUFBO0lBQ2xELElBQU0sS0FBSyxHQUFHLElBQUEsZUFBTyxFQUNqQjtRQUNJLE9BQUEsS0FBSyxDQUFDLEVBQUUsQ0FBQzthQUNKLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDUCxHQUFHLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQXJDLENBQXFDLENBQUM7SUFGekQsQ0FFeUQsRUFDN0QsQ0FBQyxXQUFXLENBQUMsQ0FDaEIsQ0FBQztJQUVGLE9BQU87UUFDSCxLQUFLLE9BQUE7S0FDUixDQUFDO0FBQ04sQ0FBQztBQVpELDRCQVlDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var react_hooks_1 = require("@testing-library/react-hooks");
|
|
4
|
+
var use_hours_1 = require("./use-hours");
|
|
5
|
+
test("useHours", function () {
|
|
6
|
+
var result = (0, react_hooks_1.renderHook)(function () { return (0, use_hours_1.useHours)({}); }).result;
|
|
7
|
+
expect(result.current.hours).toStrictEqual([
|
|
8
|
+
{ label: "00", value: 0 },
|
|
9
|
+
{ label: "01", value: 1 },
|
|
10
|
+
{ label: "02", value: 2 },
|
|
11
|
+
{ label: "03", value: 3 },
|
|
12
|
+
{ label: "04", value: 4 },
|
|
13
|
+
{ label: "05", value: 5 },
|
|
14
|
+
{ label: "06", value: 6 },
|
|
15
|
+
{ label: "07", value: 7 },
|
|
16
|
+
{ label: "08", value: 8 },
|
|
17
|
+
{ label: "09", value: 9 },
|
|
18
|
+
{ label: "10", value: 10 },
|
|
19
|
+
{ label: "11", value: 11 },
|
|
20
|
+
{ label: "12", value: 12 },
|
|
21
|
+
{ label: "13", value: 13 },
|
|
22
|
+
{ label: "14", value: 14 },
|
|
23
|
+
{ label: "15", value: 15 },
|
|
24
|
+
{ label: "16", value: 16 },
|
|
25
|
+
{ label: "17", value: 17 },
|
|
26
|
+
{ label: "18", value: 18 },
|
|
27
|
+
{ label: "19", value: 19 },
|
|
28
|
+
{ label: "20", value: 20 },
|
|
29
|
+
{ label: "21", value: 21 },
|
|
30
|
+
{ label: "22", value: 22 },
|
|
31
|
+
{ label: "23", value: 23 },
|
|
32
|
+
]);
|
|
33
|
+
});
|
|
34
|
+
test("useMinutes with custom format", function () {
|
|
35
|
+
var result = (0, react_hooks_1.renderHook)(function () {
|
|
36
|
+
return (0, use_hours_1.useHours)({
|
|
37
|
+
labelFormat: function (hour) { return "--" + hour + "--"; },
|
|
38
|
+
});
|
|
39
|
+
}).result;
|
|
40
|
+
expect(result.current.hours).toStrictEqual([
|
|
41
|
+
{ label: "--0--", value: 0 },
|
|
42
|
+
{ label: "--1--", value: 1 },
|
|
43
|
+
{ label: "--2--", value: 2 },
|
|
44
|
+
{ label: "--3--", value: 3 },
|
|
45
|
+
{ label: "--4--", value: 4 },
|
|
46
|
+
{ label: "--5--", value: 5 },
|
|
47
|
+
{ label: "--6--", value: 6 },
|
|
48
|
+
{ label: "--7--", value: 7 },
|
|
49
|
+
{ label: "--8--", value: 8 },
|
|
50
|
+
{ label: "--9--", value: 9 },
|
|
51
|
+
{ label: "--10--", value: 10 },
|
|
52
|
+
{ label: "--11--", value: 11 },
|
|
53
|
+
{ label: "--12--", value: 12 },
|
|
54
|
+
{ label: "--13--", value: 13 },
|
|
55
|
+
{ label: "--14--", value: 14 },
|
|
56
|
+
{ label: "--15--", value: 15 },
|
|
57
|
+
{ label: "--16--", value: 16 },
|
|
58
|
+
{ label: "--17--", value: 17 },
|
|
59
|
+
{ label: "--18--", value: 18 },
|
|
60
|
+
{ label: "--19--", value: 19 },
|
|
61
|
+
{ label: "--20--", value: 20 },
|
|
62
|
+
{ label: "--21--", value: 21 },
|
|
63
|
+
{ label: "--22--", value: 22 },
|
|
64
|
+
{ label: "--23--", value: 23 },
|
|
65
|
+
]);
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWhvdXJzLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlLWhvdXJzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0REFBMEQ7QUFDMUQseUNBQXVDO0FBRXZDLElBQUksQ0FBQyxVQUFVLEVBQUU7SUFDTCxJQUFBLE1BQU0sR0FBSyxJQUFBLHdCQUFVLEVBQUMsY0FBTSxPQUFBLElBQUEsb0JBQVEsRUFBQyxFQUFFLENBQUMsRUFBWixDQUFZLENBQUMsT0FBbkMsQ0FBb0M7SUFFbEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQ3ZDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO0tBQzdCLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLCtCQUErQixFQUFFO0lBQzFCLElBQUEsTUFBTSxHQUFLLElBQUEsd0JBQVUsRUFBQztRQUMxQixPQUFBLElBQUEsb0JBQVEsRUFBQztZQUNMLFdBQVcsRUFBRSxVQUFBLElBQUksSUFBSSxPQUFBLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxFQUFsQixDQUFrQjtTQUMxQyxDQUFDO0lBRkYsQ0FFRSxDQUNMLE9BSmEsQ0FJWjtJQUVGLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUN2QyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtLQUNqQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { KeyboardEvent, RefObject } from "react";
|
|
2
|
+
export interface UseMinuteProps {
|
|
3
|
+
minute: number;
|
|
4
|
+
minuteRef?: RefObject<HTMLElement>;
|
|
5
|
+
focusedMinute: number | null;
|
|
6
|
+
isMinuteFocused: (minute: number) => boolean;
|
|
7
|
+
isMinuteSelected: (minute: number) => boolean;
|
|
8
|
+
onMinuteFocus: (minute: number) => void;
|
|
9
|
+
onMinuteSelect: (minute: number) => void;
|
|
10
|
+
}
|
|
11
|
+
export interface UseMinuteReturnType {
|
|
12
|
+
isSelected: boolean;
|
|
13
|
+
onClick?: () => void;
|
|
14
|
+
onKeyDown: (e: KeyboardEvent<HTMLElement>) => void;
|
|
15
|
+
tabIndex: number;
|
|
16
|
+
}
|
|
17
|
+
export declare function useMinute({ minute, minuteRef, focusedMinute, isMinuteFocused, isMinuteSelected, onMinuteFocus, onMinuteSelect, }: UseMinuteProps): UseMinuteReturnType;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useMinute = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
function useMinute(_a) {
|
|
6
|
+
var minute = _a.minute, minuteRef = _a.minuteRef, focusedMinute = _a.focusedMinute, isMinuteFocused = _a.isMinuteFocused, isMinuteSelected = _a.isMinuteSelected, onMinuteFocus = _a.onMinuteFocus, onMinuteSelect = _a.onMinuteSelect;
|
|
7
|
+
var onClick = (0, react_1.useCallback)(function () { return onMinuteSelect(minute); }, [minute, onMinuteSelect]);
|
|
8
|
+
(0, react_1.useEffect)(function () {
|
|
9
|
+
if (minuteRef && minuteRef.current && isMinuteFocused(minute)) {
|
|
10
|
+
minuteRef.current.focus();
|
|
11
|
+
}
|
|
12
|
+
}, [minuteRef, minute, isMinuteFocused]);
|
|
13
|
+
var onKeyDown = (0, react_1.useCallback)(function (e) {
|
|
14
|
+
if (["ArrowRight", "ArrowLeft", "ArrowUp", "ArrowDown"].includes(e.key)) {
|
|
15
|
+
e.preventDefault();
|
|
16
|
+
switch (e.key) {
|
|
17
|
+
case "ArrowRight":
|
|
18
|
+
onMinuteFocus(minute + 5);
|
|
19
|
+
break;
|
|
20
|
+
case "ArrowLeft":
|
|
21
|
+
onMinuteFocus(minute - 5);
|
|
22
|
+
break;
|
|
23
|
+
case "ArrowUp":
|
|
24
|
+
onMinuteFocus(minute - 20);
|
|
25
|
+
break;
|
|
26
|
+
case "ArrowDown":
|
|
27
|
+
onMinuteFocus(minute + 20);
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}, [minute, onMinuteFocus]);
|
|
32
|
+
return {
|
|
33
|
+
isSelected: isMinuteSelected(minute),
|
|
34
|
+
onClick: onClick,
|
|
35
|
+
onKeyDown: onKeyDown,
|
|
36
|
+
tabIndex: focusedMinute === null || isMinuteFocused(minute) ? 0 : -1,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
exports.useMinute = useMinute;
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1pbnV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2UtbWludXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUF5RTtBQW1CekUsU0FBZ0IsU0FBUyxDQUFDLEVBUVQ7UUFQYixNQUFNLFlBQUEsRUFDTixTQUFTLGVBQUEsRUFDVCxhQUFhLG1CQUFBLEVBQ2IsZUFBZSxxQkFBQSxFQUNmLGdCQUFnQixzQkFBQSxFQUNoQixhQUFhLG1CQUFBLEVBQ2IsY0FBYyxvQkFBQTtJQUVkLElBQU0sT0FBTyxHQUFHLElBQUEsbUJBQVcsRUFBQyxjQUFNLE9BQUEsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUF0QixDQUFzQixFQUFFLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFFcEYsSUFBQSxpQkFBUyxFQUFDO1FBQ04sSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLE9BQU8sSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDM0QsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUM3QjtJQUNMLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUV6QyxJQUFNLFNBQVMsR0FBRyxJQUFBLG1CQUFXLEVBQ3pCLFVBQUMsQ0FBNkI7UUFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckUsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRTtnQkFDWCxLQUFLLFlBQVk7b0JBQ2IsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDMUIsTUFBTTtnQkFDVixLQUFLLFdBQVc7b0JBQ1osYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDMUIsTUFBTTtnQkFDVixLQUFLLFNBQVM7b0JBQ1YsYUFBYSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDM0IsTUFBTTtnQkFDVixLQUFLLFdBQVc7b0JBQ1osYUFBYSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDM0IsTUFBTTthQUNiO1NBQ0o7SUFDTCxDQUFDLEVBQ0QsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQzFCLENBQUM7SUFFRixPQUFPO1FBQ0gsVUFBVSxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztRQUNwQyxPQUFPLEVBQUUsT0FBTztRQUNoQixTQUFTLFdBQUE7UUFDVCxRQUFRLEVBQUUsYUFBYSxLQUFLLElBQUksSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3ZFLENBQUM7QUFDTixDQUFDO0FBOUNELDhCQThDQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var react_hooks_1 = require("@testing-library/react-hooks");
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var use_minute_1 = require("./use-minute");
|
|
6
|
+
test("useMinute", function () {
|
|
7
|
+
var result = (0, react_hooks_1.renderHook)(function () {
|
|
8
|
+
return (0, use_minute_1.useMinute)({
|
|
9
|
+
minute: 30,
|
|
10
|
+
focusedMinute: null,
|
|
11
|
+
isMinuteFocused: function () { return false; },
|
|
12
|
+
isMinuteSelected: function () { return false; },
|
|
13
|
+
onMinuteFocus: function () { return undefined; },
|
|
14
|
+
onMinuteSelect: function () { return undefined; },
|
|
15
|
+
});
|
|
16
|
+
}).result;
|
|
17
|
+
expect(result.current.tabIndex).toBe(0);
|
|
18
|
+
expect(result.current.isSelected).toBe(false);
|
|
19
|
+
});
|
|
20
|
+
test("actions", function () {
|
|
21
|
+
var selectedMinute = null;
|
|
22
|
+
var focusedMinute = null;
|
|
23
|
+
var ref = (0, react_hooks_1.renderHook)(function () { return (0, react_1.useRef)(null); }).result;
|
|
24
|
+
var _a = (0, react_hooks_1.renderHook)(function () {
|
|
25
|
+
return (0, use_minute_1.useMinute)({
|
|
26
|
+
minute: 30,
|
|
27
|
+
focusedMinute: null,
|
|
28
|
+
isMinuteFocused: function (minute) { return focusedMinute === minute; },
|
|
29
|
+
isMinuteSelected: function (minute) { return selectedMinute === minute; },
|
|
30
|
+
onMinuteFocus: function (minute) { return (focusedMinute = minute); },
|
|
31
|
+
onMinuteSelect: function (minute) { return (selectedMinute = minute); },
|
|
32
|
+
minuteRef: ref.current,
|
|
33
|
+
});
|
|
34
|
+
}), result = _a.result, rerender = _a.rerender;
|
|
35
|
+
expect(result.current.tabIndex).toBe(0);
|
|
36
|
+
// select
|
|
37
|
+
expect(result.current.isSelected).toBe(false);
|
|
38
|
+
(0, react_hooks_1.act)(function () {
|
|
39
|
+
if (result.current.onClick) {
|
|
40
|
+
result.current.onClick();
|
|
41
|
+
}
|
|
42
|
+
rerender();
|
|
43
|
+
});
|
|
44
|
+
expect(result.current.isSelected).toBe(true);
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1pbnV0ZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZS1taW51dGUudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDREQUErRDtBQUMvRCwrQkFBK0I7QUFDL0IsMkNBQXlDO0FBRXpDLElBQUksQ0FBQyxXQUFXLEVBQUU7SUFDTixJQUFBLE1BQU0sR0FBSyxJQUFBLHdCQUFVLEVBQUM7UUFDMUIsT0FBQSxJQUFBLHNCQUFTLEVBQUM7WUFDTixNQUFNLEVBQUUsRUFBRTtZQUNWLGFBQWEsRUFBRSxJQUFJO1lBQ25CLGVBQWUsRUFBRSxjQUFNLE9BQUEsS0FBSyxFQUFMLENBQUs7WUFDNUIsZ0JBQWdCLEVBQUUsY0FBTSxPQUFBLEtBQUssRUFBTCxDQUFLO1lBQzdCLGFBQWEsRUFBRSxjQUFNLE9BQUEsU0FBUyxFQUFULENBQVM7WUFDOUIsY0FBYyxFQUFFLGNBQU0sT0FBQSxTQUFTLEVBQVQsQ0FBUztTQUNsQyxDQUFDO0lBUEYsQ0FPRSxDQUNMLE9BVGEsQ0FTWjtJQUVGLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsU0FBUyxFQUFFO0lBQ1osSUFBSSxjQUFjLEdBQWtCLElBQUksQ0FBQztJQUN6QyxJQUFJLGFBQWEsR0FBa0IsSUFBSSxDQUFDO0lBRWhDLElBQVEsR0FBRyxHQUFLLElBQUEsd0JBQVUsRUFBQyxjQUFNLE9BQUEsSUFBQSxjQUFNLEVBQWMsSUFBSSxDQUFDLEVBQXpCLENBQXlCLENBQUMsT0FBaEQsQ0FBaUQ7SUFFOUQsSUFBQSxLQUF1QixJQUFBLHdCQUFVLEVBQUM7UUFDcEMsT0FBQSxJQUFBLHNCQUFTLEVBQUM7WUFDTixNQUFNLEVBQUUsRUFBRTtZQUNWLGFBQWEsRUFBRSxJQUFJO1lBQ25CLGVBQWUsRUFBRSxVQUFBLE1BQU0sSUFBSSxPQUFBLGFBQWEsS0FBSyxNQUFNLEVBQXhCLENBQXdCO1lBQ25ELGdCQUFnQixFQUFFLFVBQUEsTUFBTSxJQUFJLE9BQUEsY0FBYyxLQUFLLE1BQU0sRUFBekIsQ0FBeUI7WUFDckQsYUFBYSxFQUFFLFVBQUEsTUFBTSxJQUFJLE9BQUEsQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLEVBQXhCLENBQXdCO1lBQ2pELGNBQWMsRUFBRSxVQUFBLE1BQU0sSUFBSSxPQUFBLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxFQUF6QixDQUF5QjtZQUNuRCxTQUFTLEVBQUUsR0FBRyxDQUFDLE9BQU87U0FDekIsQ0FBQztJQVJGLENBUUUsQ0FDTCxFQVZPLE1BQU0sWUFBQSxFQUFFLFFBQVEsY0FVdkIsQ0FBQztJQUVGLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV4QyxTQUFTO0lBQ1QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLElBQUEsaUJBQUcsRUFBQztRQUNBLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM1QjtRQUNELFFBQVEsRUFBRSxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakQsQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const labelFormatFn: (hour: number) => string;
|
|
2
|
+
export declare type MinuteType = {
|
|
3
|
+
value: number;
|
|
4
|
+
label: string;
|
|
5
|
+
};
|
|
6
|
+
export interface UseMinutesProps {
|
|
7
|
+
labelFormat?: (minute: number) => string;
|
|
8
|
+
}
|
|
9
|
+
export interface UseMinutesReturnType {
|
|
10
|
+
minutes: MinuteType[];
|
|
11
|
+
}
|
|
12
|
+
export declare function useMinutes({ labelFormat }: UseMinutesProps): UseMinutesReturnType;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useMinutes = exports.labelFormatFn = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var labelFormatFn = function (hour) { return hour.toString().padStart(2, "0"); };
|
|
6
|
+
exports.labelFormatFn = labelFormatFn;
|
|
7
|
+
function useMinutes(_a) {
|
|
8
|
+
var _b = _a.labelFormat, labelFormat = _b === void 0 ? exports.labelFormatFn : _b;
|
|
9
|
+
var minutes = (0, react_1.useMemo)(function () {
|
|
10
|
+
return Array(12)
|
|
11
|
+
.fill(0)
|
|
12
|
+
.map(function (_, i) { return ({ value: i * 5, label: labelFormat(i * 5) }); });
|
|
13
|
+
}, [labelFormat]);
|
|
14
|
+
return {
|
|
15
|
+
minutes: minutes,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
exports.useMinutes = useMinutes;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1pbnV0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlLW1pbnV0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQWdDO0FBRXpCLElBQU0sYUFBYSxHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQWhDLENBQWdDLENBQUM7QUFBbkUsUUFBQSxhQUFhLGlCQUFzRDtBQWVoRixTQUFnQixVQUFVLENBQUMsRUFBZ0Q7UUFBOUMsbUJBQTJCLEVBQTNCLFdBQVcsbUJBQUcscUJBQWEsS0FBQTtJQUNwRCxJQUFNLE9BQU8sR0FBRyxJQUFBLGVBQU8sRUFDbkI7UUFDSSxPQUFBLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDSixJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ1AsR0FBRyxDQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSyxPQUFBLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQTdDLENBQTZDLENBQUM7SUFGakUsQ0FFaUUsRUFDckUsQ0FBQyxXQUFXLENBQUMsQ0FDaEIsQ0FBQztJQUVGLE9BQU87UUFDSCxPQUFPLFNBQUE7S0FDVixDQUFDO0FBQ04sQ0FBQztBQVpELGdDQVlDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var react_hooks_1 = require("@testing-library/react-hooks");
|
|
4
|
+
var use_minutes_1 = require("./use-minutes");
|
|
5
|
+
test("useMinutes", function () {
|
|
6
|
+
var result = (0, react_hooks_1.renderHook)(function () { return (0, use_minutes_1.useMinutes)({}); }).result;
|
|
7
|
+
expect(result.current.minutes).toStrictEqual([
|
|
8
|
+
{ label: "00", value: 0 },
|
|
9
|
+
{ label: "05", value: 5 },
|
|
10
|
+
{ label: "10", value: 10 },
|
|
11
|
+
{ label: "15", value: 15 },
|
|
12
|
+
{ label: "20", value: 20 },
|
|
13
|
+
{ label: "25", value: 25 },
|
|
14
|
+
{ label: "30", value: 30 },
|
|
15
|
+
{ label: "35", value: 35 },
|
|
16
|
+
{ label: "40", value: 40 },
|
|
17
|
+
{ label: "45", value: 45 },
|
|
18
|
+
{ label: "50", value: 50 },
|
|
19
|
+
{ label: "55", value: 55 },
|
|
20
|
+
]);
|
|
21
|
+
});
|
|
22
|
+
test("useMinutes with custom format", function () {
|
|
23
|
+
var result = (0, react_hooks_1.renderHook)(function () {
|
|
24
|
+
return (0, use_minutes_1.useMinutes)({
|
|
25
|
+
labelFormat: function (minute) { return "--" + minute + "--"; },
|
|
26
|
+
});
|
|
27
|
+
}).result;
|
|
28
|
+
expect(result.current.minutes).toStrictEqual([
|
|
29
|
+
{ label: "--0--", value: 0 },
|
|
30
|
+
{ label: "--5--", value: 5 },
|
|
31
|
+
{ label: "--10--", value: 10 },
|
|
32
|
+
{ label: "--15--", value: 15 },
|
|
33
|
+
{ label: "--20--", value: 20 },
|
|
34
|
+
{ label: "--25--", value: 25 },
|
|
35
|
+
{ label: "--30--", value: 30 },
|
|
36
|
+
{ label: "--35--", value: 35 },
|
|
37
|
+
{ label: "--40--", value: 40 },
|
|
38
|
+
{ label: "--45--", value: 45 },
|
|
39
|
+
{ label: "--50--", value: 50 },
|
|
40
|
+
{ label: "--55--", value: 55 },
|
|
41
|
+
]);
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1pbnV0ZXMudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2UtbWludXRlcy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNERBQTBEO0FBQzFELDZDQUEyQztBQUUzQyxJQUFJLENBQUMsWUFBWSxFQUFFO0lBQ1AsSUFBQSxNQUFNLEdBQUssSUFBQSx3QkFBVSxFQUFDLGNBQU0sT0FBQSxJQUFBLHdCQUFVLEVBQUMsRUFBRSxDQUFDLEVBQWQsQ0FBYyxDQUFDLE9BQXJDLENBQXNDO0lBRXBELE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUN6QyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUN6QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUN6QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUMxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUMxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUMxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUMxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUMxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUMxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUMxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUMxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUMxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtLQUM3QixDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQywrQkFBK0IsRUFBRTtJQUMxQixJQUFBLE1BQU0sR0FBSyxJQUFBLHdCQUFVLEVBQUM7UUFDMUIsT0FBQSxJQUFBLHdCQUFVLEVBQUM7WUFDUCxXQUFXLEVBQUUsVUFBQSxNQUFNLElBQUksT0FBQSxJQUFJLEdBQUcsTUFBTSxHQUFHLElBQUksRUFBcEIsQ0FBb0I7U0FDOUMsQ0FBQztJQUZGLENBRUUsQ0FDTCxPQUphLENBSVo7SUFFRixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDekMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7S0FDakMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare type TimeType = {
|
|
2
|
+
hour: number;
|
|
3
|
+
minute: number;
|
|
4
|
+
};
|
|
5
|
+
export declare type OnTimeChangeType = TimeType | null;
|
|
6
|
+
export interface UseTimePickerProps {
|
|
7
|
+
onSelectCallback?: () => void;
|
|
8
|
+
onTimeChange: (data: OnTimeChangeType) => void;
|
|
9
|
+
selectedTime: TimeType | null;
|
|
10
|
+
}
|
|
11
|
+
export interface UseTimePickerReturnType {
|
|
12
|
+
onTimeSelect: (time: TimeType) => void;
|
|
13
|
+
goToPrevHour: () => void;
|
|
14
|
+
goToPrevMinute: () => void;
|
|
15
|
+
goToNextHour: () => void;
|
|
16
|
+
goToNextMinute: () => void;
|
|
17
|
+
focusedHour: number | null;
|
|
18
|
+
focusedMinute: number | null;
|
|
19
|
+
isHourFocused: (hour: number) => boolean;
|
|
20
|
+
isHourSelected: (hour: number) => boolean;
|
|
21
|
+
isMinuteFocused: (minute: number) => boolean;
|
|
22
|
+
isMinuteSelected: (minute: number) => boolean;
|
|
23
|
+
onHourFocus: (hour: number) => void;
|
|
24
|
+
onHourSelect: (hour: number) => void;
|
|
25
|
+
onMinuteFocus: (minute: number) => void;
|
|
26
|
+
onMinuteSelect: (minute: number) => void;
|
|
27
|
+
}
|
|
28
|
+
export declare function useTimePicker({ selectedTime, onTimeChange, onSelectCallback, }: UseTimePickerProps): UseTimePickerReturnType;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.useTimePicker = void 0;
|
|
20
|
+
var react_1 = require("react");
|
|
21
|
+
function useTimePicker(_a) {
|
|
22
|
+
var _b, _c;
|
|
23
|
+
var selectedTime = _a.selectedTime, onTimeChange = _a.onTimeChange, onSelectCallback = _a.onSelectCallback;
|
|
24
|
+
var _d = __read((0, react_1.useState)((_b = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.hour) !== null && _b !== void 0 ? _b : null), 2), focusedHour = _d[0], setFocusedHour = _d[1];
|
|
25
|
+
var _e = __read((0, react_1.useState)((_c = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.minute) !== null && _c !== void 0 ? _c : null), 2), focusedMinute = _e[0], setFocusedMinute = _e[1];
|
|
26
|
+
var _isTimeSelected = function (time) { return time.hour === (selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.hour) && time.minute === selectedTime.minute; };
|
|
27
|
+
function onTimeSelect(time) {
|
|
28
|
+
if (!_isTimeSelected(time)) {
|
|
29
|
+
onTimeChange(time);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
var isHourFocused = function (hour) { return hour === focusedHour; };
|
|
33
|
+
var isMinuteFocused = function (minute) { return minute === focusedMinute; };
|
|
34
|
+
var isHourSelected = function (hour) { return hour === (selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.hour); };
|
|
35
|
+
var isMinuteSelected = function (minute) { return minute === (selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.minute); };
|
|
36
|
+
var onHourFocus = function (hour) {
|
|
37
|
+
setFocusedHour(hour);
|
|
38
|
+
};
|
|
39
|
+
var onMinuteFocus = function (minute) {
|
|
40
|
+
setFocusedMinute(minute);
|
|
41
|
+
};
|
|
42
|
+
var onHourSelect = function (hour) {
|
|
43
|
+
var _a;
|
|
44
|
+
onTimeChange({ hour: hour, minute: (_a = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.minute) !== null && _a !== void 0 ? _a : 0 });
|
|
45
|
+
onSelectCallback === null || onSelectCallback === void 0 ? void 0 : onSelectCallback();
|
|
46
|
+
};
|
|
47
|
+
var onMinuteSelect = function (minute) {
|
|
48
|
+
var _a;
|
|
49
|
+
onTimeChange({ hour: (_a = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.hour) !== null && _a !== void 0 ? _a : 0, minute: minute });
|
|
50
|
+
onSelectCallback === null || onSelectCallback === void 0 ? void 0 : onSelectCallback();
|
|
51
|
+
};
|
|
52
|
+
var goToPrevHour = (0, react_1.useCallback)(function () {
|
|
53
|
+
var _a, _b;
|
|
54
|
+
var nowHour = (_a = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.hour) !== null && _a !== void 0 ? _a : 0;
|
|
55
|
+
var nowMinute = (_b = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.minute) !== null && _b !== void 0 ? _b : 0;
|
|
56
|
+
onTimeChange({ hour: nowHour === 0 ? 23 : nowHour - 1, minute: nowMinute });
|
|
57
|
+
}, [onTimeChange, selectedTime]);
|
|
58
|
+
var goToNextHour = (0, react_1.useCallback)(function () {
|
|
59
|
+
var _a, _b;
|
|
60
|
+
var nowHour = (_a = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.hour) !== null && _a !== void 0 ? _a : 0;
|
|
61
|
+
var nowMinute = (_b = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.minute) !== null && _b !== void 0 ? _b : 0;
|
|
62
|
+
onTimeChange({ hour: nowHour === 23 ? 0 : nowHour + 1, minute: nowMinute });
|
|
63
|
+
}, [onTimeChange, selectedTime]);
|
|
64
|
+
var goToPrevMinute = (0, react_1.useCallback)(function () {
|
|
65
|
+
var _a, _b;
|
|
66
|
+
var nowHour = (_a = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.hour) !== null && _a !== void 0 ? _a : 0;
|
|
67
|
+
var nowMinute = (_b = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.minute) !== null && _b !== void 0 ? _b : 0;
|
|
68
|
+
onTimeChange({
|
|
69
|
+
hour: nowMinute === 0 ? (nowHour === 0 ? 23 : nowHour - 1) : nowHour,
|
|
70
|
+
minute: nowMinute === 0 ? 59 : nowMinute - 1,
|
|
71
|
+
});
|
|
72
|
+
}, [onTimeChange, selectedTime]);
|
|
73
|
+
var goToNextMinute = (0, react_1.useCallback)(function () {
|
|
74
|
+
var _a, _b;
|
|
75
|
+
var nowHour = (_a = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.hour) !== null && _a !== void 0 ? _a : 0;
|
|
76
|
+
var nowMinute = (_b = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.minute) !== null && _b !== void 0 ? _b : 0;
|
|
77
|
+
onTimeChange({
|
|
78
|
+
hour: nowMinute === 59 ? (nowHour === 23 ? 0 : nowHour + 1) : nowHour,
|
|
79
|
+
minute: nowMinute === 59 ? 0 : nowMinute + 1,
|
|
80
|
+
});
|
|
81
|
+
}, [onTimeChange, selectedTime]);
|
|
82
|
+
return {
|
|
83
|
+
goToPrevHour: goToPrevHour,
|
|
84
|
+
goToNextHour: goToNextHour,
|
|
85
|
+
goToPrevMinute: goToPrevMinute,
|
|
86
|
+
goToNextMinute: goToNextMinute,
|
|
87
|
+
onTimeSelect: onTimeSelect,
|
|
88
|
+
focusedHour: focusedHour,
|
|
89
|
+
focusedMinute: focusedMinute,
|
|
90
|
+
isHourFocused: isHourFocused,
|
|
91
|
+
isHourSelected: isHourSelected,
|
|
92
|
+
isMinuteFocused: isMinuteFocused,
|
|
93
|
+
isMinuteSelected: isMinuteSelected,
|
|
94
|
+
onHourFocus: onHourFocus,
|
|
95
|
+
onHourSelect: onHourSelect,
|
|
96
|
+
onMinuteFocus: onMinuteFocus,
|
|
97
|
+
onMinuteSelect: onMinuteSelect,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
exports.useTimePicker = useTimePicker;
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXRpbWUtcGlja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZS10aW1lLXBpY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQThDO0FBOEI5QyxTQUFnQixhQUFhLENBQUMsRUFJVDs7UUFIakIsWUFBWSxrQkFBQSxFQUNaLFlBQVksa0JBQUEsRUFDWixnQkFBZ0Isc0JBQUE7SUFFVixJQUFBLEtBQUEsT0FBZ0MsSUFBQSxnQkFBUSxFQUFnQixNQUFBLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxJQUFJLG1DQUFJLElBQUksQ0FBQyxJQUFBLEVBQWxGLFdBQVcsUUFBQSxFQUFFLGNBQWMsUUFBdUQsQ0FBQztJQUNwRixJQUFBLEtBQUEsT0FBb0MsSUFBQSxnQkFBUSxFQUFnQixNQUFBLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxNQUFNLG1DQUFJLElBQUksQ0FBQyxJQUFBLEVBQXhGLGFBQWEsUUFBQSxFQUFFLGdCQUFnQixRQUF5RCxDQUFDO0lBRWhHLElBQU0sZUFBZSxHQUFHLFVBQUMsSUFBYyxJQUFLLE9BQUEsSUFBSSxDQUFDLElBQUksTUFBSyxZQUFZLGFBQVosWUFBWSx1QkFBWixZQUFZLENBQUUsSUFBSSxDQUFBLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxZQUFZLENBQUMsTUFBTSxFQUF2RSxDQUF1RSxDQUFDO0lBRXBILFNBQVMsWUFBWSxDQUFDLElBQWM7UUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QixZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEI7SUFDTCxDQUFDO0lBRUQsSUFBTSxhQUFhLEdBQUcsVUFBQyxJQUFZLElBQUssT0FBQSxJQUFJLEtBQUssV0FBVyxFQUFwQixDQUFvQixDQUFDO0lBQzdELElBQU0sZUFBZSxHQUFHLFVBQUMsTUFBYyxJQUFLLE9B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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var react_hooks_1 = require("@testing-library/react-hooks");
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var use_time_picker_1 = require("./use-time-picker");
|
|
6
|
+
test("base data", function () {
|
|
7
|
+
var BASE_TIME = { hour: 12, minute: 57 };
|
|
8
|
+
var result = (0, react_hooks_1.renderHook)(function () {
|
|
9
|
+
return (0, use_time_picker_1.useTimePicker)({
|
|
10
|
+
selectedTime: BASE_TIME,
|
|
11
|
+
onTimeChange: function () { return undefined; },
|
|
12
|
+
});
|
|
13
|
+
}).result;
|
|
14
|
+
expect(result.current.focusedHour).toBe(BASE_TIME.hour);
|
|
15
|
+
expect(result.current.focusedMinute).toBe(BASE_TIME.minute);
|
|
16
|
+
});
|
|
17
|
+
test("time focus", function () {
|
|
18
|
+
var BASE_TIME = { hour: 12, minute: 57 };
|
|
19
|
+
var state = (0, react_hooks_1.renderHook)(function () { return (0, react_1.useState)(BASE_TIME); }).result;
|
|
20
|
+
var result = (0, react_hooks_1.renderHook)(function () {
|
|
21
|
+
return (0, use_time_picker_1.useTimePicker)({ selectedTime: state.current[0], onTimeChange: function (time) { return state.current[1](time); } });
|
|
22
|
+
}).result;
|
|
23
|
+
var NEW_TIME = { hour: 13, minute: 15 };
|
|
24
|
+
expect(result.current.isHourFocused(BASE_TIME.hour)).toBe(true);
|
|
25
|
+
expect(result.current.isHourFocused(NEW_TIME.hour)).toBe(false);
|
|
26
|
+
expect(result.current.isMinuteFocused(BASE_TIME.minute)).toBe(true);
|
|
27
|
+
expect(result.current.isMinuteFocused(NEW_TIME.minute)).toBe(false);
|
|
28
|
+
(0, react_hooks_1.act)(function () {
|
|
29
|
+
result.current.onHourFocus(NEW_TIME.hour);
|
|
30
|
+
result.current.onMinuteFocus(NEW_TIME.minute);
|
|
31
|
+
});
|
|
32
|
+
expect(result.current.isHourFocused(NEW_TIME.hour)).toBe(true);
|
|
33
|
+
expect(result.current.isHourFocused(BASE_TIME.hour)).toBe(false);
|
|
34
|
+
expect(result.current.isMinuteFocused(NEW_TIME.minute)).toBe(true);
|
|
35
|
+
expect(result.current.isMinuteFocused(BASE_TIME.minute)).toBe(false);
|
|
36
|
+
});
|
|
37
|
+
test("time select", function () {
|
|
38
|
+
var BASE_TIME = { hour: 12, minute: 57 };
|
|
39
|
+
var state = (0, react_hooks_1.renderHook)(function () { return (0, react_1.useState)(BASE_TIME); }).result;
|
|
40
|
+
var _a = (0, react_hooks_1.renderHook)(function () {
|
|
41
|
+
return (0, use_time_picker_1.useTimePicker)({ selectedTime: state.current[0], onTimeChange: function (time) { return state.current[1](time); } });
|
|
42
|
+
}), result = _a.result, rerender = _a.rerender;
|
|
43
|
+
var NEW_TIME = { hour: 13, minute: 15 };
|
|
44
|
+
expect(result.current.isHourSelected(BASE_TIME.hour)).toBe(true);
|
|
45
|
+
expect(result.current.isHourSelected(NEW_TIME.hour)).toBe(false);
|
|
46
|
+
expect(result.current.isMinuteSelected(BASE_TIME.minute)).toBe(true);
|
|
47
|
+
expect(result.current.isMinuteSelected(NEW_TIME.minute)).toBe(false);
|
|
48
|
+
(0, react_hooks_1.act)(function () {
|
|
49
|
+
result.current.onTimeSelect(NEW_TIME);
|
|
50
|
+
rerender();
|
|
51
|
+
});
|
|
52
|
+
expect(result.current.isHourSelected(NEW_TIME.hour)).toBe(true);
|
|
53
|
+
expect(result.current.isHourSelected(BASE_TIME.hour)).toBe(false);
|
|
54
|
+
expect(result.current.isMinuteSelected(NEW_TIME.minute)).toBe(true);
|
|
55
|
+
expect(result.current.isMinuteSelected(BASE_TIME.minute)).toBe(false);
|
|
56
|
+
});
|
|
57
|
+
test("time navigation", function () {
|
|
58
|
+
var BASE_TIME = { hour: 1, minute: 58 };
|
|
59
|
+
var state = (0, react_hooks_1.renderHook)(function () { return (0, react_1.useState)(BASE_TIME); }).result;
|
|
60
|
+
var _a = (0, react_hooks_1.renderHook)(function () {
|
|
61
|
+
return (0, use_time_picker_1.useTimePicker)({ selectedTime: state.current[0], onTimeChange: function (time) { return state.current[1](time); } });
|
|
62
|
+
}), result = _a.result, rerender = _a.rerender;
|
|
63
|
+
(0, react_hooks_1.act)(function () {
|
|
64
|
+
result.current.goToPrevHour();
|
|
65
|
+
rerender();
|
|
66
|
+
});
|
|
67
|
+
expect(state.current[0]).toStrictEqual({ hour: 0, minute: 58 });
|
|
68
|
+
(0, react_hooks_1.act)(function () {
|
|
69
|
+
result.current.goToNextMinute();
|
|
70
|
+
rerender();
|
|
71
|
+
});
|
|
72
|
+
expect(state.current[0]).toStrictEqual({ hour: 0, minute: 59 });
|
|
73
|
+
(0, react_hooks_1.act)(function () {
|
|
74
|
+
result.current.goToPrevHour();
|
|
75
|
+
rerender();
|
|
76
|
+
});
|
|
77
|
+
expect(state.current[0]).toStrictEqual({ hour: 23, minute: 59 });
|
|
78
|
+
(0, react_hooks_1.act)(function () {
|
|
79
|
+
result.current.goToNextHour();
|
|
80
|
+
rerender();
|
|
81
|
+
});
|
|
82
|
+
expect(state.current[0]).toStrictEqual({ hour: 0, minute: 59 });
|
|
83
|
+
(0, react_hooks_1.act)(function () {
|
|
84
|
+
result.current.goToNextMinute();
|
|
85
|
+
rerender();
|
|
86
|
+
});
|
|
87
|
+
expect(state.current[0]).toStrictEqual({ hour: 1, minute: 0 });
|
|
88
|
+
(0, react_hooks_1.act)(function () {
|
|
89
|
+
result.current.goToPrevMinute();
|
|
90
|
+
rerender();
|
|
91
|
+
});
|
|
92
|
+
expect(state.current[0]).toStrictEqual({ hour: 0, minute: 59 });
|
|
93
|
+
});
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXRpbWUtcGlja2VyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlLXRpbWUtcGlja2VyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0REFBK0Q7QUFDL0QsK0JBQWlDO0FBQ2pDLHFEQUE0RDtBQUU1RCxJQUFJLENBQUMsV0FBVyxFQUFFO0lBQ2QsSUFBTSxTQUFTLEdBQWEsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUM3QyxJQUFBLE1BQU0sR0FBSyxJQUFBLHdCQUFVLEVBQUM7UUFDMUIsT0FBQSxJQUFBLCtCQUFhLEVBQUM7WUFDVixZQUFZLEVBQUUsU0FBUztZQUN2QixZQUFZLEVBQUUsY0FBTSxPQUFBLFNBQVMsRUFBVCxDQUFTO1NBQ2hDLENBQUM7SUFIRixDQUdFLENBQ0wsT0FMYSxDQUtaO0lBRUYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2hFLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLFlBQVksRUFBRTtJQUNmLElBQU0sU0FBUyxHQUFhLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDN0MsSUFBUSxLQUFLLEdBQUssSUFBQSx3QkFBVSxFQUFDLGNBQU0sT0FBQSxJQUFBLGdCQUFRLEVBQWtCLFNBQVMsQ0FBQyxFQUFwQyxDQUFvQyxDQUFDLE9BQTNELENBQTREO0lBQ3pFLElBQUEsTUFBTSxHQUFLLElBQUEsd0JBQVUsRUFBQztRQUMxQixPQUFBLElBQUEsK0JBQWEsRUFBQyxFQUFFLFlBQVks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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uxf/datepicker",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "A set of React hooks to create an awesome datepicker.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -47,5 +47,9 @@
|
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"react": ">=17"
|
|
50
|
+
},
|
|
51
|
+
"volta": {
|
|
52
|
+
"node": "16.5.0",
|
|
53
|
+
"yarn": "1.22.19"
|
|
50
54
|
}
|
|
51
55
|
}
|