Version: 0.0.1
Last Updated: Unknown
Use this tempalate to used to generate a basic context hook that throws errors without providers being used.
| Variable | Data Type | Info |
|---|---|---|
name | string | Context provider name |
1import * as React from "react";23interface <%= _.upperFirst(_.camelCase(name)) %> {4 counter: number;5}6const <%= _.upperFirst(_.camelCase(name)) %>Context = React.createContext<<%= _.upperFirst(_.camelCase(name)) %> | undefined>(undefined);78interface <%= _.upperFirst(_.camelCase(name)) %>ProviderProps {9 value: <%= _.upperFirst(_.camelCase(name)) %>;10}1112/**13 * @param {<%= _.upperFirst(_.camelCase(name)) %>ProviderProps} props Props to pass to provider14 * @param {<%= _.upperFirst(_.camelCase(name)) %>} props.value Initial state for context15 * @returns {React.ReactElement} Context Provider16 */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};2728/**29 * Hook to access state30 *31 * @returns {<%= _.upperFirst(_.camelCase(name)) %>} hook to access state and dispatch32 */33export const use<%= _.upperFirst(_.camelCase(name)) %> = (): <%= _.upperFirst(_.camelCase(name)) %> => {34 const context = React.useContext(<%= _.upperFirst(_.camelCase(name)) %>Context);3536 if (!context) {37 throw new Error(`use<%= _.upperFirst(_.camelCase(name)) %> must be rendered within the <%= _.upperFirst(_.camelCase(name)) %>Provider`);38 }3940 return context;41};