diff --git a/packages/ui-next/api.ts b/packages/ui-next/api.ts index fa7071714..6bd00680e 100644 --- a/packages/ui-next/api.ts +++ b/packages/ui-next/api.ts @@ -1,4 +1,8 @@ -export type { Context } from './src/context'; -export { usePageData } from './src/context/pageData'; -export type { PageData } from './src/context/pageData'; -export type { ComponentName } from './src/registry'; +// Context +export { type PageData, usePageData } from './src/context/pageData'; + +// Hooks +export { useUrl } from './src/hooks/useUrl'; + +// Registry +export type { ComponentName, RegistryContext } from './src/registry'; diff --git a/packages/ui-next/src/context/index.ts b/packages/ui-next/src/context/index.ts deleted file mode 100644 index d4d567513..000000000 --- a/packages/ui-next/src/context/index.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { - after, before, Component, patch, -} from '../registry'; - -export interface Context { - before: typeof before; - after: typeof after; - patch: typeof patch; - register: typeof Component; -} - -export function createContext(): Context { - return { - before, after, patch, register: Component, - }; -} diff --git a/packages/ui-next/src/main.tsx b/packages/ui-next/src/main.tsx index 36857e167..e5e7298a3 100644 --- a/packages/ui-next/src/main.tsx +++ b/packages/ui-next/src/main.tsx @@ -2,10 +2,10 @@ import { StrictMode } from 'react'; import { createRoot } from 'react-dom/client'; import plugins from 'virtual:hydro-plugins'; import App from './App'; -import { createContext } from './context'; import { type PageData, PageDataProvider } from './context/pageData'; +import { createRegistryContext } from './registry'; -const ctx = createContext(); +const ctx = createRegistryContext(); for (const plugin of plugins) { plugin.apply(ctx); } diff --git a/packages/ui-next/src/registry/index.tsx b/packages/ui-next/src/registry/index.tsx index 99105f9ba..d280f3b39 100644 --- a/packages/ui-next/src/registry/index.tsx +++ b/packages/ui-next/src/registry/index.tsx @@ -74,3 +74,16 @@ export function patch(name: ComponentName, cb: (props: any) => any, id?: string) const list = registry.patch[name] ??= []; upsert(list, { id: id ?? genId(), cb }); } + +export interface RegistryContext { + before: typeof before; + after: typeof after; + patch: typeof patch; + register: typeof Component; +} + +export function createRegistryContext(): RegistryContext { + return { + before, after, patch, register: Component, + }; +}