From 0b1c1e8b8c42c01487c51b7668bb04a6e36aa640 Mon Sep 17 00:00:00 2001 From: Yandi Date: Sun, 22 Feb 2026 19:53:01 +0700 Subject: [PATCH] fix: replace full lodash imports with per-function imports Importing the entire lodash library adds ~70kb to the bundle. Switch to specific imports (lodash/debounce, lodash/escapeRegExp) so only the used functions are included. --- .../application/volume-backups/restore-volume-backups.tsx | 2 +- .../components/dashboard/database/backups/restore-backup.tsx | 4 ++-- .../components/dashboard/docker/logs/line-count-filter.tsx | 2 +- .../components/dashboard/docker/logs/terminal-line.tsx | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/volume-backups/restore-volume-backups.tsx b/apps/dokploy/components/dashboard/application/volume-backups/restore-volume-backups.tsx index 6eda33648..d4d41569d 100644 --- a/apps/dokploy/components/dashboard/application/volume-backups/restore-volume-backups.tsx +++ b/apps/dokploy/components/dashboard/application/volume-backups/restore-volume-backups.tsx @@ -1,6 +1,6 @@ import { zodResolver } from "@hookform/resolvers/zod"; import copy from "copy-to-clipboard"; -import { debounce } from "lodash"; +import debounce from "lodash/debounce"; import { CheckIcon, ChevronsUpDown, Copy, RotateCcw } from "lucide-react"; import { useState } from "react"; import { useForm } from "react-hook-form"; diff --git a/apps/dokploy/components/dashboard/database/backups/restore-backup.tsx b/apps/dokploy/components/dashboard/database/backups/restore-backup.tsx index 01f6944e1..fb8817fb9 100644 --- a/apps/dokploy/components/dashboard/database/backups/restore-backup.tsx +++ b/apps/dokploy/components/dashboard/database/backups/restore-backup.tsx @@ -1,6 +1,6 @@ import { zodResolver } from "@hookform/resolvers/zod"; import copy from "copy-to-clipboard"; -import _ from "lodash"; +import debounce from "lodash/debounce"; import { CheckIcon, ChevronsUpDown, @@ -236,7 +236,7 @@ export const RestoreBackup = ({ const currentDatabaseType = form.watch("databaseType"); const metadata = form.watch("metadata"); - const debouncedSetSearch = _.debounce((value: string) => { + const debouncedSetSearch = debounce((value: string) => { setDebouncedSearchTerm(value); }, 350); diff --git a/apps/dokploy/components/dashboard/docker/logs/line-count-filter.tsx b/apps/dokploy/components/dashboard/docker/logs/line-count-filter.tsx index 906c65a0c..0c86ad2ca 100644 --- a/apps/dokploy/components/dashboard/docker/logs/line-count-filter.tsx +++ b/apps/dokploy/components/dashboard/docker/logs/line-count-filter.tsx @@ -1,5 +1,5 @@ import { Command as CommandPrimitive } from "cmdk"; -import { debounce } from "lodash"; +import debounce from "lodash/debounce"; import { CheckIcon, Hash } from "lucide-react"; import React, { useCallback, useRef } from "react"; import { Badge } from "@/components/ui/badge"; diff --git a/apps/dokploy/components/dashboard/docker/logs/terminal-line.tsx b/apps/dokploy/components/dashboard/docker/logs/terminal-line.tsx index a75f50386..9d4f47c4a 100644 --- a/apps/dokploy/components/dashboard/docker/logs/terminal-line.tsx +++ b/apps/dokploy/components/dashboard/docker/logs/terminal-line.tsx @@ -1,5 +1,5 @@ import { FancyAnsi } from "fancy-ansi"; -import _ from "lodash"; +import escapeRegExp from "lodash/escapeRegExp"; import { Badge } from "@/components/ui/badge"; import { Tooltip, @@ -47,7 +47,7 @@ export function TerminalLine({ log, noTimestamp, searchTerm }: LogLineProps) { } const htmlContent = fancyAnsi.toHtml(text); - const searchRegex = new RegExp(`(${_.escapeRegExp(term)})`, "gi"); + const searchRegex = new RegExp(`(${escapeRegExp(term)})`, "gi"); const modifiedContent = htmlContent.replace( searchRegex,