All files / components/navigation/Label index.js

0% Statements 0/10
0% Branches 0/8
0% Functions 0/2
0% Lines 0/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56                                                                                                               
// @flow
 
import { type Element } from "react"
import Label from "./Label"
import prepareComponent from "@bluframe/bluterrine/prepareComponent"
import themes from "./themes"
 
export type Props = {|
  +asButton?: boolean,
  +externalLink?: string,
  +children?: Element<*>,
  +label: string,
  +link: string,
  +placement: "footer" | "navBar"
|}
 
export type ComponentProps = {|
  ...Props,
  +theme: {|
    +[string]: any
  |}
|}
 
const getLink = (props: Props): string => {
  // External Links take priority
  if (props.externalLink) {
    // Inspire Blu Frame Development Link
    if (
      process.env.NODE_ENV === "development" &&
      props.externalLink === "https://inspire.blufra.me"
    ) {
      return "http://inspire.bluframe.engineering"
    }
 
    // External Link
    return props.externalLink
  }
 
  // Internal Links
  if (process.env.NODE_ENV === "development") {
    return `http://bluframe.bluframe.engineering/#${props.link}`
  }
 
  return `https://blufra.me/#${props.link}`
}
 
const usePrepareComponent = (props: Props): ComponentProps => ({
  ...props,
  link: getLink(props),
  theme: themes[props.placement]
})
 
export default (prepareComponent<Props, ComponentProps>(usePrepareComponent)(
  Label
): React$AbstractComponent<Props, ComponentProps>)