@@ -10,13 +10,13 @@ import { Metrics } from 'src/libs/ajax/Metrics'
1010import eventList from 'src/libs/events'
1111import { useParams , useNavigate } from 'react-router-dom'
1212import { usePageTitle } from 'src/hooks/usePageTitle'
13- import { getFlagNhgriDacId } from 'src/libs/ajax/FeatureFlag.ts '
13+ import { getFlagEsIndexKeyName , getFlagNhgriDacId } from 'src/libs/ajax/FeatureFlag'
1414
15- const assembleFullQuery = ( isSigningOfficial , isInstitutionQuery , subQuery , nhgriDacId ) => {
15+ const assembleFullQuery = ( isSigningOfficial , isInstitutionQuery , subQuery , nhgriDacId , esIndexKeyName ) => {
1616 const queryChunks = [
1717 {
1818 match : {
19- _type : 'dataset' ,
19+ [ esIndexKeyName ] : 'dataset' ,
2020 } ,
2121 } ,
2222 {
@@ -93,6 +93,7 @@ export const DatasetSearch = (props) => {
9393 const [ queryState , setQueryState ] = useState ( query )
9494 const [ loading , setLoading ] = useState ( true )
9595 const [ nhgriDacId , setNhgriDacId ] = useState ( null )
96+ const [ esIndexKeyName , setEsIndexKeyName ] = useState ( null )
9697 const user = Storage . getCurrentUser ( )
9798
9899 const isSigningOfficial = user . isSigningOfficial
@@ -112,14 +113,25 @@ export const DatasetSearch = (props) => {
112113
113114 // Memoize fullQuery to prevent recreation on every render
114115 const fullQuery = useMemo (
115- ( ) => assembleFullQuery ( isSigningOfficial , isInstitutionQuery , version . query , nhgriDacId ) ,
116- [ isSigningOfficial , isInstitutionQuery , version . query , nhgriDacId ] ,
116+ ( ) => {
117+ if ( ! esIndexKeyName ) return null
118+ return assembleFullQuery ( isSigningOfficial , isInstitutionQuery , version . query , nhgriDacId , esIndexKeyName )
119+ } ,
120+ [ isSigningOfficial , isInstitutionQuery , version . query , nhgriDacId , esIndexKeyName ] ,
117121 )
118122
119123 const isInstitutionSet = institutionId === undefined && isInstitutionQuery
120124
121125 const hasChangedPage = query !== queryState
122126
127+ useEffect ( ( ) => {
128+ const init = async ( ) => {
129+ const keyName = await getFlagEsIndexKeyName ( )
130+ setEsIndexKeyName ( keyName )
131+ }
132+ init ( )
133+ } , [ ] )
134+
123135 useEffect ( ( ) => {
124136 const init = async ( ) => {
125137 if ( key === '/datalibrary' ) {
@@ -137,7 +149,7 @@ export const DatasetSearch = (props) => {
137149
138150 useEffect ( ( ) => {
139151 const init = async ( ) => {
140- if ( loading || hasChangedPage ) {
152+ if ( ( loading || hasChangedPage ) && fullQuery ) {
141153 if ( isInstitutionSet ) {
142154 Notifications . showError ( { text : 'You must set an institution in your profile to view the `myinstitution` data library' } )
143155 navigate ( '/profile' )
0 commit comments