// import React from "react" import {FlatList, Text, ActivityIndicator, RefreshControl} from "react-native"; import {useState, useEffect} from "react"; import { Ionicons } from "@expo/vector-icons"; import {useNoticesStore} from "@/store/noticesStore"; import {NoticeCard} from "@/components/NoticeCard"; import { useLocalSearchParams } from "expo-router"; import { HStack } from "@/components/ui/hstack" import { Box } from "@/components/ui/box" import { Button, ButtonText, ButtonIcon } from "@/components/ui/button"; import { Actionsheet, ActionsheetContent, ActionsheetItem, ActionsheetItemText, ActionsheetDragIndicator, ActionsheetDragIndicatorWrapper, ActionsheetBackdrop, } from "@/components/ui/actionsheet" import { useRouter } from "expo-router"; export default function Notices() { const {notices, fetchNotices} = useNoticesStore(); const [refreshing, setRefreshing] = useState(false); const [isLoading, setIsLoading] = useState(true); const [error, setError] = useState(null); const [showActionsheet, setShowActionsheet] = useState(false) const handleClose = () => setShowActionsheet(false) const params = useLocalSearchParams(); console.log("GET params:", params); useEffect(() => { loadData(); }, []); const loadData = async () => { setIsLoading(true); try { await fetchNotices(); setError(null); } catch (err) { setError(err); } finally { setIsLoading(false); } }; const router = useRouter(); let filteredNotices = notices; let filterActive = false; if (params.sort) { if( params.sort === "latest") { filteredNotices = [...filteredNotices].sort( (a, b) => new Date(b.publishDate) - new Date(a.publishDate) ); } } if(params.category) { filteredNotices = filteredNotices.filter( (notice) => notice.category === params.category ); filterActive = true; } if(params.attribute) { filterActive = true; } const onRefresh = async () => { setRefreshing(true); try { await fetchNotices(); } catch (err) { setError(err); } finally { setRefreshing(false); } }; if (isLoading && !refreshing) { return ; } if (error) { return Nie udało sie pobrać listy. {error.message}; } return ( <> {filterActive && ( )} Kategoria } refreshControl={ } /> ); }