React Doctor
492 rules react-doctor@0.9.14
Complete effective rule inventory.
Rules
No enabled React Doctor rules match this search.
-
react-doctor/shadcn-dialog-content-requires-titleGive every DialogContent, SheetContent, AlertDialogContent, and DrawerContent a matching title part (wrapped in an sr-only element when the design shows no heading) or name the dialog with aria-label.
: warning in React projects -
react-doctor/shadcn-form-item-requires-labelGive every FormItem that wraps a FormControl a FormLabel (sr-only when the design shows no visible label) or name the control directly with aria-label.
: warning in React projects -
react-doctor/shadcn-icon-button-requires-labelGive every icon-sized Button an aria-label or an sr-only text child so assistive technology announces what the button does.
: warning in React projects -
react-doctor/shadcn-input-group-no-raw-controlsCompose InputGroup from its own parts (InputGroupInput, InputGroupTextarea, and InputGroupAddon with InputGroupButton) so the group owns one border, focus ring, and error state.
: warning in React projects -
react-doctor/shadcn-tabs-trigger-requires-listRender each imported TabsTrigger inside its library TabsList so keyboard navigation and tablist semantics share one scope.
: warning in React projects -
react-doctor/style-prop-objectPass
styleas an object so React can apply CSS properties instead of ignoring a string style value.: warning in React projects -
react-doctor/styled-components-non-transient-custom-prop-on-intrinsic-elementPrefix custom styled-components props with
$(e.g.$active) so styled-components v6 keeps them off the DOM node instead of forwarding them as invalid attributes.: warning in React projects -
react-doctor/supabase-client-owned-authz-fieldUse RLS policies based on
auth.uid()and server-owned membership rows; do not trust client-provided owner, org, or role columns.: error in React projects -
react-doctor/supabase-rls-policy-riskKeep public-read policies explicit, but gate inserts, updates, deletes, and service-role bypasses behind
auth.uid()plus trusted tenant membership.: error in React projects -
react-doctor/supabase-table-missing-rlsEnable RLS in the same migration (
alter table <name> enable row level security;) and addauth.uid()-scoped policies for select/insert/update/delete. A public table without RLS is fully readable and writable with the public anon key.: error in React projects -
react-doctor/svg-filter-clickjacking-riskAvoid filtering cross-origin iframes. Use
frame-ancestorson sensitive pages and keep SVG filters away from embedded privileged UI.: warning in React projects -
react-doctor/tabindex-no-positiveUse
tabIndex={0}(focusable in source order) ortabIndex={-1}(focus only in code).: warning in React projects -
react-doctor/tanstack-form-on-submit-requires-prevent-defaultWrap the submit handler as onSubmit={(event) => { event.preventDefault(); form.handleSubmit(); }} because TanStack Form's handleSubmit never cancels the native submit itself.
: warning in React projects -
react-doctor/tanstack-table-no-unstable-data-or-columnsGive the table's data and columns options stable references: useMemo or useState inside the component, or a module-scope constant, so row and column models are not rebuilt on every render.
: warning in React projects -
react-doctor/tanstack-virtual-measure-element-requires-data-indexAdd data-index={virtualItem.index} to every element whose ref is the virtualizer's measureElement, so dynamic measurement can attribute the size to the right row.
: warning in React projects -
react-doctor/tenant-static-proxy-riskBind tenant identity to the trusted host or authenticated org, canonicalize after decoding, reject traversal, and never let one tenant choose another tenant's asset prefix.
: warning in React projects -
react-doctor/three-cap-device-pixel-ratioCap renderer pixel ratio, commonly at 2, so high-density displays do not multiply GPU work without a bound
: warning in React projects -
react-doctor/three-effect-composer-output-pass-lastAdd OutputPass after every other EffectComposer pass
: error in React projects -
react-doctor/three-effect-composer-require-size-on-resizeResize every EffectComposer associated with a resized renderer
: error in React projects -
react-doctor/three-gpu-computation-handle-init-errorCheck or propagate the error string returned by GPUComputationRenderer.init()
: error in React projects -
react-doctor/three-gpu-computation-require-init-before-computeCall and validate GPUComputationRenderer.init() before scheduling compute()
: error in React projects -
react-doctor/three-gpu-computation-valid-variable-nameUse a unique, non-reserved GLSL identifier for each computation variable
: error in React projects -
react-doctor/three-limit-shadowed-point-lightsKeep at most two shadow-casting point lights in one scene, or use cheaper directional, spot, baked, or fake shadows
: warning in React projects -
react-doctor/three-no-allocation-in-pointer-moveReuse vectors, raycasters, and other Three.js objects while handling continuous pointer movement
: warning in React projects -
react-doctor/three-no-async-animation-loopKeep animation callbacks synchronous; start asynchronous work outside the loop and consume completed state during frames
: warning in React projects -
react-doctor/three-no-clone-in-animation-loopClone once before the animation loop or copy values into a reusable scratch object during frames
: warning in React projects -
react-doctor/three-no-compile-in-animation-loopPrecompile scene materials outside the animation loop before they are first displayed
: error in React projects -
react-doctor/three-no-ignored-basic-material-propertiesUse MeshStandardMaterial or MeshPhysicalMaterial when a mesh needs roughness or metalness
: warning in React projects -
react-doctor/three-no-ignored-linewidthUse Line2 for wide GPU-rendered lines, or leave linewidth at one pixel
: warning in React projects -
react-doctor/three-no-material-recompile-in-animation-loopChange material defines or features outside the animation loop and set needsUpdate only when the compiled program must change
: error in React projects -
react-doctor/three-no-new-in-animation-loopAllocate reusable objects before the animation loop and mutate them in place during each frame
: warning in React projects -
react-doctor/three-no-normalized-float-buffer-attributeUse normalized only with integer buffer data; floating-point attributes are already represented directly
: warning in React projects