|
@@ -86,6 +86,7 @@ const DateTimePicker = ({
|
|
|
isDisabled = false,
|
|
isDisabled = false,
|
|
|
onBlur: onBlurProp,
|
|
onBlur: onBlurProp,
|
|
|
dateTimeSheetProps,
|
|
dateTimeSheetProps,
|
|
|
|
|
+ variant = "single",
|
|
|
hintTextIconStyle,
|
|
hintTextIconStyle,
|
|
|
initialDateRange,
|
|
initialDateRange,
|
|
|
type = "default",
|
|
type = "default",
|
|
@@ -351,27 +352,100 @@ const DateTimePicker = ({
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- const selectObject = (selectedDate: Date) => {
|
|
|
|
|
|
|
+ const selectDateRule = (selectedDateRule?: RRule) => {
|
|
|
if(isWorkWithRRule) {
|
|
if(isWorkWithRRule) {
|
|
|
- // TODO: date rule.
|
|
|
|
|
- console.log(0);
|
|
|
|
|
- } else {
|
|
|
|
|
- if(isMultipleSelect) {
|
|
|
|
|
- // TODO: dateRange.
|
|
|
|
|
- console.log(1);
|
|
|
|
|
|
|
+ if(selectedDateRule && selectedDateRule !== dateRule) {
|
|
|
|
|
+ if(selectValidation) {
|
|
|
|
|
+ if(selectValidation({
|
|
|
|
|
+ dateRule: selectedDateRule
|
|
|
|
|
+ })) {
|
|
|
|
|
+ if(isWorkWithRealtime) {
|
|
|
|
|
+ setDateRule(selectedDateRule);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ setTempDateRule(selectedDateRule);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if(isWorkWithRealtime) {
|
|
|
|
|
+ setDateRule(selectedDateRule);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ setTempDateRule(selectedDateRule);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
} else {
|
|
} else {
|
|
|
- if(selectedDate === date) {
|
|
|
|
|
- if(removeSelectValidation) {
|
|
|
|
|
- if(removeSelectValidation({
|
|
|
|
|
- date
|
|
|
|
|
- })) {
|
|
|
|
|
- if(isWorkWithRealtime) {
|
|
|
|
|
- setDate(undefined);
|
|
|
|
|
- } else {
|
|
|
|
|
- setTempDate(undefined);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if(removeSelectValidation) {
|
|
|
|
|
+ if(removeSelectValidation({
|
|
|
|
|
+ dateRule
|
|
|
|
|
+ })) {
|
|
|
|
|
+ setTempDateRule(undefined);
|
|
|
|
|
+ setDateRule(undefined);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ setTempDateRule(undefined);
|
|
|
|
|
+ setDateRule(undefined);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ const selectMultipleObject = (selectedDateRange?: {
|
|
|
|
|
+ start?: Date;
|
|
|
|
|
+ end?: Date;
|
|
|
|
|
+ }) => {
|
|
|
|
|
+ if(!isWorkWithRRule && isMultipleSelect) {
|
|
|
|
|
+ if(selectedDateRange) {
|
|
|
|
|
+ if(selectValidation) {
|
|
|
|
|
+ if(selectValidation({
|
|
|
|
|
+ dateRule
|
|
|
|
|
+ })) {
|
|
|
|
|
+ if(isWorkWithRealtime) {
|
|
|
|
|
+ setDateRange({
|
|
|
|
|
+ start: selectedDateRange.start,
|
|
|
|
|
+ end: selectedDateRange.end
|
|
|
|
|
+ });
|
|
|
|
|
+ } else {
|
|
|
|
|
+ setTempDateRange({
|
|
|
|
|
+ start: selectedDateRange.start,
|
|
|
|
|
+ end: selectedDateRange.end
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if(isWorkWithRealtime) {
|
|
|
|
|
+ setDateRange({
|
|
|
|
|
+ start: selectedDateRange.start,
|
|
|
|
|
+ end: selectedDateRange.end
|
|
|
|
|
+ });
|
|
|
} else {
|
|
} else {
|
|
|
|
|
+ setTempDateRange({
|
|
|
|
|
+ start: selectedDateRange.start,
|
|
|
|
|
+ end: selectedDateRange.end
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if(removeSelectValidation) {
|
|
|
|
|
+ if(removeSelectValidation({
|
|
|
|
|
+ dateRange: selectedDateRange
|
|
|
|
|
+ })) {
|
|
|
|
|
+ setTempDateRange(undefined);
|
|
|
|
|
+ setDateRange(undefined);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ setTempDateRange(undefined);
|
|
|
|
|
+ setDateRange(undefined);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ const selectObject = (selectedDate?: Date) => {
|
|
|
|
|
+ if(!isWorkWithRRule && !isMultipleSelect) {
|
|
|
|
|
+ if(selectedDate === date) {
|
|
|
|
|
+ if(removeSelectValidation) {
|
|
|
|
|
+ if(removeSelectValidation({
|
|
|
|
|
+ date
|
|
|
|
|
+ })) {
|
|
|
if(isWorkWithRealtime) {
|
|
if(isWorkWithRealtime) {
|
|
|
setDate(undefined);
|
|
setDate(undefined);
|
|
|
} else {
|
|
} else {
|
|
@@ -379,23 +453,29 @@ const DateTimePicker = ({
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
- if(selectValidation) {
|
|
|
|
|
- if(selectValidation({
|
|
|
|
|
- date
|
|
|
|
|
- })) {
|
|
|
|
|
- if(isWorkWithRealtime) {
|
|
|
|
|
- setDate(selectedDate);
|
|
|
|
|
- } else {
|
|
|
|
|
- setTempDate(selectedDate);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if(isWorkWithRealtime) {
|
|
|
|
|
+ setDate(undefined);
|
|
|
} else {
|
|
} else {
|
|
|
|
|
+ setTempDate(undefined);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if(selectValidation) {
|
|
|
|
|
+ if(selectValidation({
|
|
|
|
|
+ date
|
|
|
|
|
+ })) {
|
|
|
if(isWorkWithRealtime) {
|
|
if(isWorkWithRealtime) {
|
|
|
setDate(selectedDate);
|
|
setDate(selectedDate);
|
|
|
} else {
|
|
} else {
|
|
|
setTempDate(selectedDate);
|
|
setTempDate(selectedDate);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if(isWorkWithRealtime) {
|
|
|
|
|
+ setDate(selectedDate);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ setTempDate(selectedDate);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -769,22 +849,31 @@ const DateTimePicker = ({
|
|
|
LoadingIconComponentProp={LoadingIconComponentProp}
|
|
LoadingIconComponentProp={LoadingIconComponentProp}
|
|
|
dateTimePickerKey={dateTimePickerKey.current}
|
|
dateTimePickerKey={dateTimePickerKey.current}
|
|
|
customLocalize={customDateTimeSheetLocalize}
|
|
customLocalize={customDateTimeSheetLocalize}
|
|
|
|
|
+ selectMultipleObject={selectMultipleObject}
|
|
|
isWorkWithRealtime={isWorkWithRealtime}
|
|
isWorkWithRealtime={isWorkWithRealtime}
|
|
|
customTheme={customDateTimeSheetTheme}
|
|
customTheme={customDateTimeSheetTheme}
|
|
|
bottomSheetProps={dateTimeSheetProps}
|
|
bottomSheetProps={dateTimeSheetProps}
|
|
|
isMultipleSelect={isMultipleSelect}
|
|
isMultipleSelect={isMultipleSelect}
|
|
|
isShowTools={isShowDateTimeTools}
|
|
isShowTools={isShowDateTimeTools}
|
|
|
|
|
+ selectDateRule={selectDateRule}
|
|
|
bottomSheetRef={bottomSheetRef}
|
|
bottomSheetRef={bottomSheetRef}
|
|
|
selectObject={selectObject}
|
|
selectObject={selectObject}
|
|
|
setIsLoading={setIsLoading}
|
|
setIsLoading={setIsLoading}
|
|
|
|
|
+ setDateRange={setDateRange}
|
|
|
setIsActive={setIsActive}
|
|
setIsActive={setIsActive}
|
|
|
|
|
+ setDateRule={setDateRule}
|
|
|
maxChoice={maxChoice}
|
|
maxChoice={maxChoice}
|
|
|
minChoice={minChoice}
|
|
minChoice={minChoice}
|
|
|
isLoading={isLoading}
|
|
isLoading={isLoading}
|
|
|
|
|
+ dateRange={dateRange}
|
|
|
|
|
+ dateRule={dateRule}
|
|
|
isActive={isActive}
|
|
isActive={isActive}
|
|
|
|
|
+ variant={variant}
|
|
|
|
|
+ setDate={setDate}
|
|
|
cancel={cancel}
|
|
cancel={cancel}
|
|
|
clean={clean}
|
|
clean={clean}
|
|
|
title={title}
|
|
title={title}
|
|
|
|
|
+ date={date}
|
|
|
ok={ok}
|
|
ok={ok}
|
|
|
/>
|
|
/>
|
|
|
</View>;
|
|
</View>;
|