Back to home

uh/

simple-context

Version: 0.0.1

Last Updated: Unknown


React-hooks - Context

Use this tempalate to used to generate a basic context hook that throws errors without providers being used.

Required

VariableData TypeInfo
namestringContext provider name

Module files

1import * as React from "react";
2
3interface <%= _.upperFirst(_.camelCase(name)) %> {
4 counter: number;
5}
6const <%= _.upperFirst(_.camelCase(name)) %>Context = React.createContext<<%= _.upperFirst(_.camelCase(name)) %> | undefined>(undefined);
7
8interface <%= _.upperFirst(_.camelCase(name)) %>ProviderProps {
9 value: <%= _.upperFirst(_.camelCase(name)) %>;
10}
11
12/**
13 * @param {<%= _.upperFirst(_.camelCase(name)) %>ProviderProps} props Props to pass to provider
14 * @param {<%= _.upperFirst(_.camelCase(name)) %>} props.value Initial state for context
15 * @returns {React.ReactElement} Context Provider
16 */
17export const <%= _.upperFirst(_.camelCase(name)) %>Provider: React.FC<<%= _.upperFirst(_.camelCase(name)) %>ProviderProps> = ({
18 value,
19 children,
20}) => {
21 return (
22 <<%= _.upperFirst(_.camelCase(name)) %>Context.Provider value={value}>
23 {children}
24 </<%= _.upperFirst(_.camelCase(name)) %>Context.Provider>
25 );
26};
27
28/**
29 * Hook to access state
30 *
31 * @returns {<%= _.upperFirst(_.camelCase(name)) %>} hook to access state and dispatch
32 */
33export const use<%= _.upperFirst(_.camelCase(name)) %> = (): <%= _.upperFirst(_.camelCase(name)) %> => {
34 const context = React.useContext(<%= _.upperFirst(_.camelCase(name)) %>Context);
35
36 if (!context) {
37 throw new Error(`use<%= _.upperFirst(_.camelCase(name)) %> must be rendered within the <%= _.upperFirst(_.camelCase(name)) %>Provider`);
38 }
39
40 return context;
41};

Install


Lift generate


Repository

https://github.com/okeeffed/pkg-lift-uh

Sections