various fixes to the site (socios, ingresos, gastos, balance, solicitudes) have been made

This commit is contained in:
Jose
2026-01-26 14:15:38 +01:00
parent 59efb7d81f
commit 4aada8a151
10 changed files with 111 additions and 84 deletions

View File

@@ -1,4 +1,4 @@
import { useEffect, useState } from 'react';
import { useState } from 'react';
import { useConfig } from '../hooks/useConfig';
import { DataProvider } from '../context/DataContext';
import { useDataContext } from '../hooks/useDataContext';
@@ -29,9 +29,9 @@ const Ingresos = () => {
if (configLoading) return <p><LoadingIcon /></p>;
const reqConfig = {
baseUrl: config.apiConfig.baseUrl + config.apiConfig.endpoints.incomes.allWithNames,
baseUrl: config.apiConfig.baseUrl + config.apiConfig.endpoints.incomes.withInfo,
rawUrl: config.apiConfig.baseUrl + config.apiConfig.endpoints.incomes.all,
membersUrl: config.apiConfig.baseUrl + config.apiConfig.endpoints.members.all,
usersUrl: config.apiConfig.baseUrl + config.apiConfig.endpoints.users.all,
params: {
_sort: 'createdAt',
_order: 'desc'
@@ -46,26 +46,24 @@ const Ingresos = () => {
};
const IngresosContent = ({ reqConfig }) => {
const { data, dataLoading, dataError, getData, postData, putData, deleteData } = useDataContext();
const { data, dataLoading, dataError, postData, putData, deleteData } = useDataContext();
const [showPDFModal, setShowPDFModal] = useState(false);
const [creatingIngreso, setCreatingIngreso] = useState(false);
const [tempIngreso, setTempIngreso] = useState(null);
const [error, setError] = useState(null);
const [deleteTargetId, setDeleteTargetId] = useState(null);
const [members, setMembers] = useState([]);
useEffect(() => {
const fetchMembers = async () => {
try {
const membersData = await getData(reqConfig.membersUrl, { params: { _sort: 'name', _order: 'asc' } });
setMembers(membersData.data);
} catch (err) {
setError(errorParser(err));
}
};
fetchMembers();
}, [reqConfig.membersUrl, getData]);
const members = data
? Array.from(
new Map(
data.map(i => [i.memberNumber, {
memberNumber: i.memberNumber,
displayName: i.displayName,
userId: i.userId
}])
).values()
).sort((a, b) => a.memberNumber - b.memberNumber)
: [];
const {
filtered,
@@ -104,16 +102,18 @@ const IngresosContent = ({ reqConfig }) => {
});
const handleCreate = () => {
const firstMember = members[0];
setCreatingIngreso(true);
setTempIngreso({
incomeId: null,
memberNumber: 0,
memberNumber: firstMember?.memberNumber ?? null,
userId: firstMember?.userId ?? null,
concept: '',
amount: 0.0,
frequency: CONSTANTS.PAYMENT_FREQUENCY_YEARLY,
type: CONSTANTS.PAYMENT_TYPE_BANK
});
document.querySelector('.cards-grid')?.scrollTo({ top: 0, behavior: 'smooth' });
};
const handleCancelCreate = () => {
@@ -150,7 +150,7 @@ const IngresosContent = ({ reqConfig }) => {
if (dataLoading) return <p className="text-center my-5"><LoadingIcon /></p>;
if (dataError) return <p className="text-danger text-center my-5">{dataError}</p>;
return (
<CustomContainer>
<ContentWrapper>