kui-complex 0.0.146 → 0.0.148

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/index.js CHANGED
@@ -12,7 +12,7 @@ import classNames from 'classnames';
12
12
  import { HalfArrowIcon, PrevArrowIcon, NextArrowIcon, CalendarIcon, ArrowBackIcon, ArrowNextIcon, ClosedEyeIcon, OpenEyeIcon, CheckIcon, PlusIcon, FileIcon, EditIcon, TrashIcon } from 'kui-icon';
13
13
  import _ from 'lodash';
14
14
  import DatePicker from 'react-datepicker';
15
- import { Controller, useController, useWatch } from 'react-hook-form';
15
+ import { useController, Controller, useWatch } from 'react-hook-form';
16
16
  import { scroller, Events, Link as Link$1, animateScroll, Element } from 'react-scroll';
17
17
  import { DateTime } from 'luxon';
18
18
  import ru from 'date-fns/locale/ru';
@@ -441,19 +441,22 @@ var StyledHeader = styled(Grid)(templateObject_2$i || (templateObject_2$i = __ma
441
441
  var templateObject_1$u, templateObject_2$i;
442
442
 
443
443
  var DesktopInputWithMonthPicker = forwardRef(function (_a, ref) {
444
+ var _b;
444
445
  var name = _a.name, form = _a.form, disabled = _a.disabled, datePickerProps = _a.datePickerProps, onChange = _a.onChange, otherProps = __rest(_a, ["name", "form", "disabled", "datePickerProps", "onChange"]);
445
- var _b = useState(), changedValue = _b[0], setChangedValue = _b[1];
446
- var handleChange = function (date, field) {
446
+ var _c = useState(), changedValue = _c[0], setChangedValue = _c[1];
447
+ var _d = useController({
448
+ name: name,
449
+ control: form.control,
450
+ }), field = _d.field, fieldState = _d.fieldState;
451
+ var handleChange = function (date) {
447
452
  field.onChange(date);
448
- setChangedValue(date);
449
453
  if (onChange)
450
454
  onChange(date);
451
455
  };
452
- return (jsx(Wrapper$4, __assign({ ref: ref }, { children: jsx(Controller, { name: name, control: form.control, render: function (_a) {
453
- var _b;
454
- var field = _a.field, fieldState = _a.fieldState;
455
- return (jsx(DatePicker, __assign({ selected: field.value, onChange: function (e) { return handleChange(e, field); }, disabled: disabled, customInput: jsx(InputForDatepicker, __assign({ mask: "00.0000", name: name, disabled: disabled, message: (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message }, otherProps), changedValue), showMonthYearPicker: true, dateFormat: "MM.yyyy", popperPlacement: "bottom-end", calendarContainer: MonthPickerContainer, renderCustomHeader: function (props) { return (jsx(MonthPickerHeader, __assign({}, props))); } }, datePickerProps)));
456
- } }) })));
456
+ useEffect(function () {
457
+ setChangedValue(field.value);
458
+ }, [field.value]);
459
+ return (jsx(Wrapper$4, __assign({ ref: ref }, { children: jsx(DatePicker, __assign({ selected: field.value, onChange: handleChange, disabled: disabled, customInput: jsx(InputForDatepicker, __assign({ mask: "00.0000", name: name, disabled: disabled, message: (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message }, otherProps), changedValue), showMonthYearPicker: true, dateFormat: "MM.yyyy", popperPlacement: "bottom-end", calendarContainer: MonthPickerContainer, renderCustomHeader: function (props) { return (jsx(MonthPickerHeader, __assign({}, props))); } }, datePickerProps)) })));
457
460
  });
458
461
  var Wrapper$4 = styled.div(templateObject_1$t || (templateObject_1$t = __makeTemplateObject(["\n @media (max-width: 600px) {\n display: none;\n }\n"], ["\n @media (max-width: 600px) {\n display: none;\n }\n"])));
459
462
  var templateObject_1$t;
@@ -682,33 +685,32 @@ var InputWithDatePicker = forwardRef(function (_a, ref) {
682
685
  control: form.control,
683
686
  }), field = _c.field, fieldState = _c.fieldState;
684
687
  var error = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message;
685
- var formattedValue = field.value ? field.value.toFormat("dd.MM.yyyy") : "";
686
- var formattedDate = field.value ? field.value.toJSDate() : null;
688
+ var formValue = field.value;
689
+ var formattedValue = formValue ? formValue.toFormat("dd.MM.yyyy") : "";
690
+ var formattedDate = formValue ? formValue.toJSDate() : null;
687
691
  var _d = useToggle(), isModalOpen = _d[0], handleModalOpen = _d[1], handleModalClose = _d[2];
688
- var _e = useState(formattedDate), date = _e[0], setDate = _e[1];
689
- var _f = useState(formattedValue), value = _f[0], setValue = _f[1];
692
+ var _e = useState(formattedDate), calendarDate = _e[0], setCalendarDate = _e[1];
693
+ var _f = useState(formattedValue), inputValue = _f[0], setInputValue = _f[1];
690
694
  var yearList = generateYearRange(yearParams === null || yearParams === void 0 ? void 0 : yearParams.min, yearParams === null || yearParams === void 0 ? void 0 : yearParams.max);
695
+ var forwardedRef = useForkRef(ref, field.ref);
691
696
  useEffect(function () {
692
- if (!isModalOpen) {
693
- setDate(null);
694
- }
695
- else {
696
- setDate(formattedDate);
697
+ if (formattedValue) {
698
+ setInputValue(formattedValue);
697
699
  }
698
- }, [isModalOpen]);
700
+ }, [formattedValue]);
699
701
  var handleChange = function (e) {
700
702
  var targetValue = e.target.value;
701
- setValue(targetValue);
703
+ setInputValue(targetValue);
702
704
  if (targetValue.length !== 0 && isValidWithMaskExp.test(targetValue)) {
703
705
  var targetDate = DateTime.fromFormat(targetValue, "dd.MM.yyyy");
704
- setDate(targetDate.toJSDate());
706
+ setCalendarDate(targetDate.toJSDate());
705
707
  field === null || field === void 0 ? void 0 : field.onChange({ target: { value: targetDate, name: name }, type: "change" });
706
708
  if (onChange) {
707
709
  onChange(targetDate);
708
710
  }
709
711
  }
710
712
  else {
711
- setDate(null);
713
+ setCalendarDate(null);
712
714
  field === null || field === void 0 ? void 0 : field.onChange({ target: { value: null, name: name }, type: "change" });
713
715
  if (onChange) {
714
716
  onChange(null);
@@ -716,9 +718,9 @@ var InputWithDatePicker = forwardRef(function (_a, ref) {
716
718
  }
717
719
  };
718
720
  var acceptWithDateSelected = function () {
719
- if (date) {
720
- var dateObj = DateTime.fromJSDate(date);
721
- setValue(dateObj.toFormat("dd.MM.yyyy"));
721
+ if (calendarDate) {
722
+ var dateObj = DateTime.fromJSDate(calendarDate);
723
+ setInputValue(dateObj.toFormat("dd.MM.yyyy"));
722
724
  field === null || field === void 0 ? void 0 : field.onChange({ target: { value: dateObj, name: name }, type: "change" });
723
725
  if (onChange) {
724
726
  onChange(dateObj);
@@ -727,16 +729,9 @@ var InputWithDatePicker = forwardRef(function (_a, ref) {
727
729
  }
728
730
  };
729
731
  var handleDateChange = function (newDate) {
730
- setDate(newDate);
732
+ setCalendarDate(newDate);
731
733
  };
732
- var forwardedRef = useForkRef(ref, field.ref);
733
- useEffect(function () {
734
- setValue(formattedValue);
735
- }, [formattedValue]);
736
- useEffect(function () {
737
- setDate(formattedDate);
738
- }, [formattedDate]);
739
- return (jsxs$1(Fragment, { children: [jsx$1(InputForDatepicker, __assign({ mask: "00.00.0000", name: name, handleClick: handleModalOpen, value: formattedValue || value, onChange: handleChange, disabled: disabled, message: error, ref: forwardedRef }, props)), jsxs$1(StyledModal, __assign({ title: title, description: description, isOpen: isModalOpen, handleClose: handleModalClose, alignTitle: alignTitle }, { children: [jsx$1(ContentWrapper$2, { children: jsx$1(DatePicker, __assign({ inline: true, selected: date || formattedDate, onChange: handleDateChange, calendarContainer: StyledCalendarStandardContainer, renderCustomHeader: function (headProps) { return (jsx$1(CalendarHeaderWithSelect, __assign({ yearOptions: yearList, max: max, min: min }, headProps))); }, renderDayContents: function (day) { return (jsx$1(DayContent, { children: day })); }, maxDate: max === null || max === void 0 ? void 0 : max.toJSDate(), minDate: min === null || min === void 0 ? void 0 : min.toJSDate() }, datePickerProps)) }), jsx$1(ModalFooter, { fullWidth: true, disabled: !formattedDate && !date, onClick: acceptWithDateSelected, label: footerLabel })] }))] }));
734
+ return (jsxs$1(Fragment, { children: [jsx$1(InputForDatepicker, __assign({ mask: "00.00.0000", name: name, handleClick: handleModalOpen, value: formattedValue || inputValue, onChange: handleChange, disabled: disabled, message: error, ref: forwardedRef }, props)), jsxs$1(StyledModal, __assign({ title: title, description: description, isOpen: isModalOpen, handleClose: handleModalClose, alignTitle: alignTitle }, { children: [jsx$1(ContentWrapper$2, { children: jsx$1(DatePicker, __assign({ inline: true, selected: calendarDate || formattedDate, onChange: handleDateChange, calendarContainer: StyledCalendarStandardContainer, renderCustomHeader: function (headProps) { return (jsx$1(CalendarHeaderWithSelect, __assign({ yearOptions: yearList, max: max, min: min }, headProps))); }, renderDayContents: function (day) { return (jsx$1(DayContent, { children: day })); }, maxDate: max === null || max === void 0 ? void 0 : max.toJSDate(), minDate: min === null || min === void 0 ? void 0 : min.toJSDate() }, datePickerProps)) }), jsx$1(ModalFooter, { fullWidth: true, disabled: !formattedDate && !calendarDate, onClick: acceptWithDateSelected, label: footerLabel })] }))] }));
740
735
  });
741
736
  InputWithDatePicker.defaultProps = {
742
737
  alignTitle: "center",