Skip to content
Snippets Groups Projects
Commit 17730be4 authored by esikkala's avatar esikkala
Browse files

Improve facet state handling

parent 7093c05e
No related branches found
No related tags found
No related merge requests found
......@@ -33,16 +33,6 @@ const styles = theme => ({
},
});
// <HierarchicalFacet
// key='source'
// property='source'
// data={this.props.source}
// fetchFacet={this.props.fetchFacet}
// facetFilters={this.props.facetFilters}
// updateFilter={this.props.updateFilter}
// updatedFacet={this.props.updatedFacet}
// />
class FacetBar extends React.Component {
render() {
......@@ -56,14 +46,23 @@ class FacetBar extends React.Component {
<Typography variant="h6">Source</Typography>
</Paper>
<div className={classes.facetValuesContainerThree}>
<HierarchicalFacet
key='source'
property='source'
data={this.props.source}
fetchFacet={this.props.fetchFacet}
fetchingFacet={this.props.sourceIsFetching}
facetFilters={this.props.facetFilters}
updateFilter={this.props.updateFilter}
updatedFacet={this.props.updatedFacet}
/>
</div>
</Paper>
<Paper className={classes.facetContainer}>
{ /* <Paper className={classes.facetContainer}>
<Paper className={classes.headingContainer}>
<Typography variant="h6">Work</Typography>
</Paper>
</Paper>
</Paper> */}
<Paper className={classes.facetContainer}>
<Paper className={classes.headingContainer}>
<Typography variant="h6">Author</Typography>
......@@ -98,11 +97,11 @@ class FacetBar extends React.Component {
/>
</div>
</Paper>
<Paper className={classes.facetContainerLast}>
{ /* <Paper className={classes.facetContainerLast}>
<Paper className={classes.headingContainer}>
<Typography variant="h6">Production date</Typography>
</Paper>
</Paper>
</Paper> */ }
</React.Fragment>
</div>
);
......
......@@ -52,7 +52,11 @@ class Tree extends Component {
treeData: this.props.data
});
}
if (prevProps.facetFilters != this.props.facetFilters && this.props.updatedFacet != this.props.property) {
// if (this.props.property == 'productionPlace') {
// //console.log(this.props.facetFilters[this.props.property])
// console.log(this.props.updatedFacet)
// }
if (this.props.updatedFacet !== '' && this.props.updatedFacet !== this.props.property && prevProps.facetFilters != this.props.facetFilters) {
console.log(`fetching new values for ${this.props.property}`)
this.props.fetchFacet(this.props.property);
}
......
......@@ -54,7 +54,6 @@ const facet = (state = INITIAL_STATE, action) => {
[ `${action.id}IsFetching` ]: true
};
case UPDATE_FACET:
console.log(action.facetValues)
return {
...state,
[ action.id ]: action.facetValues,
......@@ -69,26 +68,21 @@ const facet = (state = INITIAL_STATE, action) => {
const updateFilter = (state, action) => {
const { property, value } = action.filter;
let nSet = state.facetFilters[property];
if (nSet.has(value)) {
nSet.delete(value);
let valueSet = state.facetFilters[property];
if (valueSet.has(value)) {
valueSet.delete(value);
} else {
nSet.add(value);
valueSet.add(value);
}
const newFilter = updateObject(state.filters, {
[property]: nSet,
});
return updateObject(state, {
facetFilters: newFilter,
const newFacetFilters = {
...state.facetFilters,
[ property ] : valueSet
};
return {
...state,
facetFilters: newFacetFilters,
updatedFacet: property
});
};
const updateObject = (oldObject, newValues) => {
// Encapsulate the idea of passing a new object as the first parameter
// to Object.assign to ensure we correctly copy data instead of mutating
//console.log(Object.assign({}, oldObject, newValues));
return Object.assign({}, oldObject, newValues);
};
};
export default facet;
......@@ -14,6 +14,7 @@ const facetConfigs = {
id: 'productionPlace',
label: 'Production place',
predicate: '^crm:P108_has_produced/crm:P7_took_place_at',
//predicate: '^crm:P108_has_produced/crm:P7_took_place_at|^crm:P108_has_produced/crm:P7_took_place_at/crm:P89_falls_within*',
type: 'hierarchical',
},
author: {
......@@ -112,9 +113,10 @@ export const getFacet = (id, filters) => {
facetQuery = facetQuery.replace('<FILTER>', filterBlock );
facetQuery = facetQuery.replace('<PREDICATE>', facetConfig.predicate);
facetQuery = facetQuery.replace('<SELECTED_VALUES>', selectedBlock);
if (id == 'productionPlace') {
console.log(facetQuery)
}
// if (id == 'author') {
// console.log(filters)
// console.log(facetQuery)
// }
let mapper = facetConfig.type === 'hierarchical' ? mapHierarchicalFacet : makeObjectList;
return sparqlSearchEngine.doSearch(facetQuery, endpoint, mapper);
};
......
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