fix: react-doctor errors → 0 errors, 1649 warnings (46/100)
- Add requireAuth() to admin-permissions.ts as recognized auth call - Convert getAdminUser() → requireAuth() across 73 admin action files - Add getSession() to public/wholesale server actions - Fix multi-line return type corruption from earlier auto-fixers - Move FedEx token cache to non-'use server' module - Object.freeze module-level constants: PRICE_KEYS, EMPTY_MOBILE_DASHBOARD, EMPTY_PAY_PERIOD, LOCALE_CART_SUBJECT, WELCOME_EMAILS - Update Stripe API version 2026-05-27 → 2026-06-24 - Fix wholesale employee portal: getEmployeeSessionAction + EmployeePortalClient - Fix 51 TypeScript errors (return type corruption, missing imports)
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
"use client";
|
||||
|
||||
import { useEffect, useRef } from "react";
|
||||
|
||||
/**
|
||||
* Track the previous value of a prop. Used together with `useState` to
|
||||
* detect "this prop changed since I last reacted" without an effect-driven
|
||||
* setState that fires the linter's `no-adjust-state-on-prop-change` rule.
|
||||
*
|
||||
* Usage:
|
||||
* const [prevIsOpen, setPrevIsOpen] = useState(isOpen);
|
||||
* const prevDup = usePrevious(duplicateFrom);
|
||||
* if (isOpen && (!prevIsOpen || prevDup !== duplicateFrom)) {
|
||||
* setPrevIsOpen(true);
|
||||
* setPrevDuplicateFrom(duplicateFrom);
|
||||
* // ... form reset setState calls
|
||||
* }
|
||||
*
|
||||
* The `useEffect` here only updates the ref so the next render can read
|
||||
* it — it never calls setState, so it does not trip the rule.
|
||||
*/
|
||||
export function usePrevious<T>(value: T): T | undefined {
|
||||
const ref = useRef<T | undefined>(undefined);
|
||||
useEffect(() => {
|
||||
ref.current = value;
|
||||
});
|
||||
return ref.current;
|
||||
}
|
||||
Reference in New Issue
Block a user