Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
22 lines
496 B
Text
22 lines
496 B
Text
function safeRequestAnimationFrame(callback) {
|
|
if (typeof requestAnimationFrame !== 'undefined') requestAnimationFrame(callback);
|
|
}
|
|
|
|
export default function setRafTimeout(callback, timeout = 0) {
|
|
let currTime = -1;
|
|
|
|
const shouldUpdate = now => {
|
|
if (currTime < 0) {
|
|
currTime = now;
|
|
}
|
|
|
|
if (now - currTime > timeout) {
|
|
callback(now);
|
|
currTime = -1;
|
|
} else {
|
|
safeRequestAnimationFrame(shouldUpdate);
|
|
}
|
|
};
|
|
|
|
requestAnimationFrame(shouldUpdate);
|
|
}
|