Files
m5wp.momentry.ddns.net/plugins/code-snippets/js/utils/hooks.ts
OpenCode 09ef1f000f Initial commit: WordPress wp-content (themes, plugins, languages)
- Theme: momentry (custom theme with REST API routes)
- Plugins: code-snippets (contains all API proxies)
- Languages: zh_TW translations
- Excludes: cache, backups, uploads, logs
2026-05-29 19:07:56 +08:00

22 lines
498 B
TypeScript

import { createContext, useContext } from 'react'
import type { Context } from 'react'
export const createContextHook = <T>(name: string): [
Context<T | undefined>,
() => T
] => {
const contextValue = createContext<T | undefined>(undefined)
const useContextHook = (): T => {
const value = useContext(contextValue)
if (value === undefined) {
throw Error(`use${name} can only be used within a ${name} context provider.`)
}
return value
}
return [contextValue, useContextHook]
}