mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 17:35:10 +03:00
- Most changes are related to either types or `useRef` usages (it now requires an initial value). - also updated `vaul` to its latest version and haven't noticed any change ([design-system demo](https://design-system-git-react-19-supabase.vercel.app/design-system/docs/components/drawer)) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Upgraded workspace to React 19. * **Bug Fixes** * Improved null-safety and ref handling across editors, UI components, shortcuts, and markdown/image rendering to reduce runtime errors. * Safer event/timeout/interval cleanup and more robust command/context handling. * **Chores** * Bumped vaul dependency versions. * **Documentation** * Type and TypeScript accuracy improvements for clearer developer feedback. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/45886) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
23 lines
452 B
TypeScript
23 lines
452 B
TypeScript
'use client'
|
|
|
|
import { debounce } from 'lodash'
|
|
import { useEffect, useMemo, useRef } from 'react'
|
|
|
|
export const useDebounce = (callback: () => void, delay: number = 1000) => {
|
|
const ref = useRef<any | null>(null)
|
|
|
|
useEffect(() => {
|
|
ref.current = callback
|
|
}, [callback])
|
|
|
|
const debouncedCallback = useMemo(() => {
|
|
const func = () => {
|
|
ref.current?.()
|
|
}
|
|
|
|
return debounce(func, delay)
|
|
}, [])
|
|
|
|
return debouncedCallback
|
|
}
|