react-dev
This skill should be used when building React components with TypeScript, typing hooks, handling events, or when React TypeScript, React 19, Server Components are mentioned. Covers type-safe patterns for React 18-19 including generic components, proper event typing, and routing integration (TanStack
By softaworks · 3,922 installs
npx skills add softaworks/agent-toolkit --skill react-dev
Source repository · Upstream listing
React TypeScript
Type safe React = compile time guarantees = confident refactoring.
<when to use
Building typed React components
Implementing generic components
Typing event handlers, forms, refs
Using React 19 features (Actions, Server Components, use())
Router integration (TanStack Router, React Router)
Custom hooks with proper typing
NOT for: non React TypeScript, vanilla JS React
</when to use
<react 19 changes
React 19 breaking changes require migration. Key patterns:
ref as prop forwardRef deprecated:
useActionState replaces useFormState:
use() unwraps promises/context:
See [react 19 patterns.md](references/react 19 patterns.md) for useOptimistic, useTransition, migration checklist.
</react 19 changes
<component patterns
Props extend native elements:
Children typing :
Discriminated unions for variant props:
</component patterns
<event handlers
Use specific event types for accurate target typing:
See [event handlers.md](references/event handlers.md) for focus, drag, clipboard, touch, wheel events.
</event handlers
<hooks typing
useState explicit for unions/null:
useRef null for DOM, value for mutable:
useReducer discriminated unions for actions:
Custom hooks tuple returns with as const:
useContext null guard pattern:
See [hooks.md](references/hooks.md) for useCallback, useMemo, useImperativeHandle, useSyncExternalStore.
</hooks typing
<generic components
Generic components infer types from props no manual annotations at call site.
Pattern keyof T for column keys, render props for custom rendering:
Constrained generics for required properties:
See [generic components.md](examples/generic components.md) for Select, List, Modal, FormField patterns.
</generic components
<server components
React 19 Server Components run on server, can be async.
Async data fetching :
Server Actions 'use server' for mutations:
Client + Server Action :
use() for promise handoff :
See [server components.md](examples/server components.md) for parallel fetching, streaming, error boundaries.
</server components
<routing
Both TanStack Router and React Router v7 provide type safe routing solutions.
TanStack Router Compile time type safety with Zod validation:
React Router v7 Automatic type generation with Framework Mode:
See [tanstack router.md](references/tanstack router.md) for TanStack patterns and [react router.md](references/react router.md) for React Router patterns.
</routing
<rules
ALWAYS:
Specific event types (MouseEvent, ChangeEvent, etc)
Explicit useState for unions/null
ComponentPropsWithoutRef for native element extension
Discriminated unions for variant props
as const for tuple returns
ref as prop in React 19 (no forwardRef)
useActionState for form actions
Type safe routing patterns (see routing section)
NEVER:
any for event handlers
JSX.Element for children (use ReactNode)
forwardRef in React 19+
useFormState (deprecated)
Forget null handling for DOM refs
Mix Server/Client components in same file
Await promises when passing to use()
</rules
<references
[hooks.md](references/hooks.md) useState, useRef, useReducer, useContext, custom hooks
[event handlers.md](references/event handlers.md) all event types, generic handlers
[react 19 patterns.md](references/react 19 patterns.md) useActionState, use(), useOptimistic, migration
[generic components.md](examples/generic components.md) Table, Select, List, Modal patterns
[server components.md](examples/server components.md) async components, Server Actions, streaming
[tanstack router.md](references/tanstack router.md) TanStack Router typed routes, search params, navigation
[react router.md](references/react router.md) React Router v7 loaders, actions, type generation, forms
</references