diff --git a/src/pages/BandiBeneficiario/components/AllBandiAccordion/index.js b/src/pages/BandiBeneficiario/components/AllBandiAccordion/index.js
index c0638b9..4788788 100644
--- a/src/pages/BandiBeneficiario/components/AllBandiAccordion/index.js
+++ b/src/pages/BandiBeneficiario/components/AllBandiAccordion/index.js
@@ -93,27 +93,41 @@ const AllBandiAccordion = () => {
return ;
};
- const addToFavourites = (id, preferredId = 0) => {
+ const addToFavourites = (id, preferredId) => {
const companyId = storeGet.main.chosenCompanyId()
const data = {
companyId,
callId: id
}
- if (preferredId !== 0) {
- // TODO implement removing from preferrenced
- //PreferredBandoService.addToPreferred(data, toggleFavCallback, errToggleFavCallback);
+ if (preferredId && preferredId !== 0) {
+ PreferredBandoService.deleteFromPreferred(preferredId, (data) => removeFavCallback(data, id), errToggleFavCallback);
} else {
- PreferredBandoService.addToPreferred(data, toggleFavCallback, errToggleFavCallback);
+ PreferredBandoService.addToPreferred(data, addFavCallback, errToggleFavCallback);
}
}
- const toggleFavCallback = (data) => {
+ const removeFavCallback = (data, id) => {
+ if (data.status === 'SUCCESS') {
+ const newItems = items.map((o) => {
+ if (o.id === id) {
+ return {
+ ...o,
+ preferredCallId: null
+ }
+ } else {
+ return o;
+ }
+ });
+ setItems(newItems)
+ }
+ }
+ const addFavCallback = (data) => {
if (data.status === 'SUCCESS') {
const newItems = items.map((o) => {
if (o.id === data.data.callId) {
return {
...o,
- preferred: data.data.id
+ preferredCallId: data.data.id
}
} else {
return o;
@@ -135,8 +149,8 @@ const AllBandiAccordion = () => {
return
diff --git a/src/pages/DashboardBeneficiario/components/LatestBandiTable/index.js b/src/pages/DashboardBeneficiario/components/LatestBandiTable/index.js
index ab791ef..51c8bc8 100644
--- a/src/pages/DashboardBeneficiario/components/LatestBandiTable/index.js
+++ b/src/pages/DashboardBeneficiario/components/LatestBandiTable/index.js
@@ -1,10 +1,10 @@
import React, { useState, useEffect } from 'react';
import { __ } from '@wordpress/i18n';
-import { uniq } from 'ramda';
+import { uniq, isNil } from 'ramda';
import { Link } from 'react-router-dom';
// store
-import { storeGet, storeSet } from '../../../../store';
+import { storeGet } from '../../../../store';
// api
import BandoService from '../../../../service/bando-service';
@@ -50,28 +50,27 @@ const LatestBandiTable = () => {
setLoading(false);
}
- const addToFavourites = (id, preferredId = 0) => {
+ const addToFavourites = (id, preferredId) => {
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);
+ if (preferredId && preferredId !== 0) {
+ PreferredBandoService.deleteFromPreferred(preferredId, (data) => removeFavCallback(data, id), errToggleFavCallback);
} else {
- PreferredBandoService.addToPreferred(data, toggleFavCallback, errToggleFavCallback);
+ PreferredBandoService.addToPreferred(data, addFavCallback, errToggleFavCallback);
}
}
- const toggleFavCallback = (data) => {
+ const removeFavCallback = (data, id) => {
if (data.status === 'SUCCESS') {
const newItems = items.map((o) => {
- if (o.id === data.data.callId) {
+ if (o.id === id) {
return {
...o,
- preferred: data.data.id
+ preferredCallId: null
}
} else {
return o;
@@ -79,10 +78,28 @@ const LatestBandiTable = () => {
});
setItems(newItems)
}
+ setLoading(false);
+ }
+ const addFavCallback = (data) => {
+ if (data.status === 'SUCCESS') {
+ const newItems = items.map((o) => {
+ if (o.id === data.data.callId) {
+ return {
+ ...o,
+ preferredCallId: data.data.id
+ }
+ } else {
+ return o;
+ }
+ });
+ setItems(newItems)
+ }
+ setLoading(false);
}
const errToggleFavCallback = (data) => {
set404FromErrorResponse(data);
+ setLoading(false);
}
const getFormattedData = (data) => {
@@ -171,8 +188,8 @@ const LatestBandiTable = () => {
return
{rowData.confidi
diff --git a/src/service/preferred-bando-service.js b/src/service/preferred-bando-service.js
index 1738e85..95416af 100644
--- a/src/service/preferred-bando-service.js
+++ b/src/service/preferred-bando-service.js
@@ -7,4 +7,8 @@ export default class PreferredBandoService {
static addToPreferred = (body, callback, errCallback) => {
NetworkService.post(`${API_BASE_URL}/beneficiaryPreferredCall`, body, callback, errCallback);
};
+
+ static deleteFromPreferred = (id, callback, errCallback) => {
+ NetworkService.delete(`${API_BASE_URL}/beneficiaryPreferredCall/${id}`, {}, callback, errCallback);
+ };
}