Skip to content

Commit

Permalink
Merge pull request #654 from AkshataKatwal16/reassign-cohorts
Browse files Browse the repository at this point in the history
Issue #0000 feat: Avoid multiple calls for suggestionAPI
  • Loading branch information
itsvick authored Jan 29, 2025
2 parents 09bee26 + d3d273d commit 5d600e9
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 17 deletions.
2 changes: 1 addition & 1 deletion src/components/AddLeanerModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@ const AddLearnerModal: React.FC<AddLearnerModalProps> = ({
sendEmail(
creatorName,
apiBody['username'],
password,
apiBody['username'],
userEmail,
apiBody['firstName']
);
Expand Down
36 changes: 20 additions & 16 deletions src/components/DynamicForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ const DynamicForm: React.FC<DynamicFormProps> = ({
};
const { t } = useTranslation();
const [suggestions, setSuggestions] = useState<string[]>([]);
const [isGetUserName, setIsGetUserName] = useState<boolean>(false);


const submittedButtonStatus = useSubmittedButtonStore(
(state: any) => state.submittedButtonStatus
Expand Down Expand Up @@ -274,34 +276,35 @@ const DynamicForm: React.FC<DynamicFormProps> = ({
return error;
});
}
const validateUsername = async (userData: { firstName: string; lastName: string; username: string }) => {
const validateUsername = async (userData: {
firstName: string;
lastName: string;
username: string;
}) => {
try {
const response = await userNameExist(userData);
setSuggestions([response?.suggestedUsername]);
console.log('suggestions.length', suggestions.length);
if (suggestions.length === 0) {
const response = await userNameExist(userData);
setSuggestions([response?.suggestedUsername]);
setIsGetUserName(false);
}
} catch (error) {
setSuggestions([]);
setIsGetUserName(true);
console.error('Error validating username:', error);
}
};
const handleChange= async(event: any)=> {
const sanitizedData = sanitizeFormData(event.formData);
if(formData?.username && formData?.firstName && formData?.lastName && formData?.username!== event.formData?.username)
{
const userData = {
firstName: formData?.firstName,
lastName: formData?.lastName,
username: event.formData?.username,
}
// const response = await userNameExist(userData);
// setSuggestions([response?.suggestedUsername]);
await validateUsername(userData);

if (event.formData?.username !== formData?.username && formData?.username) {
setIsGetUserName(false);
setSuggestions([]);
}
onChange({ ...event, formData: sanitizedData });
}
const handleUsernameBlur = async (username: string) => {

if (username && formData?.firstName && formData?.lastName) {
if (username && formData?.firstName && formData?.lastName && !isGetUserName ) {
const userData = {
firstName: formData?.firstName,
lastName: formData?.lastName,
Expand All @@ -311,7 +314,7 @@ const DynamicForm: React.FC<DynamicFormProps> = ({
}
};
const handleFirstLastNameBlur = async (lastName: string) => {
if (lastName && !isEdit) {
if (lastName && !isEdit && !isGetUserName) {
try {
console.log('Username onblur called' ,formData);
if(formData?.firstName && formData?.lastName){
Expand Down Expand Up @@ -343,6 +346,7 @@ const DynamicForm: React.FC<DynamicFormProps> = ({
...prev,
username: selectedUsername,
}));
setIsGetUserName(true)
setSuggestions([]);
};

Expand Down

0 comments on commit 5d600e9

Please sign in to comment.