import { useModalsManagerContext } from "@/contexts/ModalsManagerContext"; import BarWithBeasyAndNotificationsIcon from "@components/BarWithBeasyAndNotificationsIcon"; import Button from "@components/Button"; import Input from "@components/Input"; import TransactionInformationsItem from "@components/TransactionInformationsItem"; import Box from "@components/bases/Box"; import Text from "@components/bases/Text"; import WrapperWithDefaultBeasyBackgroundAndSafeAreaTopLeftRight from "@components/wrappers/WrapperWithDefaultBeasyBackgroundAndSafeAreaTopLeftRight"; import useTransactionsHistory, { type OperatorsFilter } from "@hooks/useTransactionsHistory"; import { LOG } from "@logger"; import Card from "@re-card"; import theme from "@themes/Theme"; import { useCallback, useState } from "react"; import { RefreshControl, ScrollView, Switch } from "react-native"; import Icon from "react-native-vector-icons/Ionicons"; const log = LOG.extend("TransactionHistoryScreen"); const TransactionHistoryScreen = () => { log.verbose("TransactionHistoryScreen"); const { transactionsHistory: data, isLoading, error, refetch, setReferenceFilter, operatorsFilter, setOperatorsFilter, } = useTransactionsHistory(); const { showModal } = useModalsManagerContext(); return ( setShowFiltersModal(true)} onPress={() => showModal( , ) } /> } contentContainerStyle={{ gap: 10, padding: 5, // marginTop: 10, paddingBottom: 30, flexDirection: "column", }} showsVerticalScrollIndicator={false} > {data?.map((transaction) => ( ))} ); }; export default TransactionHistoryScreen; interface FiltersModalProps { // biome-ignore lint/style/useNamingConvention: operatorsFilter: OperatorsFilter; // biome-ignore lint/style/useNamingConvention: setOperatorsFilter: React.Dispatch>; } const FiltersModal: React.FC = ({ operatorsFilter, setOperatorsFilter }) => { const [filterOm, setFilterOm] = useState(operatorsFilter.OM); const [filterMtn, setFilterMtn] = useState(operatorsFilter.MTN); const [filterFlooz, setFilterFlooz] = useState(operatorsFilter.FLOOZ); const [filterWave, setFilterWave] = useState(operatorsFilter.WAVE); const [filterCb, setFilterCb] = useState(operatorsFilter.CB); const saveOperatorsFilters = useCallback(() => { setOperatorsFilter({ // biome-ignore lint/style/useNamingConvention: OM: filterOm, // biome-ignore lint/style/useNamingConvention: MTN: filterMtn, // biome-ignore lint/style/useNamingConvention: FLOOZ: filterFlooz, // biome-ignore lint/style/useNamingConvention: WAVE: filterWave, // biome-ignore lint/style/useNamingConvention: CB: filterCb, }); }, [filterOm, filterMtn, filterFlooz, filterWave, filterCb, setOperatorsFilter]); const { closeModal } = useModalsManagerContext(); const saveFilters = useCallback(() => { saveOperatorsFilters(); closeModal(); }, [saveOperatorsFilters, closeModal]); return ( Paramétrage filtre { closeModal(); }} /> Opérateurs Orange Money MTN Money Flooz Money Wave Carte Bancaire