tui-environment.tsx 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. /** @jsxImportSource @opentui/solid */
  2. import {
  3. TuiPathsProvider,
  4. TuiStartupProvider,
  5. TuiTerminalEnvironmentProvider,
  6. type TuiPaths,
  7. } from "../../src/context/runtime"
  8. import type { ParentProps } from "solid-js"
  9. import { LogProvider, type LogSink } from "../../src/context/log"
  10. export function TestTuiContexts(
  11. props: ParentProps<{
  12. cwd?: string
  13. directory?: string
  14. paths?: Partial<TuiPaths>
  15. log?: LogSink
  16. }>,
  17. ) {
  18. return (
  19. <LogProvider log={props.log ?? (() => {})}>
  20. <TuiPathsProvider
  21. value={{
  22. cwd: props.cwd ?? props.directory ?? "/tmp/opencode/packages/tui",
  23. home: "/tmp/opencode/home",
  24. state: "/tmp/opencode/state",
  25. worktree: "/tmp/opencode",
  26. ...props.paths,
  27. }}
  28. >
  29. <TuiTerminalEnvironmentProvider value={{ platform: "linux" }}>
  30. <TuiStartupProvider value={{ skipInitialLoading: false }}>{props.children}</TuiStartupProvider>
  31. </TuiTerminalEnvironmentProvider>
  32. </TuiPathsProvider>
  33. </LogProvider>
  34. )
  35. }