@redneckz/wildless-cms-uni-blocks 0.14.589 → 0.14.590
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/bundle/bundle.umd.js +22 -2
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/hooks/useElementSpace.d.ts +2 -0
- package/dist/hooks/useElementSpace.d.ts +2 -0
- package/dist/hooks/useElementSpace.js +21 -0
- package/dist/hooks/useElementSpace.js.map +1 -0
- package/dist/ui-kit/DatePicker/DatePicker.js +5 -1
- package/dist/ui-kit/DatePicker/DatePicker.js.map +1 -1
- package/lib/hooks/useElementSpace.d.ts +2 -0
- package/lib/hooks/useElementSpace.js +18 -0
- package/lib/hooks/useElementSpace.js.map +1 -0
- package/lib/ui-kit/DatePicker/DatePicker.js +5 -1
- package/lib/ui-kit/DatePicker/DatePicker.js.map +1 -1
- package/mobile/bundle/bundle.umd.js +22 -2
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/hooks/useElementSpace.d.ts +2 -0
- package/mobile/dist/hooks/useElementSpace.d.ts +2 -0
- package/mobile/dist/hooks/useElementSpace.js +21 -0
- package/mobile/dist/hooks/useElementSpace.js.map +1 -0
- package/mobile/dist/ui-kit/DatePicker/DatePicker.js +5 -1
- package/mobile/dist/ui-kit/DatePicker/DatePicker.js.map +1 -1
- package/mobile/lib/hooks/useElementSpace.d.ts +2 -0
- package/mobile/lib/hooks/useElementSpace.js +18 -0
- package/mobile/lib/hooks/useElementSpace.js.map +1 -0
- package/mobile/lib/ui-kit/DatePicker/DatePicker.js +5 -1
- package/mobile/lib/ui-kit/DatePicker/DatePicker.js.map +1 -1
- package/mobile/src/hooks/useElementSpace.ts +25 -0
- package/mobile/src/ui-kit/DatePicker/DatePicker.tsx +9 -1
- package/package.json +1 -1
- package/src/hooks/useElementSpace.ts +25 -0
- package/src/ui-kit/DatePicker/DatePicker.tsx +9 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.useElementSpace = void 0;
|
|
3
|
+
const hooks_1 = require("@redneckz/uni-jsx/lib/hooks");
|
|
4
|
+
const useElementSpace = (ref, heightEl) => {
|
|
5
|
+
const [spaceAbove, setSpaceAbove] = (0, hooks_1.useState)(false);
|
|
6
|
+
(0, hooks_1.useEffect)(() => {
|
|
7
|
+
const handleResize = () => {
|
|
8
|
+
if (ref?.current) {
|
|
9
|
+
const { top } = ref.current.getBoundingClientRect();
|
|
10
|
+
const hasSpaceAbove = top > heightEl;
|
|
11
|
+
setSpaceAbove(hasSpaceAbove);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
handleResize();
|
|
15
|
+
window.addEventListener('resize', handleResize);
|
|
16
|
+
return () => window.removeEventListener('resize', handleResize);
|
|
17
|
+
}, [ref]);
|
|
18
|
+
return spaceAbove;
|
|
19
|
+
};
|
|
20
|
+
exports.useElementSpace = useElementSpace;
|
|
21
|
+
//# sourceMappingURL=useElementSpace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useElementSpace.js","sourceRoot":"","sources":["../../src/hooks/useElementSpace.ts"],"names":[],"mappings":";;AAAA,uDAAkE;AAG3D,MAAM,eAAe,GAAG,CAAC,GAA2B,EAAE,QAAgB,EAAE,EAAE;IAC/E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAEpD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,IAAI,GAAG,EAAE,OAAO,EAAE;gBAChB,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;gBAEpD,MAAM,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;gBAErC,aAAa,CAAC,aAAa,CAAC,CAAC;aAC9B;QACH,CAAC,CAAC;QAEF,YAAY,EAAE,CAAC;QACf,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEhD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AArBW,QAAA,eAAe,mBAqB1B"}
|
|
@@ -4,6 +4,7 @@ const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
|
|
|
4
4
|
const uni_jsx_1 = require("@redneckz/uni-jsx");
|
|
5
5
|
const hooks_1 = require("@redneckz/uni-jsx/lib/hooks");
|
|
6
6
|
const useBool_1 = require("@redneckz/uni-jsx/lib/hooks/useBool");
|
|
7
|
+
const useElementSpace_1 = require("../../hooks/useElementSpace");
|
|
7
8
|
const formatDate_1 = require("../../utils/formatDate");
|
|
8
9
|
const style_1 = require("../../utils/style");
|
|
9
10
|
const Icon_1 = require("../Icon/Icon");
|
|
@@ -38,7 +39,10 @@ exports.DatePicker = (0, uni_jsx_1.JSX)(({ className = '', label = '', value, va
|
|
|
38
39
|
selectedMonth,
|
|
39
40
|
showCalendar,
|
|
40
41
|
});
|
|
41
|
-
|
|
42
|
+
const spaceAbove = (0, useElementSpace_1.useElementSpace)(ref, 370);
|
|
43
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, style_1.style)('space-y-xs', className), ref: ref, children: [(0, renderLabel_1.renderLabel)(label), (0, jsx_runtime_1.jsxs)("div", { className: "relative", children: [renderDatePickerForm(handleChangeVisibleCalendar, value, valid), showCalendar ? ((0, jsx_runtime_1.jsxs)("div", { className: (0, style_1.style)('absolute bg-white z-20 select-none', {
|
|
44
|
+
'bottom-full': spaceAbove,
|
|
45
|
+
}), children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex gap-s", children: [(0, jsx_runtime_1.jsx)("div", { className: "my-auto", onClick: handlePrevMonth, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { ...ICON_PROPS, className: "-rotate-90 cursor-pointer" }) }), (0, jsx_runtime_1.jsx)(Select_1.Select, { onChange: handleSelectMonth, value: { key: months_1.months[selectedMonth] }, options: monthsOptions, ...SELECT_PROPS }), (0, jsx_runtime_1.jsx)(Select_1.Select, { onChange: handleSelectYear, value: { key: String(selectedYear) }, options: yearsOptions, ...SELECT_PROPS }), (0, jsx_runtime_1.jsx)("div", { className: "my-auto", onClick: handleNextMonth, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { ...ICON_PROPS, className: "rotate-90 cursor-pointer" }) })] }), (0, jsx_runtime_1.jsx)(Calendar_1.Calendar, { today: value, currentMonth: selectedMonth, currentYear: selectedYear, onDateSelect: onChange, min: minDate, max: maxDate, setValue: setValue })] })) : null] })] }));
|
|
42
46
|
});
|
|
43
47
|
const renderDatePickerForm = (handleChangeVisibleCalendar, value, valid) => ((0, jsx_runtime_1.jsxs)("div", { onClick: handleChangeVisibleCalendar, className: (0, style_1.style)(formStyle, valid ? 'border-gray' : 'border-error'), children: [(0, jsx_runtime_1.jsx)(Paragraph_1.Paragraph, { children: value && (0, formatDate_1.formatDate)(value) }), (0, jsx_runtime_1.jsx)(Icon_1.Icon, { ...ICON_PROPS, name: "CalendarIcon" })] }));
|
|
44
48
|
//# sourceMappingURL=DatePicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../src/ui-kit/DatePicker/DatePicker.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,uDAAuD;AACvD,iEAA8D;AAG9D,uDAAoD;AACpD,6CAA0C;AAE1C,uCAAoC;AAEpC,sDAAmD;AACnD,sDAAmD;AACnD,6CAA0C;AAC1C,yCAAsC;AACtC,qCAAkC;AAClC,iEAA8D;AAE9D,MAAM,UAAU,GAAgF;IAC9F,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,OAAO;IACpB,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;CACb,CAAC;AAEF,MAAM,YAAY,GAAuE;IACvF,SAAS,EAAE,UAAU;IACrB,WAAW,EAAE,OAAO;IACpB,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,MAAM,SAAS,GACb,oFAAoF;IACpF,2DAA2D,CAAC;AASjD,QAAA,UAAU,GAAG,IAAA,aAAG,EAC3B,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClF,MAAM,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAA,iBAAO,EAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/F,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAC9C,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CACjD,CAAC;IAEF,MAAM,EACJ,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,2BAA2B,EAC3B,GAAG,GACJ,GAAG,IAAA,2CAAoB,EAAC;QACvB,YAAY,EAAE,eAAe;QAC7B,aAAa,EAAE,gBAAgB;QAC/B,cAAc,EAAE,QAAQ;QACxB,YAAY;QACZ,aAAa;QACb,YAAY;KACb,CAAC,CAAC;IAEH,OAAO,CACL,iCAAK,SAAS,EAAE,IAAA,aAAK,EAAC,YAAY,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,aACrD,IAAA,yBAAW,EAAC,KAAK,CAAC,EACnB,iCAAK,SAAS,EAAC,UAAU,aACtB,oBAAoB,CAAC,2BAA2B,EAAE,KAAK,EAAE,KAAK,CAAC,EAC/D,YAAY,CAAC,CAAC,CAAC,CACd,
|
|
1
|
+
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../src/ui-kit/DatePicker/DatePicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useEffect, useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
2
|
+
export const useElementSpace = (ref, heightEl) => {
|
|
3
|
+
const [spaceAbove, setSpaceAbove] = useState(false);
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
const handleResize = () => {
|
|
6
|
+
if (ref?.current) {
|
|
7
|
+
const { top } = ref.current.getBoundingClientRect();
|
|
8
|
+
const hasSpaceAbove = top > heightEl;
|
|
9
|
+
setSpaceAbove(hasSpaceAbove);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
handleResize();
|
|
13
|
+
window.addEventListener('resize', handleResize);
|
|
14
|
+
return () => window.removeEventListener('resize', handleResize);
|
|
15
|
+
}, [ref]);
|
|
16
|
+
return spaceAbove;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=useElementSpace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useElementSpace.js","sourceRoot":"","sources":["../../src/hooks/useElementSpace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAGlE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAA2B,EAAE,QAAgB,EAAE,EAAE;IAC/E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,IAAI,GAAG,EAAE,OAAO,EAAE;gBAChB,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;gBAEpD,MAAM,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;gBAErC,aAAa,CAAC,aAAa,CAAC,CAAC;aAC9B;QACH,CAAC,CAAC;QAEF,YAAY,EAAE,CAAC;QACf,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEhD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
|
|
|
2
2
|
import { JSX } from '@redneckz/uni-jsx';
|
|
3
3
|
import { useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
4
4
|
import { useBool } from '@redneckz/uni-jsx/lib/hooks/useBool';
|
|
5
|
+
import { useElementSpace } from '../../hooks/useElementSpace.js';
|
|
5
6
|
import { formatDate } from '../../utils/formatDate.js';
|
|
6
7
|
import { style } from '../../utils/style.js';
|
|
7
8
|
import { Icon } from '../Icon/Icon.js';
|
|
@@ -36,7 +37,10 @@ export const DatePicker = JSX(({ className = '', label = '', value, valid = true
|
|
|
36
37
|
selectedMonth,
|
|
37
38
|
showCalendar,
|
|
38
39
|
});
|
|
39
|
-
|
|
40
|
+
const spaceAbove = useElementSpace(ref, 370);
|
|
41
|
+
return (_jsxs("div", { className: style('space-y-xs', className), ref: ref, children: [renderLabel(label), _jsxs("div", { className: "relative", children: [renderDatePickerForm(handleChangeVisibleCalendar, value, valid), showCalendar ? (_jsxs("div", { className: style('absolute bg-white z-20 select-none', {
|
|
42
|
+
'bottom-full': spaceAbove,
|
|
43
|
+
}), children: [_jsxs("div", { className: "flex gap-s", children: [_jsx("div", { className: "my-auto", onClick: handlePrevMonth, children: _jsx(Icon, { ...ICON_PROPS, className: "-rotate-90 cursor-pointer" }) }), _jsx(Select, { onChange: handleSelectMonth, value: { key: months[selectedMonth] }, options: monthsOptions, ...SELECT_PROPS }), _jsx(Select, { onChange: handleSelectYear, value: { key: String(selectedYear) }, options: yearsOptions, ...SELECT_PROPS }), _jsx("div", { className: "my-auto", onClick: handleNextMonth, children: _jsx(Icon, { ...ICON_PROPS, className: "rotate-90 cursor-pointer" }) })] }), _jsx(Calendar, { today: value, currentMonth: selectedMonth, currentYear: selectedYear, onDateSelect: onChange, min: minDate, max: maxDate, setValue: setValue })] })) : null] })] }));
|
|
40
44
|
});
|
|
41
45
|
const renderDatePickerForm = (handleChangeVisibleCalendar, value, valid) => (_jsxs("div", { onClick: handleChangeVisibleCalendar, className: style(formStyle, valid ? 'border-gray' : 'border-error'), children: [_jsx(Paragraph, { children: value && formatDate(value) }), _jsx(Icon, { ...ICON_PROPS, name: "CalendarIcon" })] }));
|
|
42
46
|
//# sourceMappingURL=DatePicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../src/ui-kit/DatePicker/DatePicker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAG9D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,UAAU,GAAgF;IAC9F,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,OAAO;IACpB,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;CACb,CAAC;AAEF,MAAM,YAAY,GAAuE;IACvF,SAAS,EAAE,UAAU;IACrB,WAAW,EAAE,OAAO;IACpB,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,MAAM,SAAS,GACb,oFAAoF;IACpF,2DAA2D,CAAC;AAS9D,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAC3B,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClF,MAAM,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/F,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAC9C,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CACjD,CAAC;IAEF,MAAM,EACJ,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,2BAA2B,EAC3B,GAAG,GACJ,GAAG,oBAAoB,CAAC;QACvB,YAAY,EAAE,eAAe;QAC7B,aAAa,EAAE,gBAAgB;QAC/B,cAAc,EAAE,QAAQ;QACxB,YAAY;QACZ,aAAa;QACb,YAAY;KACb,CAAC,CAAC;IAEH,OAAO,CACL,eAAK,SAAS,EAAE,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,aACrD,WAAW,CAAC,KAAK,CAAC,EACnB,eAAK,SAAS,EAAC,UAAU,aACtB,oBAAoB,CAAC,2BAA2B,EAAE,KAAK,EAAE,KAAK,CAAC,EAC/D,YAAY,CAAC,CAAC,CAAC,CACd,
|
|
1
|
+
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../src/ui-kit/DatePicker/DatePicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { useEffect, useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
2
|
+
import { type RefObject } from 'react';
|
|
3
|
+
|
|
4
|
+
export const useElementSpace = (ref: RefObject<HTMLElement>, heightEl: number) => {
|
|
5
|
+
const [spaceAbove, setSpaceAbove] = useState(false);
|
|
6
|
+
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
const handleResize = () => {
|
|
9
|
+
if (ref?.current) {
|
|
10
|
+
const { top } = ref.current.getBoundingClientRect();
|
|
11
|
+
|
|
12
|
+
const hasSpaceAbove = top > heightEl;
|
|
13
|
+
|
|
14
|
+
setSpaceAbove(hasSpaceAbove);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
handleResize();
|
|
19
|
+
window.addEventListener('resize', handleResize);
|
|
20
|
+
|
|
21
|
+
return () => window.removeEventListener('resize', handleResize);
|
|
22
|
+
}, [ref]);
|
|
23
|
+
|
|
24
|
+
return spaceAbove;
|
|
25
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
2
|
import { useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
3
3
|
import { useBool } from '@redneckz/uni-jsx/lib/hooks/useBool';
|
|
4
|
+
import { useElementSpace } from '../../hooks/useElementSpace';
|
|
4
5
|
import { type LabelProps } from '../../model/HeadlineType';
|
|
5
6
|
import { type IconVersion } from '../../model/IconVersion';
|
|
6
7
|
import { formatDate } from '../../utils/formatDate';
|
|
@@ -65,13 +66,19 @@ export const DatePicker = JSX<DatePickerProps>(
|
|
|
65
66
|
showCalendar,
|
|
66
67
|
});
|
|
67
68
|
|
|
69
|
+
const spaceAbove = useElementSpace(ref, 370);
|
|
70
|
+
|
|
68
71
|
return (
|
|
69
72
|
<div className={style('space-y-xs', className)} ref={ref}>
|
|
70
73
|
{renderLabel(label)}
|
|
71
74
|
<div className="relative">
|
|
72
75
|
{renderDatePickerForm(handleChangeVisibleCalendar, value, valid)}
|
|
73
76
|
{showCalendar ? (
|
|
74
|
-
<div
|
|
77
|
+
<div
|
|
78
|
+
className={style('absolute bg-white z-20 select-none', {
|
|
79
|
+
'bottom-full': spaceAbove,
|
|
80
|
+
})}
|
|
81
|
+
>
|
|
75
82
|
<div className="flex gap-s">
|
|
76
83
|
<div className="my-auto" onClick={handlePrevMonth}>
|
|
77
84
|
<Icon {...ICON_PROPS} className="-rotate-90 cursor-pointer" />
|
|
@@ -99,6 +106,7 @@ export const DatePicker = JSX<DatePickerProps>(
|
|
|
99
106
|
onDateSelect={onChange}
|
|
100
107
|
min={minDate}
|
|
101
108
|
max={maxDate}
|
|
109
|
+
setValue={setValue}
|
|
102
110
|
/>
|
|
103
111
|
</div>
|
|
104
112
|
) : null}
|
package/package.json
CHANGED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { useEffect, useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
2
|
+
import { type RefObject } from 'react';
|
|
3
|
+
|
|
4
|
+
export const useElementSpace = (ref: RefObject<HTMLElement>, heightEl: number) => {
|
|
5
|
+
const [spaceAbove, setSpaceAbove] = useState(false);
|
|
6
|
+
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
const handleResize = () => {
|
|
9
|
+
if (ref?.current) {
|
|
10
|
+
const { top } = ref.current.getBoundingClientRect();
|
|
11
|
+
|
|
12
|
+
const hasSpaceAbove = top > heightEl;
|
|
13
|
+
|
|
14
|
+
setSpaceAbove(hasSpaceAbove);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
handleResize();
|
|
19
|
+
window.addEventListener('resize', handleResize);
|
|
20
|
+
|
|
21
|
+
return () => window.removeEventListener('resize', handleResize);
|
|
22
|
+
}, [ref]);
|
|
23
|
+
|
|
24
|
+
return spaceAbove;
|
|
25
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
2
|
import { useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
3
3
|
import { useBool } from '@redneckz/uni-jsx/lib/hooks/useBool';
|
|
4
|
+
import { useElementSpace } from '../../hooks/useElementSpace';
|
|
4
5
|
import { type LabelProps } from '../../model/HeadlineType';
|
|
5
6
|
import { type IconVersion } from '../../model/IconVersion';
|
|
6
7
|
import { formatDate } from '../../utils/formatDate';
|
|
@@ -65,13 +66,19 @@ export const DatePicker = JSX<DatePickerProps>(
|
|
|
65
66
|
showCalendar,
|
|
66
67
|
});
|
|
67
68
|
|
|
69
|
+
const spaceAbove = useElementSpace(ref, 370);
|
|
70
|
+
|
|
68
71
|
return (
|
|
69
72
|
<div className={style('space-y-xs', className)} ref={ref}>
|
|
70
73
|
{renderLabel(label)}
|
|
71
74
|
<div className="relative">
|
|
72
75
|
{renderDatePickerForm(handleChangeVisibleCalendar, value, valid)}
|
|
73
76
|
{showCalendar ? (
|
|
74
|
-
<div
|
|
77
|
+
<div
|
|
78
|
+
className={style('absolute bg-white z-20 select-none', {
|
|
79
|
+
'bottom-full': spaceAbove,
|
|
80
|
+
})}
|
|
81
|
+
>
|
|
75
82
|
<div className="flex gap-s">
|
|
76
83
|
<div className="my-auto" onClick={handlePrevMonth}>
|
|
77
84
|
<Icon {...ICON_PROPS} className="-rotate-90 cursor-pointer" />
|
|
@@ -99,6 +106,7 @@ export const DatePicker = JSX<DatePickerProps>(
|
|
|
99
106
|
onDateSelect={onChange}
|
|
100
107
|
min={minDate}
|
|
101
108
|
max={maxDate}
|
|
109
|
+
setValue={setValue}
|
|
102
110
|
/>
|
|
103
111
|
</div>
|
|
104
112
|
) : null}
|