use-timed-reset-state
v0.1.1
Published
A hook that takes the resets the state to a default after a every time given interval
Maintainers
Readme
use-timed-reset-state
A React hook that automatically resets your state to a default value after a specified interval. Supports daily, weekly, monthly, or custom intervals, and can persist state in localStorage.
Installation npm install use-timed-reset-state
or with Yarn:
yarn add use-timed-reset-state
Usage (JavaScript / TypeScript) import useTimedResetState from "use-timed-reset-state";
// Example: reset a number every day at 3:30 AM const [count, setCount, reset] = useTimedResetState(0, { interval: "day", resetAtHours: 3, resetAtMinutes: 30 });
Options Option Type Description interval "day" | "week" | "month" | "custom" Reset interval type. Defaults to none. dayOfMonth number Day of the month to reset (for monthly interval). Defaults to 1. dayOfWeek number Day of the week to reset (0 = Sunday, 1 = Monday, etc.). msInterval number Milliseconds interval (for "custom" interval). resetAtHours number | string Hour of the day to reset. Defaults to 0. resetAtMinutes number | string Minute of the hour to reset. Defaults to 0. resetAtSeconds number | string Second of the minute to reset. Defaults to 0. resetAtMilliseconds number | string Millisecond of the second to reset. Defaults to 0.
Optional third argument storageKey allows persisting state in localStorage:
const [coupons, setCoupons] = useTimedResetState(defaultCoupons, { interval: "week", dayOfWeek: 1, resetAtHours: 0, resetAtMinutes: 0, }, "coupons");
Returns
[value, setValue, reset] — similar to useState:
value — current state
setValue — update state
reset — manually reset state to default
Example: Coupon Game const [coupons, setCoupons] = useTimedResetState(defaultCoupons, { interval: "week", dayOfWeek: 1, // reset on Monday resetAtHours: 0, resetAtMinutes: 0 }, "coupons");
// Check if a coupon exists const isBought = coupons.find(c => c.id === coupon.id);
License MIT
