drone/web/src/hooks/useGetSpaceParam.ts

19 lines
763 B
TypeScript

import { useParams } from 'react-router-dom'
import type { CODEProps } from 'RouteDefinitions'
import { useAppContext } from 'AppContext'
/**
* Get space parameter.
* Space is passed differently in standalone and embedded modes. In standalone
* mode, space is available from routing url (aka being passed as `:space`
* using react-router). In embedded mode, Harness UI's routing always works with
* `:accountId/orgs/:orgIdentifier/projects/:projectIdentifier` so we can't get
* `space` from URL. As a result, we have to pass `space` via AppContext.
* @returns space parameter.
*/
export function useGetSpaceParam() {
const { space: spaceFromParams = '' } = useParams<CODEProps>()
const { space } = useAppContext()
return space || spaceFromParams
}