All Downloads are FREE. Search and download functionalities are using the official Maven repository.

web-interface.assets.StreamSearchPage.9472d5d0a285679cf68d.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.1
Show newest version
{"version":3,"sources":["webpack:///./src/views/hooks/SyncWithQueryParameters.js","webpack:///./src/views/pages/StreamSearchPage.jsx"],"names":["extractTimerangeParams","timerange","result","rangetype","type","Object","entries","relative","range","keyword","from","to","syncWithQueryParameters","query","action","history","push","ViewStore","getInitialState","view","View","Type","Search","queries","search","size","Error","firstQuery","first","queryString","query_string","filter","Immutable","baseUri","URI","setSearch","removeQuery","uriWithTimerange","reduce","prev","key","value","currentStreams","filtersToStreamSet","uri","isEmpty","removeSearch","toString","join","useSyncWithQueryParameters","actions","callback","dependencies","useEffect","replace","QueriesActions","update","completed","unsubscribes","map","listen","forEach","unsubscribe","withPluginEntities","streamId","params","route","router","loadingViewHooks","executingViewHooks","location","useState","loaded","setLoaded","undefined","hookComponent","setHookComponent","loadNewView","currentURLQuery","processHooks","ViewActions","create","then","error","UserNotification","loadViewFromParams","Provider","viewId","ViewLoader","e","SearchActions","executeWithCurrentState","getCurrentLocation","pathname","currentQuery"],"mappings":"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","file":"StreamSearchPage.9472d5d0a285679cf68d.js","sourcesContent":["// @flow strict\nimport { useEffect } from 'react';\nimport * as Immutable from 'immutable';\nimport URI from 'urijs';\nimport history from 'util/History';\n\nimport { ViewStore } from 'views/stores/ViewStore';\nimport View from 'views/logic/views/View';\nimport { QueriesActions } from 'views/actions/QueriesActions';\nimport type { TimeRange } from 'views/logic/queries/Query';\nimport { filtersToStreamSet } from 'views/logic/queries/Query';\n\nconst useActionListeners = (actions, callback, dependencies) => {\n  useEffect(() => {\n    const unsubscribes = actions.map((action) => action.listen(callback));\n    return () => unsubscribes.forEach((unsubscribe) => unsubscribe());\n  }, dependencies);\n};\n\nconst extractTimerangeParams = (timerange: TimeRange) => {\n  const { type } = timerange;\n  const result = { rangetype: type };\n\n  switch (timerange.type) {\n    case 'relative': return Object.entries({ ...result, relative: timerange.range });\n    case 'keyword': return Object.entries({ ...result, keyword: timerange.keyword });\n    case 'absolute': return Object.entries({ ...result, from: timerange.from, to: timerange.to });\n    default: return Object.entries(result);\n  }\n};\n\nexport const syncWithQueryParameters = (query: string, action: (string) => mixed = history.push) => {\n  const { view } = ViewStore.getInitialState() || {};\n  if (view && view.type === View.Type.Search) {\n    const { queries } = view.search;\n    if (queries.size !== 1) {\n      throw new Error('Searches must only have a single query!');\n    }\n    const firstQuery = queries.first();\n    if (firstQuery) {\n      const { query: { query_string: queryString }, timerange, filter = Immutable.Map() } = firstQuery;\n      const baseUri = new URI(query).setSearch('q', queryString)\n        .removeQuery('from')\n        .removeQuery('to')\n        .removeQuery('keyword')\n        .removeQuery('relative');\n      const uriWithTimerange = extractTimerangeParams(timerange)\n        .reduce((prev, [key, value]) => prev.setSearch(key, value), baseUri);\n      const currentStreams = filtersToStreamSet(filter);\n      const uri = currentStreams.isEmpty()\n        ? uriWithTimerange.removeSearch('streams').toString()\n        : uriWithTimerange.setSearch('streams', currentStreams.join(',')).toString();\n      if (query !== uri) {\n        action(uri);\n      }\n    }\n  }\n};\n\nexport const useSyncWithQueryParameters = (query: string) => {\n  useEffect(() => syncWithQueryParameters(query, history.replace), []);\n  useActionListeners(\n    [QueriesActions.update.completed],\n    () => syncWithQueryParameters(query),\n    [query],\n  );\n};\n","// @flow strict\nimport React, { useEffect, useState } from 'react';\n\nimport UserNotification from 'util/UserNotification';\n\nimport { ViewActions } from 'views/stores/ViewStore';\nimport { SearchActions } from 'views/stores/SearchStore';\nimport { syncWithQueryParameters } from 'views/hooks/SyncWithQueryParameters';\n\nimport NewViewLoaderContext from 'views/logic/NewViewLoaderContext';\nimport View from 'views/logic/views/View';\nimport ViewLoader, { processHooks } from 'views/logic/views/ViewLoader';\nimport ViewLoaderContext from 'views/logic/ViewLoaderContext';\nimport withPluginEntities from 'views/logic/withPluginEntities';\nimport type { ViewHook } from 'views/logic/hooks/ViewHook';\n\nimport Spinner from 'components/common/Spinner';\nimport { ExtendedSearchPage } from 'views/pages';\n\ntype URLQuery = { [string]: any };\n\ntype Props = {\n  executingViewHooks: Array,\n  loadingViewHooks: Array,\n  location: {\n    query: { [string]: any },\n  },\n  params: {\n    streamId: string,\n  },\n  route: {},\n  router: {\n    getCurrentLocation: () => ({ pathname: string, search: string }),\n  },\n};\n\nconst StreamSearchPage = ({ params: { streamId }, route, router, loadingViewHooks, executingViewHooks, location }: Props) => {\n  const [loaded, setLoaded] = useState(false);\n  const { query } = location;\n  const [hookComponent, setHookComponent] = useState(undefined);\n\n  const loadView = (viewId: string): Promise => {\n    return ViewLoader(\n      viewId,\n      loadingViewHooks,\n      executingViewHooks,\n      query,\n      () => {\n        setHookComponent(undefined);\n      },\n      (e) => {\n        if (e instanceof Error) {\n          throw e;\n        }\n        setHookComponent(e);\n      },\n    ).then((view) => {\n      setLoaded(true);\n      return view;\n    }).then(() => {\n      SearchActions.executeWithCurrentState();\n    }).catch((e) => e);\n  };\n\n  const loadNewView = (currentURLQuery: URLQuery): Promise => {\n    return processHooks(\n      ViewActions.create(View.Type.Search, streamId).then(({ view }) => view),\n      loadingViewHooks,\n      executingViewHooks,\n      currentURLQuery,\n      () => setLoaded(true),\n    ).catch(\n      (error) => UserNotification.error(`Executing search failed with error: ${error}`, 'Could not execute search'),\n    );\n  };\n\n  const loadViewFromParams = (): Promise => {\n    return loadNewView({ ...query });\n  };\n\n  const loadEmptyView = (): Promise => {\n    return loadNewView({}).then(() => {\n      const { pathname, search } = router.getCurrentLocation();\n      const currentQuery = `${pathname}${search}`;\n      // running syncWithQueryParameters with the \"old\" query, will replace the url query with the new view settings\n      syncWithQueryParameters(currentQuery);\n    });\n  };\n\n  useEffect(() => { loadViewFromParams(); }, [streamId]);\n\n  if (hookComponent) {\n    return (<>{hookComponent});\n  }\n\n  if (loaded) {\n    return (\n      \n        \n          \n        \n      \n    );\n  }\n  return ;\n};\n\nconst mapping = {\n  loadingViewHooks: 'views.hooks.loadingView',\n  executingViewHooks: 'views.hooks.executingView',\n};\nexport default withPluginEntities(StreamSearchPage, mapping);\n"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy