remove temp debounce
This commit is contained in:
@@ -30,6 +30,7 @@
|
|||||||
"@tursodatabase/api": "^1.9.2",
|
"@tursodatabase/api": "^1.9.2",
|
||||||
"@typeschema/valibot": "^0.13.4",
|
"@typeschema/valibot": "^0.13.4",
|
||||||
"bcrypt": "^6.0.0",
|
"bcrypt": "^6.0.0",
|
||||||
|
"es-toolkit": "^1.43.0",
|
||||||
"google-auth-library": "^10.5.0",
|
"google-auth-library": "^10.5.0",
|
||||||
"highlight.js": "^11.11.1",
|
"highlight.js": "^11.11.1",
|
||||||
"jose": "^6.1.3",
|
"jose": "^6.1.3",
|
||||||
@@ -42,7 +43,7 @@
|
|||||||
"zod": "^4.2.1"
|
"zod": "^4.2.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=22"
|
"node": "24.x"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@tailwindcss/typography": "^0.5.19",
|
"@tailwindcss/typography": "^0.5.19",
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import type {
|
|||||||
CommentReaction,
|
CommentReaction,
|
||||||
UserPublicData
|
UserPublicData
|
||||||
} from "~/types/comment";
|
} from "~/types/comment";
|
||||||
import { debounce } from "~/lib/comment-utils";
|
import { debounce } from "es-toolkit";
|
||||||
import UserDefaultImage from "~/components/icons/UserDefaultImage";
|
import UserDefaultImage from "~/components/icons/UserDefaultImage";
|
||||||
import ReplyIcon from "~/components/icons/ReplyIcon";
|
import ReplyIcon from "~/components/icons/ReplyIcon";
|
||||||
import TrashIcon from "~/components/icons/TrashIcon";
|
import TrashIcon from "~/components/icons/TrashIcon";
|
||||||
|
|||||||
@@ -100,34 +100,3 @@ export function insertSoftHyphens(
|
|||||||
})
|
})
|
||||||
.join(" ");
|
.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
|
// Validation Utilities
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { Title, Meta } from "@solidjs/meta";
|
|||||||
import { createAsync } from "@solidjs/router";
|
import { createAsync } from "@solidjs/router";
|
||||||
import { getRequestEvent } from "solid-js/web";
|
import { getRequestEvent } from "solid-js/web";
|
||||||
import { api } from "~/lib/api";
|
import { api } from "~/lib/api";
|
||||||
import { debounce } from "~/lib/client-utils";
|
import { debounce } from "es-toolkit";
|
||||||
import Dropzone from "~/components/blog/Dropzone";
|
import Dropzone from "~/components/blog/Dropzone";
|
||||||
import TextEditor from "~/components/blog/TextEditor";
|
import TextEditor from "~/components/blog/TextEditor";
|
||||||
import TagMaker from "~/components/blog/TagMaker";
|
import TagMaker from "~/components/blog/TagMaker";
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { Title, Meta } from "@solidjs/meta";
|
|||||||
import { createAsync } from "@solidjs/router";
|
import { createAsync } from "@solidjs/router";
|
||||||
import { getRequestEvent } from "solid-js/web";
|
import { getRequestEvent } from "solid-js/web";
|
||||||
import { api } from "~/lib/api";
|
import { api } from "~/lib/api";
|
||||||
import { debounce } from "~/lib/client-utils";
|
import { debounce } from "es-toolkit";
|
||||||
import Dropzone from "~/components/blog/Dropzone";
|
import Dropzone from "~/components/blog/Dropzone";
|
||||||
import TextEditor from "~/components/blog/TextEditor";
|
import TextEditor from "~/components/blog/TextEditor";
|
||||||
import TagMaker from "~/components/blog/TagMaker";
|
import TagMaker from "~/components/blog/TagMaker";
|
||||||
|
|||||||
Reference in New Issue
Block a user