remove temp debounce
This commit is contained in:
@@ -30,6 +30,7 @@
|
||||
"@tursodatabase/api": "^1.9.2",
|
||||
"@typeschema/valibot": "^0.13.4",
|
||||
"bcrypt": "^6.0.0",
|
||||
"es-toolkit": "^1.43.0",
|
||||
"google-auth-library": "^10.5.0",
|
||||
"highlight.js": "^11.11.1",
|
||||
"jose": "^6.1.3",
|
||||
@@ -42,7 +43,7 @@
|
||||
"zod": "^4.2.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=22"
|
||||
"node": "24.x"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tailwindcss/typography": "^0.5.19",
|
||||
|
||||
@@ -12,7 +12,7 @@ import type {
|
||||
CommentReaction,
|
||||
UserPublicData
|
||||
} from "~/types/comment";
|
||||
import { debounce } from "~/lib/comment-utils";
|
||||
import { debounce } from "es-toolkit";
|
||||
import UserDefaultImage from "~/components/icons/UserDefaultImage";
|
||||
import ReplyIcon from "~/components/icons/ReplyIcon";
|
||||
import TrashIcon from "~/components/icons/TrashIcon";
|
||||
|
||||
@@ -100,34 +100,3 @@ export function insertSoftHyphens(
|
||||
})
|
||||
.join(" ");
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a debounced function that delays execution until after specified delay
|
||||
* @param fn - The function to debounce
|
||||
* @param delay - Delay in milliseconds
|
||||
* @returns Debounced function with cancel method
|
||||
*/
|
||||
export function debounce<T extends (...args: any[]) => any>(
|
||||
fn: T,
|
||||
delay: number
|
||||
): T & { cancel: () => void } {
|
||||
let timeoutId: ReturnType<typeof setTimeout> | undefined;
|
||||
|
||||
const debounced = function (this: any, ...args: Parameters<T>) {
|
||||
if (timeoutId !== undefined) {
|
||||
clearTimeout(timeoutId);
|
||||
}
|
||||
timeoutId = setTimeout(() => {
|
||||
fn.apply(this, args);
|
||||
}, delay);
|
||||
} as T & { cancel: () => void };
|
||||
|
||||
debounced.cancel = () => {
|
||||
if (timeoutId !== undefined) {
|
||||
clearTimeout(timeoutId);
|
||||
timeoutId = undefined;
|
||||
}
|
||||
};
|
||||
|
||||
return debounced;
|
||||
}
|
||||
|
||||
@@ -190,33 +190,6 @@ export function sortComments(
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// Debounce Utility
|
||||
// ============================================================================
|
||||
|
||||
/**
|
||||
* Debounces a function call to limit execution frequency
|
||||
* Useful for window resize and scroll events
|
||||
*/
|
||||
export function debounce<T extends (...args: any[]) => any>(
|
||||
func: T,
|
||||
wait: number
|
||||
): (...args: Parameters<T>) => void {
|
||||
let timeout: ReturnType<typeof setTimeout> | null = null;
|
||||
|
||||
return function executedFunction(...args: Parameters<T>) {
|
||||
const later = () => {
|
||||
timeout = null;
|
||||
func(...args);
|
||||
};
|
||||
|
||||
if (timeout !== null) {
|
||||
clearTimeout(timeout);
|
||||
}
|
||||
timeout = setTimeout(later, wait);
|
||||
};
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// Validation Utilities
|
||||
// ============================================================================
|
||||
|
||||
@@ -4,7 +4,7 @@ import { Title, Meta } from "@solidjs/meta";
|
||||
import { createAsync } from "@solidjs/router";
|
||||
import { getRequestEvent } from "solid-js/web";
|
||||
import { api } from "~/lib/api";
|
||||
import { debounce } from "~/lib/client-utils";
|
||||
import { debounce } from "es-toolkit";
|
||||
import Dropzone from "~/components/blog/Dropzone";
|
||||
import TextEditor from "~/components/blog/TextEditor";
|
||||
import TagMaker from "~/components/blog/TagMaker";
|
||||
|
||||
@@ -4,7 +4,7 @@ import { Title, Meta } from "@solidjs/meta";
|
||||
import { createAsync } from "@solidjs/router";
|
||||
import { getRequestEvent } from "solid-js/web";
|
||||
import { api } from "~/lib/api";
|
||||
import { debounce } from "~/lib/client-utils";
|
||||
import { debounce } from "es-toolkit";
|
||||
import Dropzone from "~/components/blog/Dropzone";
|
||||
import TextEditor from "~/components/blog/TextEditor";
|
||||
import TagMaker from "~/components/blog/TagMaker";
|
||||
|
||||
Reference in New Issue
Block a user