[#415] added keyword field highligh on empty search (#423)

Co-authored-by: Camille Moussu <cmoussu@linagora.com>
This commit is contained in:
Camille Moussu
2025-12-16 14:09:09 +01:00
committed by GitHub
parent 1a60850637
commit a28f41fab9
5 changed files with 38 additions and 16 deletions
+26 -12
View File
@@ -56,7 +56,7 @@ export default function SearchBar() {
const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null); const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);
const filterOpen = Boolean(anchorEl); const filterOpen = Boolean(anchorEl);
const [filterError, setFilterError] = useState(false);
const searchWidth = { const searchWidth = {
xs: "10vw", xs: "10vw",
sm: "20vw", sm: "20vw",
@@ -142,6 +142,7 @@ export default function SearchBar() {
attendees: [] as userAttendee[], attendees: [] as userAttendee[],
}); });
setAnchorEl(null); setAnchorEl(null);
setFilterError(false);
}; };
const handleContactSelect = (_event: any, contacts: User[]) => { const handleContactSelect = (_event: any, contacts: User[]) => {
@@ -174,9 +175,11 @@ export default function SearchBar() {
const cleanedQuery = buildQuery(searchQuery, filters); const cleanedQuery = buildQuery(searchQuery, filters);
if (cleanedQuery) { if (cleanedQuery) {
dispatch(searchEventsAsync(cleanedQuery)); dispatch(searchEventsAsync(cleanedQuery));
dispatch(setView("search"));
setAnchorEl(null);
} else {
filterOpen && setFilterError(true);
} }
dispatch(setView("search"));
setAnchorEl(null);
}; };
useEffect(() => { useEffect(() => {
@@ -446,11 +449,16 @@ export default function SearchBar() {
</InputLabel> </InputLabel>
<TextField <TextField
fullWidth fullWidth
error={filterError}
helperText={filterError ? t("search.error.emptySearch") : ""}
placeholder={t("search.keywordsPlaceholder")} placeholder={t("search.keywordsPlaceholder")}
value={filters.keywords} value={filters.keywords}
onChange={(e) => onChange={(e) => {
handleFilterChange("keywords", e.target.value) handleFilterChange("keywords", e.target.value);
} if (e.target.value.trim()) {
setFilterError(false);
}
}}
size="small" size="small"
/> />
</Box> </Box>
@@ -468,9 +476,12 @@ export default function SearchBar() {
</InputLabel> </InputLabel>
<UserSearch <UserSearch
attendees={filters.organizers} attendees={filters.organizers}
setAttendees={(users: userAttendee[]) => setAttendees={(users: userAttendee[]) => {
handleFilterChange("organizers", users) handleFilterChange("organizers", users);
} if (users.length > 0) {
setFilterError(false);
}
}}
/> />
</Box> </Box>
@@ -487,9 +498,12 @@ export default function SearchBar() {
</InputLabel> </InputLabel>
<UserSearch <UserSearch
attendees={filters.attendees} attendees={filters.attendees}
setAttendees={(users: userAttendee[]) => setAttendees={(users: userAttendee[]) => {
handleFilterChange("attendees", users) handleFilterChange("attendees", users);
} if (users.length > 0) {
setFilterError(false);
}
}}
/> />
</Box> </Box>
</Stack> </Stack>
+2 -1
View File
@@ -65,7 +65,8 @@
"participants": "Participants", "participants": "Participants",
"noResults": "No events found", "noResults": "No events found",
"resultsTitle": "Search Results", "resultsTitle": "Search Results",
"noResultsSubtitle": "Try adjusting your filters or search terms." "noResultsSubtitle": "Try adjusting your filters or search terms.",
"error": { "emptySearch": "Try adding keywords or other filters." }
}, },
"calendarPopover": { "calendarPopover": {
"tabs": { "tabs": {
+4 -1
View File
@@ -65,7 +65,10 @@
"participants": "Participants", "participants": "Participants",
"noResults": "Aucun résultat", "noResults": "Aucun résultat",
"resultsTitle": "Résultats de la recherche", "resultsTitle": "Résultats de la recherche",
"noResultsSubtitle": "Essayez de changer vos filtres ou termes recherchés." "noResultsSubtitle": "Essayez de changer vos filtres ou termes recherchés.",
"error": {
"emptySearch": "Essayez d'ajouter des mots clés ou d'autres filtres."
}
}, },
"calendarPopover": { "calendarPopover": {
"tabs": { "tabs": {
+4 -1
View File
@@ -65,7 +65,10 @@
"participants": "Участники", "participants": "Участники",
"noResults": "Результаты не найдены", "noResults": "Результаты не найдены",
"resultsTitle": "Результаты поиска", "resultsTitle": "Результаты поиска",
"noResultsSubtitle": "Попробуйте изменить фильтры или условия поиска." "noResultsSubtitle": "Попробуйте изменить фильтры или условия поиска.",
"error": {
"emptySearch": "Попробуйте добавить ключевые слова или другие фильтры."
}
}, },
"calendarPopover": { "calendarPopover": {
"tabs": { "tabs": {
+2 -1
View File
@@ -65,7 +65,8 @@
"participants": "Người tham gia", "participants": "Người tham gia",
"noResults": "Không tìm thấy kết quả", "noResults": "Không tìm thấy kết quả",
"resultsTitle": "Kết quả tìm kiếm", "resultsTitle": "Kết quả tìm kiếm",
"noResultsSubtitle": "Hãy thử điều chỉnh bộ lọc hoặc thuật ngữ tìm kiếm của bạn." "noResultsSubtitle": "Hãy thử điều chỉnh bộ lọc hoặc thuật ngữ tìm kiếm của bạn.",
"error": { "emptySearch": "Hãy thử thêm từ khóa hoặc các bộ lọc khác." }
}, },
"calendarPopover": { "calendarPopover": {
"tabs": { "tabs": {