Skip to content
Snippets Groups Projects
Commit c41dcfd2 authored by Nico Vermaas's avatar Nico Vermaas
Browse files

Merge branch 'dev-nico' into 'master'

finally solved the BasketContext problem

See merge request astron-sdc/esap-gui!20
parents ebce1777 b799f458
No related branches found
No related tags found
2 merge requests!32Master,!20finally solved the BasketContext problem
Pipeline #14126 passed
......@@ -9,20 +9,19 @@ export default function AddToBasket(props) {
const basketContext = useContext(BasketContext);
function isInBasket(testBasketItem) {
let datasets_in_basket = basketContext.datasets
//alert(datasets_in_basket)
const found = basketContext.datasets.some(basketItem => deepEqual(basketItem, testBasketItem));
console.log('found = '+found+' testBasketItem = '+testBasketItem)
return found;
}
function addToBasket(addToBasketItem) {
basketContext.add(addToBasketItem);
console.log([addToBasketItem, basketContext]);
console.log('addToBasket: '+[addToBasketItem, basketContext]);
}
function removeFromBasket(removeFromBasketItem) {
basketContext.remove(removeFromBasketItem);
console.log([removeFromBasketItem, basketContext]);
console.log('removeFromBasket: '+[removeFromBasketItem, basketContext]);
}
// fake authentication when in 'development' mode.
......@@ -30,6 +29,8 @@ export default function AddToBasket(props) {
let authenticated = isAuthenticated
if (authenticated){
//let datasets_in_basket = basketContext.datasets
//console.log('datasets_in_basket: '+datasets_in_basket)
return (
<Form.Check id={props.id} type="checkbox" onChange={(event) => {
const action = event.target.checked ? addToBasket : removeFromBasket;
......
......@@ -11,7 +11,14 @@ function ResponseToDatasets(response) {
let shopping_cart = response.data.shopping_cart
let datasets = shopping_cart.map((item) => {
return item.item_data
// make item_data an object instead of a string
console.log('itemdata = '+item.item_data)
let o = JSON.parse(item.item_data)
//alert(o)
return o
//return item.item_data
})
return datasets
......
......@@ -12,7 +12,8 @@ export default function MyBasketButton(props) {
const { datasets } = useContext(BasketContext);
useEffect(() => {
loadBasket(basketContext,api_host, isAuthenticated)
},[isAuthenticated, basketContext.datasets])
// todo: do not trigger on changed datasets, but on 'save' action
},[isAuthenticated])
if (isAuthenticated) {
try {
......
......@@ -23,23 +23,23 @@ export default function MyBasketPage() {
// this converts all ' to "", so that it can be used by the JSON parser.
// let j = item_data.replaceAll("'",'"')
let o = JSON.parse(item)
let archive = o.archive
//let o = JSON.parse(item)
let archive = item.archive
let item_as_string = JSON.stringify(item)
return <tr>
<td>
<AddToBasket id={id} item={item} />
</td>
<td>{archive}</td>
<td>{item}</td>
<td>{item_as_string}</td>
</tr>
})
return (
<>
<Container fluid>
<h2>Data Checkout</h2>
<h3>Data Checkout</h3>
<SaveBasketButton />
<Table className="mt-3" responsive>
......
......@@ -153,9 +153,7 @@ export default function QueryCatalogs() {
return (
<div key={catalog} className="mt-3">
<h4>Query results for {catalogName}</h4>
<BasketContextProvider>
<QueryResults catalog={catalog} />
</BasketContextProvider>
<QueryResults catalog={catalog} />
</div>
);
})}
......
......@@ -64,7 +64,7 @@ export default function Routes() {
</Switch>
<footer><small>esap-gui version 10 jun 2021 - 16:00</small></footer>
<footer><small>esap-gui version 14 jun 2021 - 11:00</small></footer>
</Router>
);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment