summaryrefslogtreecommitdiffhomepage
path: root/packages/ui/src/context
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-12-07 21:21:13 -0600
committerAdam <[email protected]>2025-12-07 21:21:18 -0600
commit9a90939ac410e3ebffb741994383d7a434069682 (patch)
treef3621d491af6eb97e0bf9039c7f82f0451ebd9d7 /packages/ui/src/context
parent123a136093968376935e7166efd26b17a3f68b39 (diff)
downloadopencode-9a90939ac410e3ebffb741994383d7a434069682.tar.gz
opencode-9a90939ac410e3ebffb741994383d7a434069682.zip
fix: use diff context instead of prop drilling
Diffstat (limited to 'packages/ui/src/context')
-rw-r--r--packages/ui/src/context/diff.tsx13
-rw-r--r--packages/ui/src/context/index.ts1
2 files changed, 14 insertions, 0 deletions
diff --git a/packages/ui/src/context/diff.tsx b/packages/ui/src/context/diff.tsx
new file mode 100644
index 000000000..630437de6
--- /dev/null
+++ b/packages/ui/src/context/diff.tsx
@@ -0,0 +1,13 @@
+import { createContext, useContext, type ParentProps, type ValidComponent } from "solid-js"
+
+const DiffComponentContext = createContext<ValidComponent>()
+
+export function DiffComponentProvider(props: ParentProps<{ component: ValidComponent }>) {
+ return <DiffComponentContext.Provider value={props.component}>{props.children}</DiffComponentContext.Provider>
+}
+
+export function useDiffComponent() {
+ const component = useContext(DiffComponentContext)
+ if (!component) throw new Error("DiffComponentProvider must be used to provide a diff component")
+ return component
+}
diff --git a/packages/ui/src/context/index.ts b/packages/ui/src/context/index.ts
index fdff32bf2..3e0f5de74 100644
--- a/packages/ui/src/context/index.ts
+++ b/packages/ui/src/context/index.ts
@@ -1,2 +1,3 @@
export * from "./helper"
export * from "./data"
+export * from "./diff"