starling-devex 0.1.2

Starling: a local dev orchestrator with a central daemon, shared named-URL proxy, and a k9s-style TUI (a Rust port of Tilt + portless)
import React from "react"
import { MemoryRouter } from "react-router"
import HeaderBar, { HeaderBarPage } from "./HeaderBar"
import {
  clusterConnection,
  nResourceView,
  tenResourceView,
  twoResourceView,
} from "./testdata"
import { UpdateStatus } from "./types"

export default {
  title: "New UI/Shared/HeaderBar",
  decorators: [
    (Story: any) => (
      <MemoryRouter initialEntries={["/"]}>
        <div style={{ margin: "-1rem" }}>
          <Story />
        </div>
      </MemoryRouter>
    ),
  ],
}

export const TwoResources = () => (
  <HeaderBar
    view={twoResourceView()}
    currentPage={HeaderBarPage.Detail}
    isSocketConnected={true}
  />
)

export const TenResources = () => (
  <HeaderBar
    view={tenResourceView()}
    currentPage={HeaderBarPage.Detail}
    isSocketConnected={true}
  />
)

export const TenResourcesErrorsAndWarnings = () => {
  let view = tenResourceView() as any
  view.uiResources[0].status.updateStatus = UpdateStatus.Error
  view.uiResources[1].status.buildHistory[0].warnings = ["warning time"]
  view.uiResources[5].status.updateStatus = UpdateStatus.Error
  return (
    <HeaderBar
      view={view}
      currentPage={HeaderBarPage.Grid}
      isSocketConnected={true}
    />
  )
}

export const OneHundredResources = () => (
  <HeaderBar
    view={nResourceView(100)}
    currentPage={HeaderBarPage.Grid}
    isSocketConnected={true}
  />
)

export const UpgradeAvailable = () => {
  let view = twoResourceView()
  let status = view.uiSession!.status
  status!.suggestedTiltVersion = "0.18.1"
  status!.runningTiltBuild = { version: "0.18.0", dev: false }
  status!.versionSettings = { checkUpdates: true }
  return (
    <HeaderBar
      view={view}
      currentPage={HeaderBarPage.Detail}
      isSocketConnected={true}
    />
  )
}

export const HealthyClusterConnection = () => {
  const view = nResourceView(5)
  const k8sConnection = clusterConnection()
  view.clusters = [k8sConnection]

  return (
    <HeaderBar
      view={view}
      currentPage={HeaderBarPage.Detail}
      isSocketConnected={true}
    />
  )
}

export const UnhealthyClusterConnection = () => {
  const view = nResourceView(5)
  const k8sConnection = clusterConnection(
    'Get "https://kubernetes.docker.internal:6443/version?timeout=32s": dial tcp 127.0.0.1:6443: connect: connection refused'
  )
  view.clusters = [k8sConnection]

  return (
    <HeaderBar
      view={view}
      currentPage={HeaderBarPage.Detail}
      isSocketConnected={true}
    />
  )
}