chore: 修改图标 import 写法以减少编译器分析

This commit is contained in:
amtoaer
2026-07-13 14:09:50 +08:00
parent 50dae85f35
commit 9b649e2e37
19 changed files with 88 additions and 92 deletions

View File

@@ -1,16 +1,14 @@
<script lang="ts">
import {
DatabaseIcon,
FilePlayIcon,
BotIcon,
ChartPieIcon,
HeartIcon,
FoldersIcon,
UserIcon,
Settings2Icon,
SquareTerminalIcon,
PaletteIcon
} from '@lucide/svelte/icons';
import BotIcon from '@lucide/svelte/icons/bot';
import ChartPieIcon from '@lucide/svelte/icons/chart-pie';
import DatabaseIcon from '@lucide/svelte/icons/database';
import FilePlayIcon from '@lucide/svelte/icons/file-play';
import FoldersIcon from '@lucide/svelte/icons/folders';
import HeartIcon from '@lucide/svelte/icons/heart';
import PaletteIcon from '@lucide/svelte/icons/palette';
import Settings2Icon from '@lucide/svelte/icons/settings-2';
import SquareTerminalIcon from '@lucide/svelte/icons/square-terminal';
import UserIcon from '@lucide/svelte/icons/user';
import * as Sidebar from '$lib/components/ui/sidebar/index.js';
import { mode, toggleMode } from 'mode-watcher';
import type { ComponentProps } from 'svelte';

View File

@@ -42,7 +42,8 @@
labelKey?: string;
hideIndicator?: boolean;
labelClassName?: string;
labelFormatter?: // eslint-disable-next-line @typescript-eslint/no-explicit-any
labelFormatter?:
// eslint-disable-next-line @typescript-eslint/no-explicit-any
((value: any, payload: TooltipPayload[]) => string | number | Snippet) | null;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
valueFormatter?: ((value: any) => string | number | Snippet) | null;

View File

@@ -5,7 +5,8 @@
import { toast } from 'svelte-sonner';
import api from '$lib/api';
import type { Credential, ApiError } from '$lib/types';
import { RefreshCw, LoaderCircle } from '@lucide/svelte/icons';
import LoaderCircle from '@lucide/svelte/icons/loader-circle';
import RefreshCw from '@lucide/svelte/icons/refresh-cw';
import QRCode from 'qrcode';
/**

View File

@@ -1,5 +1,6 @@
<script lang="ts">
import { EllipsisIcon, TrashIcon } from '@lucide/svelte/icons';
import EllipsisIcon from '@lucide/svelte/icons/ellipsis';
import TrashIcon from '@lucide/svelte/icons/trash';
import { tick } from 'svelte';
import * as DropdownMenu from '$lib/components/ui/dropdown-menu/index.js';
import * as Command from '$lib/components/ui/command/index.js';

View File

@@ -1,11 +1,9 @@
<script lang="ts">
import { Button } from '$lib/components/ui/button/index.js';
import {
ChevronLeftIcon,
ChevronRightIcon,
ChevronsLeftIcon,
ChevronsRightIcon
} from '@lucide/svelte/icons';
import ChevronLeftIcon from '@lucide/svelte/icons/chevron-left';
import ChevronRightIcon from '@lucide/svelte/icons/chevron-right';
import ChevronsLeftIcon from '@lucide/svelte/icons/chevrons-left';
import ChevronsRightIcon from '@lucide/svelte/icons/chevrons-right';
export let currentPage: number = 0;
export let totalPages: number = 0;

View File

@@ -6,7 +6,9 @@
import * as Card from '$lib/components/ui/card/index.js';
import { Badge } from '$lib/components/ui/badge/index.js';
import * as Select from '$lib/components/ui/select/index.js';
import { PlusIcon, MinusIcon, XIcon } from '@lucide/svelte/icons';
import MinusIcon from '@lucide/svelte/icons/minus';
import PlusIcon from '@lucide/svelte/icons/plus';
import XIcon from '@lucide/svelte/icons/x';
import type { Rule, RuleTarget, Condition } from '$lib/types';
import { onMount } from 'svelte';

View File

@@ -1,5 +1,5 @@
<script lang="ts">
import { SearchIcon } from '@lucide/svelte/icons';
import SearchIcon from '@lucide/svelte/icons/search';
import * as Input from '$lib/components/ui/input/index.js';
export let placeholder: string = '搜索视频..';

View File

@@ -1,11 +1,9 @@
<script lang="ts">
import {
CircleCheckBigIcon,
CircleXIcon,
ClockIcon,
ChevronDownIcon,
TrashIcon
} from '@lucide/svelte/icons';
import ChevronDownIcon from '@lucide/svelte/icons/chevron-down';
import CircleCheckBigIcon from '@lucide/svelte/icons/circle-check-big';
import CircleXIcon from '@lucide/svelte/icons/circle-x';
import ClockIcon from '@lucide/svelte/icons/clock';
import TrashIcon from '@lucide/svelte/icons/trash';
import * as DropdownMenu from '$lib/components/ui/dropdown-menu/index.js';
import { Button } from '$lib/components/ui/button/index.js';
import { type StatusFilterValue } from '$lib/stores/filter';

View File

@@ -3,15 +3,13 @@
import { Card, CardContent, CardHeader, CardTitle } from '$lib/components/ui/card/index.js';
import { Badge } from '$lib/components/ui/badge/index.js';
import SubscriptionDialog from './subscription-dialog.svelte';
import {
UserIcon,
VideoIcon,
FolderIcon,
HeartIcon,
CheckIcon,
PlusIcon,
XIcon
} from '@lucide/svelte/icons';
import CheckIcon from '@lucide/svelte/icons/check';
import FolderIcon from '@lucide/svelte/icons/folder';
import HeartIcon from '@lucide/svelte/icons/heart';
import PlusIcon from '@lucide/svelte/icons/plus';
import UserIcon from '@lucide/svelte/icons/user';
import VideoIcon from '@lucide/svelte/icons/video';
import XIcon from '@lucide/svelte/icons/x';
import type { Followed } from '$lib/types';
export let item: Followed;

View File

@@ -32,7 +32,8 @@
labelKey?: string;
hideIndicator?: boolean;
labelClassName?: string;
labelFormatter?: // eslint-disable-next-line @typescript-eslint/no-explicit-any
labelFormatter?:
// eslint-disable-next-line @typescript-eslint/no-explicit-any
((value: any, payload: TooltipPayload[]) => string | number | Snippet) | null;
formatter?: Snippet<
[

View File

@@ -1,11 +1,9 @@
<script lang="ts">
import {
CircleCheckBigIcon,
TriangleAlertIcon,
SkipForwardIcon,
ChevronDownIcon,
TrashIcon
} from '@lucide/svelte/icons';
import ChevronDownIcon from '@lucide/svelte/icons/chevron-down';
import CircleCheckBigIcon from '@lucide/svelte/icons/circle-check-big';
import SkipForwardIcon from '@lucide/svelte/icons/skip-forward';
import TrashIcon from '@lucide/svelte/icons/trash';
import TriangleAlertIcon from '@lucide/svelte/icons/triangle-alert';
import * as DropdownMenu from '$lib/components/ui/dropdown-menu/index.js';
import { Button } from '$lib/components/ui/button/index.js';
import { type ValidationFilterValue } from '$lib/stores/filter';

View File

@@ -7,17 +7,15 @@
import { Checkbox } from '$lib/components/ui/checkbox/index.js';
import { Label } from '$lib/components/ui/label/index.js';
import type { VideoInfo } from '$lib/types';
import {
RotateCcwIcon,
InfoIcon,
BrushCleaningIcon,
UserIcon,
SquareArrowOutUpRightIcon,
EllipsisIcon,
HeartIcon,
FolderIcon,
ClockIcon
} from '@lucide/svelte/icons';
import BrushCleaningIcon from '@lucide/svelte/icons/brush-cleaning';
import ClockIcon from '@lucide/svelte/icons/clock';
import EllipsisIcon from '@lucide/svelte/icons/ellipsis';
import FolderIcon from '@lucide/svelte/icons/folder';
import HeartIcon from '@lucide/svelte/icons/heart';
import InfoIcon from '@lucide/svelte/icons/info';
import RotateCcwIcon from '@lucide/svelte/icons/rotate-ccw';
import SquareArrowOutUpRightIcon from '@lucide/svelte/icons/square-arrow-out-up-right';
import UserIcon from '@lucide/svelte/icons/user';
import { goto } from '$app/navigation';
import * as Tooltip from '$lib/components/ui/tooltip/index.js';

View File

@@ -1,4 +1,7 @@
import { ClockIcon, FolderIcon, HeartIcon, UserIcon } from '@lucide/svelte/icons';
import ClockIcon from '@lucide/svelte/icons/clock';
import FolderIcon from '@lucide/svelte/icons/folder';
import HeartIcon from '@lucide/svelte/icons/heart';
import UserIcon from '@lucide/svelte/icons/user';
export const VIDEO_SOURCES = {
FAVORITE: { type: 'favorite', title: '收藏夹', icon: HeartIcon },

View File

@@ -13,21 +13,19 @@
import CloudDownloadIcon from '@lucide/svelte/icons/cloud-download';
import api from '$lib/api';
import type { DashBoardResponse, SysInfo, ApiError, TaskStatus } from '$lib/types';
import {
DatabaseIcon,
HeartIcon,
FolderIcon,
UserIcon,
ClockIcon,
VideoIcon,
HardDriveIcon,
CpuIcon,
MemoryStickIcon,
PlayIcon,
CircleCheckBigIcon,
CalendarIcon,
DownloadIcon
} from '@lucide/svelte/icons';
import CalendarIcon from '@lucide/svelte/icons/calendar';
import CircleCheckBigIcon from '@lucide/svelte/icons/circle-check-big';
import ClockIcon from '@lucide/svelte/icons/clock';
import CpuIcon from '@lucide/svelte/icons/cpu';
import DatabaseIcon from '@lucide/svelte/icons/database';
import DownloadIcon from '@lucide/svelte/icons/download';
import FolderIcon from '@lucide/svelte/icons/folder';
import HardDriveIcon from '@lucide/svelte/icons/hard-drive';
import HeartIcon from '@lucide/svelte/icons/heart';
import MemoryStickIcon from '@lucide/svelte/icons/memory-stick';
import PlayIcon from '@lucide/svelte/icons/play';
import UserIcon from '@lucide/svelte/icons/user';
import VideoIcon from '@lucide/svelte/icons/video';
let dashboardData = $state<DashBoardResponse | null>(null);
let sysInfo = $state<SysInfo | null>(null);

View File

@@ -13,7 +13,8 @@
import QrLogin from '$lib/components/custom/qr-login.svelte';
import FilterOptionEditor from '$lib/components/filter-option-editor.svelte';
import NotifierDialog from './NotifierDialog.svelte';
import { InfoIcon, QrCodeIcon } from '@lucide/svelte/icons';
import InfoIcon from '@lucide/svelte/icons/info';
import QrCodeIcon from '@lucide/svelte/icons/qr-code';
import api from '$lib/api';
import { toast } from 'svelte-sonner';
import { setBreadcrumb } from '$lib/stores/breadcrumb';

View File

@@ -141,8 +141,7 @@
id="webhook-template"
class="border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:ring-ring flex min-h-[120px] w-full rounded-md border px-3 py-2 text-sm focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50"
placeholder={'{"text": "{{{message}}}"}'}
bind:value={webhookTemplate}
></textarea>
bind:value={webhookTemplate}></textarea>
<p class="text-muted-foreground text-xs">
用于渲染 Webhook 的 Handlebars 模板。如果不填写,将使用默认模板。<br />
可用变量:<code class="text-xs">message</code>(通知内容)、<code class="text-xs"

View File

@@ -9,19 +9,17 @@
import * as Table from '$lib/components/ui/table/index.js';
import * as Tabs from '$lib/components/ui/tabs/index.js';
import * as Dialog from '$lib/components/ui/dialog/index.js';
import {
SquarePenIcon,
FolderIcon,
HeartIcon,
UserIcon,
ClockIcon,
PlusIcon,
InfoIcon,
Trash2Icon,
CircleCheckBigIcon,
CircleXIcon,
RefreshCwIcon
} from '@lucide/svelte/icons';
import CircleCheckBigIcon from '@lucide/svelte/icons/circle-check-big';
import CircleXIcon from '@lucide/svelte/icons/circle-x';
import ClockIcon from '@lucide/svelte/icons/clock';
import FolderIcon from '@lucide/svelte/icons/folder';
import HeartIcon from '@lucide/svelte/icons/heart';
import InfoIcon from '@lucide/svelte/icons/info';
import PlusIcon from '@lucide/svelte/icons/plus';
import RefreshCwIcon from '@lucide/svelte/icons/refresh-cw';
import SquarePenIcon from '@lucide/svelte/icons/square-pen';
import Trash2Icon from '@lucide/svelte/icons/trash-2';
import UserIcon from '@lucide/svelte/icons/user';
import * as Tooltip from '$lib/components/ui/tooltip/index.js';
import { toast } from 'svelte-sonner';
import { setBreadcrumb } from '$lib/stores/breadcrumb';

View File

@@ -6,7 +6,9 @@
import api from '$lib/api';
import SquareArrowOutUpRightIcon from '@lucide/svelte/icons/square-arrow-out-up-right';
import type { ApiError, VideoResponse, UpdateVideoStatusRequest } from '$lib/types';
import { RotateCcwIcon, SquarePenIcon, BrushCleaningIcon } from '@lucide/svelte/icons';
import BrushCleaningIcon from '@lucide/svelte/icons/brush-cleaning';
import RotateCcwIcon from '@lucide/svelte/icons/rotate-ccw';
import SquarePenIcon from '@lucide/svelte/icons/square-pen';
import { setBreadcrumb } from '$lib/stores/breadcrumb';
import { appStateStore, ToQuery } from '$lib/stores/filter';
import VideoCard from '$lib/components/video-card.svelte';

View File

@@ -3,7 +3,8 @@
import Pagination from '$lib/components/pagination.svelte';
import { Button } from '$lib/components/ui/button/index.js';
import * as AlertDialog from '$lib/components/ui/alert-dialog/index.js';
import { SquarePenIcon, RotateCcwIcon } from '@lucide/svelte/icons';
import RotateCcwIcon from '@lucide/svelte/icons/rotate-ccw';
import SquarePenIcon from '@lucide/svelte/icons/square-pen';
import api from '$lib/api';
import { Checkbox } from '$lib/components/ui/checkbox/index.js';
import { Label } from '$lib/components/ui/label/index.js';