From bbddd66436acd7e9c1798e4310e10b790f102a34 Mon Sep 17 00:00:00 2001
From: esikkala <esko.ikkala@aalto.fi>
Date: Sun, 20 Jun 2021 12:21:53 +0300
Subject: [PATCH] Home button: clear client FS results

---
 src/client/components/facet_bar/FacetBar.js        | 5 +++--
 src/client/components/perspectives/sampo/TopBar.js | 1 +
 src/client/containers/SemanticPortal.js            | 9 +++++----
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/client/components/facet_bar/FacetBar.js b/src/client/components/facet_bar/FacetBar.js
index 897a1a07..9a5db092 100644
--- a/src/client/components/facet_bar/FacetBar.js
+++ b/src/client/components/facet_bar/FacetBar.js
@@ -342,6 +342,7 @@ class FacetBar extends React.Component {
     const { classes, facetClass, resultClass, resultCount, facetData, facetedSearchMode } = this.props
     const { facets } = facetData
     let someFacetIsFetching = false
+    const hasClientFSResults = facetData.results !== null
     if (facetedSearchMode === 'serverFS') {
       Object.values(facets).forEach(facet => {
         if (facet.isFetching) {
@@ -372,7 +373,7 @@ class FacetBar extends React.Component {
             perspectiveID={facetClass}
             layoutConfig={this.props.layoutConfig}
           />}
-        {(facetedSearchMode === 'serverFS' || facetData.results !== null) &&
+        {(facetedSearchMode === 'serverFS' || hasClientFSResults) &&
           <Paper className={classes.facetInfoContainer}>
             <FacetInfo
               facetedSearchMode={facetedSearchMode}
@@ -391,7 +392,7 @@ class FacetBar extends React.Component {
               screenSize={this.props.screenSize}
             />
           </Paper>}
-        {(facetedSearchMode === 'serverFS' || facetData.results !== null) &&
+        {(facetedSearchMode === 'serverFS' || hasClientFSResults) &&
           this.renderFacets({ classes, facets, someFacetIsFetching })}
       </div>
     )
diff --git a/src/client/components/perspectives/sampo/TopBar.js b/src/client/components/perspectives/sampo/TopBar.js
index 04c8f9ae..c658d5c0 100644
--- a/src/client/components/perspectives/sampo/TopBar.js
+++ b/src/client/components/perspectives/sampo/TopBar.js
@@ -255,6 +255,7 @@ const TopBar = props => {
               root: classes.mainLogoButtonRoot,
               label: classes.mainLogoButtonLabel
             }}
+            onClick={() => clientFSMode ? props.clientFSClearResults() : null}
           >
             {/* <img className={classes.mainLogo} src={} /> */}
             <Typography className={classes.mainLogoTypography} variant='h6'>
diff --git a/src/client/containers/SemanticPortal.js b/src/client/containers/SemanticPortal.js
index c6ff9f44..28b6c3c8 100644
--- a/src/client/containers/SemanticPortal.js
+++ b/src/client/containers/SemanticPortal.js
@@ -252,7 +252,7 @@ const SemanticPortal = props => {
   if (lgScreen) { screenSize = 'lg' }
   if (xlScreen) { screenSize = 'xl' }
   const rootUrlWithLang = `${rootUrl}/${props.options.currentLocale}`
-  const noResults = props.clientFSState.results == null
+  const noClientFSResults = props.clientFSState.results == null
 
   useEffect(() => {
     document.title = intl.get('html.title')
@@ -270,6 +270,7 @@ const SemanticPortal = props => {
             search={props.fullTextSearch}
             fetchFullTextResults={props.fetchFullTextResults}
             clearResults={props.clearResults}
+            clientFSClearResults={props.clientFSClearResults}
             perspectives={perspectiveConfig}
             currentLocale={props.options.currentLocale}
             availableLocales={props.options.availableLocales}
@@ -542,7 +543,7 @@ const SemanticPortal = props => {
                       facetData={props.clientFSState}
                       clientFSFacetValues={props.clientFSFacetValues}
                       fetchingResultCount={props.clientFSState.textResultsFetching}
-                      resultCount={noResults ? 0 : props.clientFSState.results.length}
+                      resultCount={noClientFSResults ? 0 : props.clientFSState.results.length}
                       clientFSState={props.clientFSState}
                       clientFSToggleDataset={props.clientFSToggleDataset}
                       clientFSFetchResults={props.clientFSFetchResults}
@@ -559,8 +560,8 @@ const SemanticPortal = props => {
                     />
                   </Grid>
                   <Grid item sm={12} md={8} lg={9} className={classes.resultsContainerClientFS}>
-                    {noResults && <ClientFSMain />}
-                    {!noResults &&
+                    {noClientFSResults && <ClientFSMain />}
+                    {!noClientFSResults &&
                       <ClientFSPerspective
                         routeProps={routeProps}
                         perspective={perspectiveConfig.find(p => p.id === 'clientFSPlaces')}
-- 
GitLab