add search section to home
This commit is contained in:
@@ -72,14 +72,14 @@ export async function getAllImagesByNoticeId(noticeId) {
|
||||
`${API_URL}/images/get/${imageName}`
|
||||
);
|
||||
|
||||
console.log(`Pobrano ${imageUrls.length} zdjęć dla ogłoszenia o id: ${noticeId}`);
|
||||
// console.log(`Pobrano ${imageUrls.length} zdjęć dla ogłoszenia o id: ${noticeId}`);
|
||||
return imageUrls;
|
||||
}
|
||||
|
||||
console.log(`Brak zdjęć dla ogłoszenia o id: ${noticeId}`);
|
||||
// console.log(`Brak zdjęć dla ogłoszenia o id: ${noticeId}`);
|
||||
return ["https://http.cat/404.jpg"];
|
||||
} catch (err) {
|
||||
console.log(`Błąd podczas pobierania listy zdjęć dla ogłoszenia o id: ${noticeId}`, err);
|
||||
// console.log(`Błąd podczas pobierania listy zdjęć dla ogłoszenia o id: ${noticeId}`, err);
|
||||
return ["https://http.cat/404.jpg"];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import { ScrollView, Text } from "react-native";
|
||||
import { ScrollView, View } from "react-native";
|
||||
import { useNoticesStore } from '@/store/noticesStore';
|
||||
import { CategorySection } from "@/components/CategorySection";
|
||||
import { NoticeSection } from "@/components/NoticeSection";
|
||||
import { UserSection } from "@/components/UserSection";
|
||||
import { SearchSection } from "@/components/SearchSection";
|
||||
import { FlatList } from 'react-native';
|
||||
|
||||
export default function Home() {
|
||||
@@ -14,11 +15,14 @@ export default function Home() {
|
||||
.sort(() => Math.random() - 0.5)
|
||||
.slice(0, 6);
|
||||
return (
|
||||
<View>
|
||||
<SearchSection/>
|
||||
<ScrollView showsVerticalScrollIndicator={false} className='m-2'>
|
||||
<CategorySection title="Polecane kategorie" notices={notices} />
|
||||
<NoticeSection title="Najnowsze ogłoszenia" notices={latestNotices} ctaLink="/notices?sort=latest"/>
|
||||
<UserSection title="Popularni sprzedawcy" notices={notices} />
|
||||
<NoticeSection title="Proponowane ogłoszenia" notices={recomendedNotices} ctaLink="/notices"/>
|
||||
</ScrollView>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@ import { listCategories } from "@/api/categories";
|
||||
import { FormControl, FormControlLabel } from "@/components/ui/form-control";
|
||||
import { Input, InputField } from "@/components/ui/input";
|
||||
import { HStack } from "@/components/ui/hstack";
|
||||
|
||||
import {
|
||||
Actionsheet,
|
||||
ActionsheetContent,
|
||||
@@ -95,8 +94,16 @@ export default function Notices() {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
if (params.search) {
|
||||
const searchTerm = params.search.toLowerCase();
|
||||
result = result.filter(notice =>{
|
||||
return notice.title.toLowerCase().includes(searchTerm);
|
||||
});
|
||||
}
|
||||
|
||||
setFilteredNotices(result);
|
||||
}, [notices, params.category, params.sort, params.priceFrom, params.priceTo]);
|
||||
}, );
|
||||
|
||||
|
||||
let filterActive = !!params.category || params.sort === "latest";
|
||||
|
||||
31
ArtisanConnect/components/SearchSection.jsx
Normal file
31
ArtisanConnect/components/SearchSection.jsx
Normal file
@@ -0,0 +1,31 @@
|
||||
import { Input, InputField, InputIcon, InputSlot } from "@/components/ui/input"
|
||||
import { SearchIcon } from "@/components/ui/icon"
|
||||
import { Box } from "@/components/ui/box"
|
||||
import { useRouter } from "expo-router";
|
||||
|
||||
export function SearchSection({ searchQuery, setSearchQuery }) {
|
||||
const router = useRouter();
|
||||
|
||||
const handleSubmit = (e) => {
|
||||
const value = e.nativeEvent.text;
|
||||
router.push({
|
||||
pathname: "/notices",
|
||||
params: { search: value }
|
||||
});
|
||||
};
|
||||
return (
|
||||
<Box className="m-2 bg-white">
|
||||
<Input>
|
||||
<InputSlot>
|
||||
<InputIcon as={SearchIcon} />
|
||||
</InputSlot>
|
||||
<InputField placeholder="Wyszukaj.."
|
||||
value={searchQuery}
|
||||
onChangeText={setSearchQuery}
|
||||
onSubmitEditing={handleSubmit}
|
||||
returnKeyType="search" />
|
||||
</Input>
|
||||
</Box>
|
||||
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user