Alteração para consultar o numero somente quando digitado por completo. Alteração para o cursor nao ir para o final do textfield
parent
9ecad6f9b5
commit
441f1fa83e
|
@ -8,10 +8,10 @@ import Dialog from "@material-ui/core/Dialog";
|
|||
import DialogActions from "@material-ui/core/DialogActions";
|
||||
import DialogContent from "@material-ui/core/DialogContent";
|
||||
import DialogTitle from "@material-ui/core/DialogTitle";
|
||||
import Autocomplete, {
|
||||
createFilterOptions,
|
||||
} from "@material-ui/lab/Autocomplete";
|
||||
import CircularProgress from "@material-ui/core/CircularProgress";
|
||||
// import Autocomplete, {
|
||||
// createFilterOptions,
|
||||
// } from "@material-ui/lab/Autocomplete";
|
||||
// import CircularProgress from "@material-ui/core/CircularProgress";
|
||||
|
||||
import { i18n } from "../../translate/i18n";
|
||||
import api from "../../services/api";
|
||||
|
@ -20,18 +20,18 @@ import ContactModal from "../ContactModal";
|
|||
import toastError from "../../errors/toastError";
|
||||
import { AuthContext } from "../../context/Auth/AuthContext";
|
||||
|
||||
const filter = createFilterOptions({
|
||||
trim: true,
|
||||
});
|
||||
// const filter = createFilterOptions({
|
||||
// trim: true,
|
||||
// });
|
||||
|
||||
const NewTicketModal = ({ modalOpen, onClose }) => {
|
||||
const history = useHistory();
|
||||
|
||||
const [options, setOptions] = useState([]);
|
||||
// const [options, setOptions] = useState([]);
|
||||
const [loading, setLoading] = useState(false);
|
||||
const [searchParam, setSearchParam] = useState("");
|
||||
const [selectedContact, setSelectedContact] = useState(null);
|
||||
const [newContact, setNewContact] = useState({});
|
||||
// const [newContact, setNewContact] = useState({});
|
||||
const [contactModalOpen, setContactModalOpen] = useState(false);
|
||||
const { user } = useContext(AuthContext);
|
||||
|
||||
|
@ -52,29 +52,29 @@ const NewTicketModal = ({ modalOpen, onClose }) => {
|
|||
setLoading(false);
|
||||
return;
|
||||
}
|
||||
setLoading(true);
|
||||
const delayDebounceFn = setTimeout(() => {
|
||||
const fetchContacts = async () => {
|
||||
try {
|
||||
const { data } = await api.get("contacts", {
|
||||
params: { searchParam },
|
||||
});
|
||||
// setLoading(true);
|
||||
// const delayDebounceFn = setTimeout(() => {
|
||||
// const fetchContacts = async () => {
|
||||
// try {
|
||||
// const { data } = await api.get("contacts", {
|
||||
// params: { searchParam },
|
||||
// });
|
||||
|
||||
// console.log('data.contacts: ', data.contacts)
|
||||
// // console.log('data.contacts: ', data.contacts)
|
||||
|
||||
setOptions(data.contacts);
|
||||
setLoading(false);
|
||||
} catch (err) {
|
||||
setLoading(false);
|
||||
toastError(err);
|
||||
}
|
||||
// setOptions(data.contacts);
|
||||
// setLoading(false);
|
||||
// } catch (err) {
|
||||
// setLoading(false);
|
||||
// toastError(err);
|
||||
// }
|
||||
|
||||
};
|
||||
// };
|
||||
|
||||
fetchContacts();
|
||||
}, 500);
|
||||
// fetchContacts();
|
||||
// }, 500);
|
||||
|
||||
return () => clearTimeout(delayDebounceFn);
|
||||
// return () => clearTimeout(delayDebounceFn);
|
||||
}, [searchParam, modalOpen]);
|
||||
|
||||
const handleClose = () => {
|
||||
|
@ -87,11 +87,11 @@ const NewTicketModal = ({ modalOpen, onClose }) => {
|
|||
|
||||
try {
|
||||
|
||||
// console.log('=========> options: ', options)
|
||||
const { data: data0 } = await api.get("/contacts/", { params: { searchParam, pageNumber: "1" }, });
|
||||
|
||||
if (options && options.length > 0) {
|
||||
console.log('-----> options[0].id: ', options[0].id)
|
||||
contactId = options[0].id
|
||||
if (data0 && data0.contacts.length > 0) {
|
||||
console.log('-----> data: ', data0.contacts[0].id)
|
||||
contactId = data0.contacts[0].id
|
||||
}
|
||||
else {
|
||||
console.log('NO CONTACT whith this searchParam: ', searchParam)
|
||||
|
@ -154,7 +154,7 @@ const NewTicketModal = ({ modalOpen, onClose }) => {
|
|||
|
||||
const regex = /^[0-9\b]+$/; // Regular expression to match only numbers
|
||||
|
||||
// setPhone(event.target.value);
|
||||
setSearchParam(number)
|
||||
|
||||
setTimeout(() => {
|
||||
|
||||
|
@ -173,41 +173,42 @@ const NewTicketModal = ({ modalOpen, onClose }) => {
|
|||
|
||||
setSearchParam(newValue)
|
||||
|
||||
}, 100);
|
||||
}, 30);
|
||||
|
||||
};
|
||||
|
||||
const handleSelectOption = (e, newValue) => {
|
||||
|
||||
// const handleSelectOption = (e, newValue) => {
|
||||
|
||||
|
||||
if (newValue?.number) {
|
||||
// if (newValue?.number) {
|
||||
|
||||
console.log('newValue: ', newValue)
|
||||
// console.log('newValue: ', newValue)
|
||||
|
||||
setSelectedContact(newValue);
|
||||
// setSelectedContact(newValue);
|
||||
|
||||
} else if (newValue?.name) {
|
||||
// } else if (newValue?.name) {
|
||||
|
||||
// console.log('newValue?.name: ', newValue?.name)
|
||||
// // console.log('newValue?.name: ', newValue?.name)
|
||||
|
||||
const regex = /^[0-9\b]+$/; // Regular expression to match only numbers
|
||||
// const regex = /^[0-9\b]+$/; // Regular expression to match only numbers
|
||||
|
||||
if (newValue.name.match(regex)) {
|
||||
// if (newValue.name.match(regex)) {
|
||||
|
||||
console.log('==========> newValue.name', newValue.name)
|
||||
setNewContact({ name: newValue.name, number: newValue.name });
|
||||
// console.log('==========> newValue.name', newValue.name)
|
||||
// setNewContact({ name: newValue.name, number: newValue.name });
|
||||
|
||||
}
|
||||
else {
|
||||
// }
|
||||
// else {
|
||||
|
||||
setNewContact({ name: newValue.name });
|
||||
setContactModalOpen(true);
|
||||
// setNewContact({ name: newValue.name });
|
||||
// setContactModalOpen(true);
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
// }
|
||||
// };
|
||||
|
||||
const handleCloseContactModal = () => {
|
||||
setContactModalOpen(false);
|
||||
|
@ -217,39 +218,39 @@ const NewTicketModal = ({ modalOpen, onClose }) => {
|
|||
handleSaveTicket(contact.id);
|
||||
};
|
||||
|
||||
const createAddContactOption = (filterOptions, params) => {
|
||||
const filtered = filter(filterOptions, params);
|
||||
// const createAddContactOption = (filterOptions, params) => {
|
||||
// const filtered = filter(filterOptions, params);
|
||||
|
||||
if (params.inputValue !== "" && !loading && searchParam.length >= 3) {
|
||||
filtered.push({
|
||||
name: `${params.inputValue}`,
|
||||
});
|
||||
}
|
||||
// if (params.inputValue !== "" && !loading && searchParam.length >= 3) {
|
||||
// filtered.push({
|
||||
// name: `${params.inputValue}`,
|
||||
// });
|
||||
// }
|
||||
|
||||
return filtered;
|
||||
};
|
||||
// return filtered;
|
||||
// };
|
||||
|
||||
const renderOption = option => {
|
||||
if (option.number) {
|
||||
return `${option.name} - ${option.number}`;
|
||||
} else {
|
||||
return `${i18n.t("newTicketModal.add")} ${option.name}`;
|
||||
}
|
||||
};
|
||||
// const renderOption = option => {
|
||||
// if (option.number) {
|
||||
// return `${option.name} - ${option.number}`;
|
||||
// } else {
|
||||
// return `${i18n.t("newTicketModal.add")} ${option.name}`;
|
||||
// }
|
||||
// };
|
||||
|
||||
const renderOptionLabel = option => {
|
||||
if (option.number) {
|
||||
return `${option.name} - ${option.number}`;
|
||||
} else {
|
||||
return `${option.name}`;
|
||||
}
|
||||
};
|
||||
// const renderOptionLabel = option => {
|
||||
// if (option.number) {
|
||||
// return `${option.name} - ${option.number}`;
|
||||
// } else {
|
||||
// return `${option.name}`;
|
||||
// }
|
||||
// };
|
||||
|
||||
return (
|
||||
<>
|
||||
<ContactModal
|
||||
open={contactModalOpen}
|
||||
initialValues={newContact}
|
||||
// initialValues={newContact}
|
||||
onClose={handleCloseContactModal}
|
||||
onSave={handleAddNewContactTicket}
|
||||
></ContactModal>
|
||||
|
@ -264,31 +265,18 @@ const NewTicketModal = ({ modalOpen, onClose }) => {
|
|||
label={i18n.t("newTicketModal.fieldLabel")}
|
||||
variant="outlined"
|
||||
autoFocus
|
||||
|
||||
value={searchParam}
|
||||
onChange={e => handleChange(e.target.value)}
|
||||
|
||||
// onChange={e => setSearchParam(e.target.value)}
|
||||
onChange={e => {
|
||||
|
||||
handleChange(e.target.value)
|
||||
|
||||
// setSearchParam(e.target.value)
|
||||
}}
|
||||
onKeyPress={e => {
|
||||
if (loading || !selectedContact) return;
|
||||
else if (e.key === "Enter") {
|
||||
handleSaveTicket(selectedContact.id);
|
||||
}
|
||||
}}
|
||||
// InputProps={{
|
||||
// ...params.InputProps,
|
||||
// endAdornment: (
|
||||
// <React.Fragment>
|
||||
// {loading ? (
|
||||
// <CircularProgress color="inherit" size={20} />
|
||||
// ) : null}
|
||||
// {params.InputProps.endAdornment}
|
||||
// </React.Fragment>
|
||||
// ),
|
||||
// }}
|
||||
|
||||
/>
|
||||
</DialogContent>
|
||||
|
||||
|
|
Loading…
Reference in New Issue