TP-42454 | Date picker validations added

This commit is contained in:
Aman Chaturvedi
2023-11-02 17:51:43 +05:30
parent a1d280f5aa
commit ae6399e1d9
3 changed files with 24 additions and 10 deletions

View File

@@ -29,7 +29,10 @@ interface IDateInput {
error: any;
}
const END_OF_MONTH = 'END_OF_MONTH';
export enum DateValue {
CURRENT = 'CURRENT',
END_OF_MONTH = 'END_OF_MONTH',
}
const DateInput: React.FC<IDateInput> = (props) => {
const { questionId, error, sectionId, widgetId, caseId, questionType } = props;
@@ -100,16 +103,25 @@ const DateInput: React.FC<IDateInput> = (props) => {
return (
<WebBasedDatePicker
displayFormat="DD-MM-YYYY"
value={question.metadata.defaultValue === 'CURRENT' ? Date().toString() : dateString}
min={new Date().toString()}
value={
question.metadata.defaultValue === DateValue.CURRENT
? Date().toString()
: dateString
}
min={
question.metadata.validators?.[Validators.MIN_TODAY] ? new Date().toString() : ''
}
containerStyle={GenericStyles.containerStyle}
type="date"
onChange={(text) => handleChange(text, onChange)}
outputFormat="DD-MM-YYYY"
max={
question.metadata.validators?.[Validators.MAX_DATE]?.value === END_OF_MONTH
question.metadata.validators?.[Validators.MAX_DATE]?.value ===
DateValue.END_OF_MONTH
? new Date(new Date().getFullYear(), new Date().getMonth() + 1, 0).toString()
: undefined
: question.metadata.validators?.[Validators.MAX_TODAY]?.value
? new Date().toString()
: ''
}
/>
);

View File

@@ -16,6 +16,7 @@ import {
DefaultPickerModeVisibleFormatMapping,
IDateTimePickerMode,
} from '../../../../RN-UI-LIB/src/utlis/dates';
import { DateValue } from './DateInput';
interface ITimeInput {
questionType: string;
@@ -84,7 +85,9 @@ const TimeInput: React.FC<ITimeInput> = (props) => {
return (
<WebBasedDatePicker
value={
question.metadata.defaultValue === 'CURRENT' ? Date().toString() : value?.answer
question.metadata.defaultValue === DateValue.CURRENT
? Date().toString()
: value?.answer
}
containerStyle={GenericStyles.containerStyle}
type="time"

View File

@@ -16,7 +16,6 @@ import { setForceUninstallData } from '../reducer/metadataSlice';
import { logError } from '../components/utlis/errorUtils';
import { GenericFunctionArgs } from '../common/GenericTypes';
import { setFeedbackFilterTemplate } from '@reducers/feedbackFiltersSlice';
export interface CaseUpdates {
updateType: string;
updatedCaseDetail: CaseDetail;
@@ -34,7 +33,7 @@ const isUserSignedIn = () => {
const useFirestoreUpdates = () => {
const {
user: { user, isLoggedIn, sessionDetails, lock, selectedAgent = MY_CASE_ITEM },
user: { user, isLoggedIn, sessionDetails, lock, selectedAgent = MY_CASE_ITEM, isExternalAgent },
allCases: { caseDetails, casesList },
} = useAppSelector((state: RootState) => ({
user: state.user || {},
@@ -211,7 +210,7 @@ const useFirestoreUpdates = () => {
};
const subscribeToCollectionTemplate = () => {
const collectionPath = 'template/template_collections_v2';
const collectionPath = `template/${isExternalAgent ? 'external' : 'inhouse'}_template`;
return subscribeToDoc(handleCollectionTemplateUpdate, collectionPath);
};
@@ -282,7 +281,7 @@ const useFirestoreUpdates = () => {
lockUnsubscribe && lockUnsubscribe();
feedbackFiltersUnsubscribe && feedbackFiltersUnsubscribe();
};
}, [isLoggedIn, user?.referenceId]);
}, [isLoggedIn, user?.referenceId, isExternalAgent]);
useEffect(() => {
if (!isTeamLead) {