summaryrefslogtreecommitdiffhomepage
path: root/packages/storybook/.storybook/mocks/app/context/layout.ts
blob: 0c5d6e97c9097c052ad5274ea3e15ffa522be7c0 (plain)
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
import { createSignal } from "solid-js"

const [all, setAll] = createSignal<string[]>([])
const [active, setActive] = createSignal<string | undefined>(undefined)
const [reviewOpen, setReviewOpen] = createSignal(false)

const tabs = {
  all,
  active,
  open(tab: string) {
    setAll((current) => (current.includes(tab) ? current : [...current, tab]))
  },
  setActive(tab: string) {
    if (!all().includes(tab)) {
      tabs.open(tab)
    }
    setActive(tab)
  },
}

const view = {
  reviewPanel: {
    opened: reviewOpen,
    open() {
      setReviewOpen(true)
    },
  },
}

export function useLayout() {
  return {
    tabs: () => tabs,
    view: () => view,
    fileTree: {
      setTab() {},
    },
    handoff: {
      setTabs() {},
    },
  }
}