- implemented functionality of adding to preferred calls;

This commit is contained in:
Vitalii Kiiko
2024-11-11 16:29:58 +01:00
parent 6521114b95
commit edbe1b7df4
4 changed files with 96 additions and 22 deletions

View File

@@ -4,7 +4,7 @@ import { uniq } from 'ramda';
import { Link } from 'react-router-dom';
// store
import { storeSet } from '../../../../store';
import { storeGet, storeSet } from '../../../../store';
// api
import BandoService from '../../../../service/bando-service';
@@ -19,6 +19,8 @@ import { InputIcon } from 'primereact/inputicon';
import { Button } from 'primereact/button';
import { Calendar } from 'primereact/calendar';
import ProperBandoLabel from '../../../../components/ProperBandoLabel';
import PreferredBandoService from '../../../../service/preferred-bando-service';
import set404FromErrorResponse from '../../../../helpers/set404FromErrorResponse';
const LatestBandiTable = () => {
@@ -29,7 +31,7 @@ const LatestBandiTable = () => {
const [statuses, setStatuses] = useState([]);
useEffect(() => {
storeSet.main.setAsyncRequest();
setLoading(true);
BandoService.getBandi(getCallback, errGetCallbacks);
}, []);
@@ -40,16 +42,47 @@ const LatestBandiTable = () => {
setStatuses(uniq(data.data.map(o => o.status)))
initFilters();
}
storeSet.main.unsetAsyncRequest();
setLoading(false);
}
const errGetCallbacks = (data) => {
console.log('errGetCallbacks', data)
storeSet.main.unsetAsyncRequest();
set404FromErrorResponse(data);
setLoading(false);
}
const addToFavourites = (id) => {
const addToFavourites = (id, preferredId = 0) => {
const companyId = storeGet.main.chosenCompanyId()
const data = {
companyId,
callId: id
}
setLoading(true);
if (preferredId !== 0) {
// TODO implement removing from preferrenced
//PreferredBandoService.addToPreferred(data, toggleFavCallback, errToggleFavCallback);
} else {
PreferredBandoService.addToPreferred(data, toggleFavCallback, errToggleFavCallback);
}
}
const toggleFavCallback = (data) => {
if (data.status === 'SUCCESS') {
const newItems = items.map((o) => {
if (o.id === data.data.callId) {
return {
...o,
preferred: data.data.id
}
} else {
return o;
}
});
setItems(newItems)
}
}
const errToggleFavCallback = (data) => {
set404FromErrorResponse(data);
}
const getFormattedData = (data) => {
@@ -138,7 +171,8 @@ const LatestBandiTable = () => {
return <div className="appPageSection__tableActions">
<button type="button"
className="appPageSection__addToFavourites"
onClick={() => addToFavourites(rowData.id)}>
data-active={rowData.preferred}
onClick={() => addToFavourites(rowData.id, rowData.preferred)}>
<i className="pi pi-heart" style={{ fontSize: '1rem' }}></i>
</button>
{rowData.confidi