mirror of
https://github.com/cheveguerra/whaticket-community.git
synced 2026-04-18 03:39:29 +00:00
improvement: trim search params on contacts and tickets filters
This commit is contained in:
@@ -20,8 +20,6 @@ interface Response {
|
||||
export const RefreshTokenService = async (token: string): Promise<Response> => {
|
||||
let decoded;
|
||||
|
||||
console.log(token);
|
||||
|
||||
try {
|
||||
decoded = verify(token, authConfig.refreshSecret);
|
||||
} catch (err) {
|
||||
|
||||
@@ -22,10 +22,10 @@ const ListContactsService = async ({
|
||||
name: Sequelize.where(
|
||||
Sequelize.fn("LOWER", Sequelize.col("name")),
|
||||
"LIKE",
|
||||
`%${searchParam.toLowerCase()}%`
|
||||
`%${searchParam.toLowerCase().trim()}%`
|
||||
)
|
||||
},
|
||||
{ number: { [Op.like]: `%${searchParam}%` } }
|
||||
{ number: { [Op.like]: `%${searchParam.toLowerCase().trim()}%` } }
|
||||
]
|
||||
};
|
||||
const limit = 20;
|
||||
|
||||
@@ -55,6 +55,8 @@ const ListTicketsService = async ({
|
||||
}
|
||||
|
||||
if (searchParam) {
|
||||
const sanitizedSearchParam = searchParam.toLocaleLowerCase().trim();
|
||||
|
||||
includeCondition = [
|
||||
...includeCondition,
|
||||
{
|
||||
@@ -65,7 +67,7 @@ const ListTicketsService = async ({
|
||||
body: where(
|
||||
fn("LOWER", col("body")),
|
||||
"LIKE",
|
||||
`%${searchParam.toLowerCase()}%`
|
||||
`%${sanitizedSearchParam}%`
|
||||
)
|
||||
},
|
||||
required: false,
|
||||
@@ -79,15 +81,15 @@ const ListTicketsService = async ({
|
||||
"$contact.name$": where(
|
||||
fn("LOWER", col("name")),
|
||||
"LIKE",
|
||||
`%${searchParam.toLowerCase()}%`
|
||||
`%${sanitizedSearchParam}%`
|
||||
)
|
||||
},
|
||||
{ "$contact.number$": { [Op.like]: `%${searchParam}%` } },
|
||||
{ "$contact.number$": { [Op.like]: `%${sanitizedSearchParam}%` } },
|
||||
{
|
||||
"$message.body$": where(
|
||||
fn("LOWER", col("body")),
|
||||
"LIKE",
|
||||
`%${searchParam.toLowerCase()}%`
|
||||
`%${sanitizedSearchParam}%`
|
||||
)
|
||||
}
|
||||
]
|
||||
|
||||
@@ -9,7 +9,9 @@ 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 from "@material-ui/lab/Autocomplete";
|
||||
import Autocomplete, {
|
||||
createFilterOptions,
|
||||
} from "@material-ui/lab/Autocomplete";
|
||||
import CircularProgress from "@material-ui/core/CircularProgress";
|
||||
import { green } from "@material-ui/core/colors";
|
||||
|
||||
@@ -39,6 +41,12 @@ const useStyles = makeStyles(theme => ({
|
||||
},
|
||||
}));
|
||||
|
||||
const filterOptions = createFilterOptions({
|
||||
matchFrom: "start",
|
||||
trim: true,
|
||||
stringify: option => option.name,
|
||||
});
|
||||
|
||||
const NewTicketModal = ({ modalOpen, onClose }) => {
|
||||
const history = useHistory();
|
||||
const classes = useStyles();
|
||||
@@ -73,6 +81,8 @@ const NewTicketModal = ({ modalOpen, onClose }) => {
|
||||
return () => clearTimeout(delayDebounceFn);
|
||||
}, [searchParam, modalOpen]);
|
||||
|
||||
console.log(options);
|
||||
|
||||
const handleClose = () => {
|
||||
onClose();
|
||||
setSearchParam("");
|
||||
@@ -121,7 +131,8 @@ const NewTicketModal = ({ modalOpen, onClose }) => {
|
||||
setSelectedContact(newValue);
|
||||
}}
|
||||
options={options}
|
||||
noOptionsText="No contacts found. Try another term."
|
||||
filterOptions={filterOptions}
|
||||
noOptionsText={i18n.t("newTicketModal.noOptions")}
|
||||
loading={loading}
|
||||
renderInput={params => (
|
||||
<TextField
|
||||
|
||||
@@ -178,7 +178,8 @@ const messages = {
|
||||
},
|
||||
newTicketModal: {
|
||||
title: "Create Ticket",
|
||||
fieldLabel: "Type to search for the contact",
|
||||
fieldLabel: "Type to search for a contact",
|
||||
noOptions: "No contacts found. Try another name.",
|
||||
buttons: {
|
||||
ok: "Save",
|
||||
cancel: "Cancel",
|
||||
@@ -243,8 +244,8 @@ const messages = {
|
||||
buttons: {
|
||||
return: "Return",
|
||||
resolve: "Resolve",
|
||||
reopen: "Reopen",
|
||||
accept: "Accept"
|
||||
reopen: "Reopen",
|
||||
accept: "Accept",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -180,6 +180,7 @@ const messages = {
|
||||
newTicketModal: {
|
||||
title: "Criar Ticket",
|
||||
fieldLabel: "Digite para pesquisar o contato",
|
||||
noOptions: "Nenhum contato encotrado. Tente outro nome.",
|
||||
buttons: {
|
||||
ok: "Salvar",
|
||||
cancel: "Cancelar",
|
||||
|
||||
Reference in New Issue
Block a user