data.tsx 845 B

123456789101112131415161718192021222324252627282930313233343536
  1. import type { Message, Session, Part, FileDiff, SessionStatus } from "@opencode-ai/sdk/v2"
  2. import { createSimpleContext } from "./helper"
  3. import { PreloadMultiFileDiffResult } from "@pierre/diffs/ssr"
  4. type Data = {
  5. session: Session[]
  6. session_status: {
  7. [sessionID: string]: SessionStatus
  8. }
  9. session_diff: {
  10. [sessionID: string]: FileDiff[]
  11. }
  12. session_diff_preload?: {
  13. [sessionID: string]: PreloadMultiFileDiffResult<any>[]
  14. }
  15. message: {
  16. [sessionID: string]: Message[]
  17. }
  18. part: {
  19. [messageID: string]: Part[]
  20. }
  21. }
  22. export const { use: useData, provider: DataProvider } = createSimpleContext({
  23. name: "Data",
  24. init: (props: { data: Data; directory: string }) => {
  25. return {
  26. get store() {
  27. return props.data
  28. },
  29. get directory() {
  30. return props.directory
  31. },
  32. }
  33. },
  34. })