diff --git a/src/app/components/Player/PlayerForm/index.tsx b/src/app/components/Player/PlayerForm/index.tsx index 7c693319..78fd41e8 100644 --- a/src/app/components/Player/PlayerForm/index.tsx +++ b/src/app/components/Player/PlayerForm/index.tsx @@ -28,7 +28,9 @@ export const PlayerForm = ({ player }: Props) => { motto: player ? player.motto : "", emoji: player ? player.emoji : "", }); + const [emojiSelectorOpen, setEmojiSelectorOpen] = useState(false); + const [isButtonPressed, setButtonPressed] = useState(false); const router = useRouter(); @@ -51,6 +53,7 @@ export const PlayerForm = ({ player }: Props) => { }; const submitNewPlayer = async (newPlayer: NewPlayer) => { + setButtonPressed(!isButtonPressed); const res = await fetch("/api/player/", { method: "POST", headers: { @@ -129,7 +132,7 @@ export const PlayerForm = ({ player }: Props) => { { return (
=> { - const colOptions = ["first_name", "last_name", "nickname", "id"]; - const permutations = permutator(colOptions); - - const options = permutations.map((perm) => { - return Sequelize.where( - Sequelize.fn("concat", ...perm.map((col) => Sequelize.col(col))), - { - [Op.iLike]: `%${query.replaceAll(" ", "%")}%`, - }, + try { + const colOptions = ["first_name", "last_name", "nickname", "id"]; + const permutations = permutator(colOptions); + + const queryParts = query.split(" ").filter((part) => part.length > 0); + + const options = await Promise.all( + queryParts.map(async (part) => { + return await Promise.all( + permutations.map(async (perm) => { + return Sequelize.where( + Sequelize.fn("concat", ...perm.map((col) => Sequelize.col(col))), + { + [Op.iLike]: `${part}%`, + }, + ); + }), + ); + }), ); - }); - const players = await PlayerModel.findAll({ - where: { [Op.or]: options }, - limit: limit, - }); - return players; + const whereClause = { + [Op.and]: options.map((opts) => ({ [Op.or]: opts })), + }; + + const players = await PlayerModel.findAll({ + where: whereClause, + limit: limit, + }); + + return players; + } catch (error) { + console.error("Error in searchPlayers:", error); + throw error; + } }; export {