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:
Nora
2026-06-25 23:49:37 -06:00
parent 4d295ef062
commit 0ac4beaaa8
580 changed files with 52565 additions and 4953 deletions
+28
View File
@@ -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;
}