A simple utility library to create react context/provider with proper typing support
npm install puropuro is a react typescript utility library from plasmo to create react context with minimal boilerplate using the react hook API.
``sh`
pnpm add puro
`tsx
// providers/view-provider.tsx
import { createProvider } from "puro"
import { useContext, useState } from "react"
// A simple example of a provider hook
const useViewProvider = () => {
const [x, _setX] = useState(0)
const [y, _setY] = useState(0)
return {
x,
y,
setX: (newX: string | number) => _setX(parseFloat(newX)),
setY: (newY: string | number) => _setY(parseFloat(newY))
}
}
const { BaseContext, Provider } = createProvider(useViewProvider)
export const ViewProvider = Provider
export const useView = () => useContext(BaseContext)
`
`tsx
// _app.tsx
import type { AppProps } from "next/app"
import { ViewProvider } from "~providers/view-provider"
function CoolApp({ Component, pageProps }: AppProps) {
return (
)
}
export default CoolApp
`
`tsx
// components/set-coordinate.tsx
import type { AppProps } from "next/app"
import { useView } from "~providers/view-provider"
export function XInput() {
const { x, setX } = useView()
return setX(e.target.value)} />
}
export function YInput() {
const { x, setY } = useView()
return setY(e.target.value)} />
}
`
`shinstall deps
pnpm i
$3
`
pnpm test
`Publish process
1. Commit any changes to the repository.
2.
pnpm version patch | minor | major
3. pnpm publish`The Battle Station is open for ambassadors.