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 [showFiltersModal, setShowFiltersModal] = useState(false);
const {
transactionsHistory: data,
isLoading,
error,
refetch,
setReferenceFilter,
operatorsFilter,
setOperatorsFilter,
} = useTransactionsHistory();
const { showModal } = useModalsManagerContext();
return (
{showFiltersModal && (
)}
{/* */}
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 {
setShowFiltersModal: React.Dispatch>;
// biome-ignore lint/style/useNamingConvention:
operatorsFilter: OperatorsFilter;
// biome-ignore lint/style/useNamingConvention:
setOperatorsFilter: React.Dispatch>;
}
const FiltersModal: React.FC = ({
setShowFiltersModal,
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();
setShowFiltersModal(false);
closeModal();
}, [saveOperatorsFilters, setShowFiltersModal, closeModal]);
return (
Paramétrage filtre
{
closeModal();
setShowFiltersModal(false);
}}
/>
Opérateurs
Orange Money
MTN Money
Flooz Money
Wave
Carte Bancaire
);
};