fix(web): isolate lucide icons for server pages
This commit is contained in:
+1
-1
@@ -1,5 +1,5 @@
|
||||
import Link from "next/link";
|
||||
import { ArrowLeft, Bot, GitBranch } from "lucide-react";
|
||||
import { ArrowLeft, Bot, GitBranch } from "@/components/lucide-icons";
|
||||
|
||||
type ProviderConfig = {
|
||||
id: string;
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
import Link from "next/link";
|
||||
import { ArrowLeft, FileText, GitBranch } from "lucide-react";
|
||||
import { ArrowLeft, FileText, GitBranch } from "@/components/lucide-icons";
|
||||
|
||||
type PromptTemplate = {
|
||||
id: string;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import Link from "next/link";
|
||||
import type { LucideIcon } from "lucide-react";
|
||||
import { FileClock, Fingerprint, ListFilter, ShieldCheck } from "lucide-react";
|
||||
import type { LucideIcon } from "@/components/lucide-icons";
|
||||
import { FileClock, Fingerprint, ListFilter, ShieldCheck } from "@/components/lucide-icons";
|
||||
import { getGlobalAuditEvents, type GlobalAuditEventItem } from "@/services/contracts";
|
||||
|
||||
type PageProps = {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import Link from "next/link";
|
||||
import { AlertTriangle, ArrowLeft, CheckCircle2, Search, ShieldCheck } from "lucide-react";
|
||||
import { AlertTriangle, ArrowLeft, CheckCircle2, Search, ShieldCheck } from "@/components/lucide-icons";
|
||||
import {
|
||||
getAccountConflict,
|
||||
getAccountConflicts,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import Link from "next/link";
|
||||
import type { LucideIcon } from "lucide-react";
|
||||
import { BookMarked, Filter, Gavel, History, Layers3, Link2, Pencil, RotateCcw, Scale, Search, ShieldAlert, ShieldCheck, UploadCloud } from "lucide-react";
|
||||
import type { LucideIcon } from "@/components/lucide-icons";
|
||||
import { BookMarked, Filter, Gavel, History, Layers3, Link2, Pencil, RotateCcw, Scale, Search, ShieldAlert, ShieldCheck, UploadCloud } from "@/components/lucide-icons";
|
||||
import {
|
||||
getReviewRuleDiff,
|
||||
getReviewRuleEditDraft,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import Link from "next/link";
|
||||
import type { LucideIcon } from "lucide-react";
|
||||
import { BookOpenText, Database, FileText, Landmark, Scale, Search, ShieldCheck } from "lucide-react";
|
||||
import type { LucideIcon } from "@/components/lucide-icons";
|
||||
import { BookOpenText, Database, FileText, Landmark, Scale, Search, ShieldCheck } from "@/components/lucide-icons";
|
||||
import {
|
||||
getLegalArticle,
|
||||
getLegalArticles,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import Link from "next/link";
|
||||
import type { LucideIcon } from "lucide-react";
|
||||
import { Activity, AlertTriangle, Bot, BookMarked, BookOpen, BookOpenText, ClipboardList, FileText, Gauge, Scale, ServerCog, Settings, ShieldCheck, SlidersHorizontal, CheckSquare, UsersRound } from "lucide-react";
|
||||
import type { LucideIcon } from "@/components/lucide-icons";
|
||||
import { Activity, AlertTriangle, Bot, BookMarked, BookOpen, BookOpenText, ClipboardList, FileText, Gauge, Scale, ServerCog, Settings, ShieldCheck, SlidersHorizontal, CheckSquare, UsersRound } from "@/components/lucide-icons";
|
||||
import { canAccessAdminCapability, getRoleLabel, hasPlatformCapability, normalizeUserRole, type AdminCapability, type PlatformCapability } from "@/lib/access-control";
|
||||
import { getContractWebSession } from "@/lib/contract-session";
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Activity, BellRing, Building2, CheckCircle2, Clock3, FileWarning, Route, ShieldAlert, UsersRound } from "lucide-react";
|
||||
import { Activity, BellRing, Building2, CheckCircle2, Clock3, FileWarning, Route, ShieldAlert, UsersRound } from "@/components/lucide-icons";
|
||||
import Link from "next/link";
|
||||
import { getPilotOnCallSchedule, getPilotOperationPolicy, getPilotOperationScanRuns, getPilotOperationsDashboard, getPilotOperationsInsights, getReliableEvidenceAuditClientChanges, getReliableEvidenceAuditClients, getReliableEvidenceKeyChangeRequests, getReliableEvidenceProbeRuns, getReliableEvidenceSigningKeys, getReliableEvidenceTransparencyAnchors, getReliableEvidenceTransparencyCheckpoint, getReliableEvidenceTransparencyEvents } from "@/services/pilot-operations";
|
||||
import {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import Link from "next/link";
|
||||
import { Activity, ArrowRight, Clock3, FlaskConical, Gauge, Target, UsersRound } from "lucide-react";
|
||||
import { Activity, ArrowRight, Clock3, FlaskConical, Gauge, Target, UsersRound } from "@/components/lucide-icons";
|
||||
import { getAcquisitionFunnelSummary, getDraftFunnelSummary, getDraftingStageTimingSummary } from "@/services/product-analytics";
|
||||
import { DraftingStageTimingPanel } from "./drafting-stage-timing-panel";
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import Link from "next/link";
|
||||
import { ReviewEvidenceSummary, ReviewFindingBasis } from "@/components/review-evidence-summary";
|
||||
import { RiskCard, type RiskCardTagTone } from "@yuqei/design-system";
|
||||
import type { LucideIcon } from "lucide-react";
|
||||
import { FileSearch, ShieldAlert, Quote, ListChecks } from "lucide-react";
|
||||
import type { LucideIcon } from "@/components/lucide-icons";
|
||||
import { FileSearch, ShieldAlert, Quote, ListChecks } from "@/components/lucide-icons";
|
||||
import {
|
||||
getContractDetail,
|
||||
getContracts,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import Link from "next/link";
|
||||
import { AlertTriangle, DatabaseZap, Download, Route, ShieldCheck, UserSearch } from "lucide-react";
|
||||
import { AlertTriangle, DatabaseZap, Download, Route, ShieldCheck, UserSearch } from "@/components/lucide-icons";
|
||||
import {
|
||||
getDataEgressLedger,
|
||||
getSecurityAccessEvents,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import Link from "next/link";
|
||||
import { ReviewEvidenceSummary, ReviewFindingBasis } from "@/components/review-evidence-summary";
|
||||
import { UploadCloud } from "lucide-react";
|
||||
import { UploadCloud } from "@/components/lucide-icons";
|
||||
import {
|
||||
getArchiveEvidence,
|
||||
getContractDetail,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import Link from "next/link";
|
||||
import { ChevronLeft, ChevronRight, FileSignature, Search } from "lucide-react";
|
||||
import { ChevronLeft, ChevronRight, FileSignature, Search } from "@/components/lucide-icons";
|
||||
import { getContractPage } from "@/services/contracts";
|
||||
import { PageSizeSelect } from "./page-size-select";
|
||||
import { RecordDownloadButton } from "./record-download-button";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import Link from "next/link";
|
||||
import { FileText, Clock, CheckCircle, XCircle, AlertTriangle, TrendingUp } from "lucide-react";
|
||||
import { FileText, Clock, CheckCircle, XCircle, AlertTriangle, TrendingUp } from "@/components/lucide-icons";
|
||||
import { getContractsDashboard, type ContractDashboard } from "@/services/contracts";
|
||||
|
||||
const text = {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import Link from "next/link";
|
||||
import { Filter } from "lucide-react";
|
||||
import { Filter } from "@/components/lucide-icons";
|
||||
import { getContractFiles, getContracts } from "@/services/contracts";
|
||||
import { FileRepositoryTable } from "./file-repository-table";
|
||||
import { UploadContractFileForm } from "./upload-contract-file-form";
|
||||
|
||||
@@ -6,8 +6,8 @@ import {
|
||||
ScrollText,
|
||||
Search,
|
||||
WandSparkles
|
||||
} from "lucide-react";
|
||||
import type { LucideIcon } from "lucide-react";
|
||||
} from "@/components/lucide-icons";
|
||||
import type { LucideIcon } from "@/components/lucide-icons";
|
||||
import {
|
||||
getContractTemplateTree,
|
||||
type ContractTemplateItem,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import Link from "next/link";
|
||||
import { Bell, Check, CheckCircle, XCircle, AlertTriangle, Clock, FileText } from "lucide-react";
|
||||
import { Bell, Check, CheckCircle, XCircle, AlertTriangle, Clock, FileText } from "@/components/lucide-icons";
|
||||
import { getNotifications, type Notification, type NotificationType } from "@/services/contracts";
|
||||
|
||||
const text = {
|
||||
|
||||
@@ -10,7 +10,7 @@ import {
|
||||
ShieldCheck,
|
||||
Sparkles,
|
||||
UsersRound,
|
||||
} from "lucide-react";
|
||||
} from "@/components/lucide-icons";
|
||||
import { getContractWebSession } from "@/lib/contract-session";
|
||||
import { industrySolutions } from "@/lib/industry-solutions";
|
||||
import { TrackedCta } from "@/components/tracked-cta";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import Link from "next/link";
|
||||
import type { ReactNode } from "react";
|
||||
import { Search } from "lucide-react";
|
||||
import { Search } from "@/components/lucide-icons";
|
||||
import { getUnifiedSearchResults, type UnifiedSearchResult, type SearchResultType } from "@/services/contracts";
|
||||
|
||||
type PageProps = {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import Link from "next/link";
|
||||
import { notFound } from "next/navigation";
|
||||
import { ArrowLeft, ArrowRight, Check, FileSignature, Headphones, ShieldCheck } from "lucide-react";
|
||||
import { ArrowLeft, ArrowRight, Check, FileSignature, Headphones, ShieldCheck } from "@/components/lucide-icons";
|
||||
import { getContractWebSession } from "@/lib/contract-session";
|
||||
import { getIndustrySolution, industrySolutions } from "@/lib/industry-solutions";
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import Link from "next/link";
|
||||
import { FileText, History, Layers3, Pencil, RotateCcw, Scale, Search, ShieldCheck, UploadCloud, WandSparkles } from "lucide-react";
|
||||
import type { LucideIcon } from "lucide-react";
|
||||
import { FileText, History, Layers3, Pencil, RotateCcw, Scale, Search, ShieldCheck, UploadCloud, WandSparkles } from "@/components/lucide-icons";
|
||||
import type { LucideIcon } from "@/components/lucide-icons";
|
||||
import {
|
||||
getContractTemplateHistory,
|
||||
getContractTemplateDiff,
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
"use client";
|
||||
|
||||
// lucide-react 1.x uses React context internally. Re-export the icons that are
|
||||
// rendered by server pages through a client boundary so RSC never evaluates
|
||||
// that context on the server.
|
||||
export {
|
||||
Activity,
|
||||
AlertTriangle,
|
||||
ArrowLeft,
|
||||
ArrowRight,
|
||||
Bell,
|
||||
BellRing,
|
||||
BookMarked,
|
||||
BookOpen,
|
||||
BookOpenText,
|
||||
Bot,
|
||||
Building2,
|
||||
Check,
|
||||
CheckCircle,
|
||||
CheckCircle2,
|
||||
CheckSquare,
|
||||
ChevronLeft,
|
||||
ChevronRight,
|
||||
ClipboardList,
|
||||
Clock,
|
||||
Clock3,
|
||||
Database,
|
||||
DatabaseZap,
|
||||
Download,
|
||||
FileCheck2,
|
||||
FileClock,
|
||||
FilePlus2,
|
||||
FileSearch,
|
||||
FileSignature,
|
||||
FileText,
|
||||
FileWarning,
|
||||
Filter,
|
||||
Fingerprint,
|
||||
FlaskConical,
|
||||
Gauge,
|
||||
Gavel,
|
||||
GitBranch,
|
||||
Headphones,
|
||||
History,
|
||||
Landmark,
|
||||
Layers3,
|
||||
LibraryBig,
|
||||
Link2,
|
||||
ListChecks,
|
||||
ListFilter,
|
||||
LockKeyhole,
|
||||
Pencil,
|
||||
Quote,
|
||||
RotateCcw,
|
||||
Route,
|
||||
Scale,
|
||||
ScrollText,
|
||||
Search,
|
||||
ServerCog,
|
||||
Settings,
|
||||
ShieldAlert,
|
||||
ShieldCheck,
|
||||
SlidersHorizontal,
|
||||
Sparkles,
|
||||
Target,
|
||||
TrendingUp,
|
||||
UploadCloud,
|
||||
UserSearch,
|
||||
UsersRound,
|
||||
WandSparkles,
|
||||
XCircle,
|
||||
} from "lucide-react";
|
||||
|
||||
export type { LucideIcon } from "lucide-react";
|
||||
@@ -1,5 +1,5 @@
|
||||
import Link from "next/link";
|
||||
import { FilePlus2, FileSearch, Gavel, Search, ShieldCheck, UploadCloud } from "lucide-react";
|
||||
import { FilePlus2, FileSearch, Gavel, Search, ShieldCheck, UploadCloud } from "@/components/lucide-icons";
|
||||
import { MemberHero } from "@yuqei/design-system";
|
||||
import { getWorkspaceTasks, type WorkspaceTask } from "@/services/contracts";
|
||||
import { OnboardingGuide } from "@/components/onboarding-guide";
|
||||
|
||||
Reference in New Issue
Block a user