Explorar o código

removed unused code (#81)

Bernt Christian Egeland hai 6 meses
pai
achega
028e5e4ab5

+ 0 - 1
src/app/(authenticated)/customers/[id]/customer-detail-client.tsx

@@ -95,7 +95,6 @@ export function CustomerDetailClient({
   smsNextCursor?: string | null;
 }) {
   const t = useTranslations("customers.detail");
-  const ts = useTranslations("customers.serviceRequests");
   const router = useRouter();
   const searchParams = useSearchParams();
   const [showEditForm, setShowEditForm] = useState(false);

+ 1 - 1
src/app/(authenticated)/dashboard-client.tsx

@@ -236,7 +236,7 @@ export function DashboardClient({
   const [dismissingId, setDismissingId] = useState<string | null>(null);
   const [maintenanceTab, setMaintenanceTab] = useState<"active" | "dismissed">("active");
   const [restoringId, setRestoringId] = useState<string | null>(null);
-  const [isPending, startTransition] = useTransition();
+  const [, startTransition] = useTransition();
   const { toggleCard, isVisible, visibleCount, totalCount } = useDashboardVisibility(smsEnabled ? "notifications" : "sms");
 
   const formatRelativeTime = (date: string | Date) => {

+ 1 - 1
src/app/(authenticated)/settings/account/account-settings.tsx

@@ -47,7 +47,7 @@ export function AccountSettings({
     if (session?.user?.email) setEmail(session.user.email)
   }, [session?.user?.name, session?.user?.email])
 
-  const [emailVerified, setEmailVerified] = useState(initialEmailVerified)
+  const emailVerified = initialEmailVerified
   const [sendingVerification, setSendingVerification] = useState(false)
   const [verificationCooldown, startVerificationCooldown] = useCooldown('account-verify-email', 60)
   const [savingProfile, setSavingProfile] = useState(false)

+ 0 - 1
src/app/(authenticated)/settings/license/page.tsx

@@ -34,7 +34,6 @@ export default async function LicensePage() {
     <LicenseSettings
       initialKey={map.get(SETTING_KEYS.LICENSE_KEY) || ""}
       initialValid={map.get(SETTING_KEYS.LICENSE_VALID) === "true"}
-      initialPlan={map.get(SETTING_KEYS.LICENSE_PLAN) || "free"}
       initialCheckedAt={map.get(SETTING_KEYS.LICENSE_CHECKED_AT) || ""}
     />
   );

+ 0 - 11
src/app/(authenticated)/settings/team/team-settings.tsx

@@ -23,7 +23,6 @@ import { useConfirm } from "@/components/confirm-dialog";
 import {
   createOrganization,
   inviteMember,
-  updateMemberRole,
   removeMember,
 } from "@/features/team/Actions/teamActions";
 import { sendInvitation } from "@/features/team/Actions/sendInvitation";
@@ -292,16 +291,6 @@ export function TeamSettings({
     }
   };
 
-  const handleRoleChange = async (memberId: string, role: string) => {
-    const result = await updateMemberRole({ memberId, role });
-    if (result.success) {
-      toast.success(t('team.memberRoleUpdated'));
-      router.refresh();
-    } else {
-      modal.open("error", "Error", result.error || t('team.failedUpdateRole'));
-    }
-  };
-
   const handleRemove = async (member: Member) => {
     const ok = await confirm({
       title: t('team.removeMemberTitle'),

+ 0 - 3
src/app/(authenticated)/vehicles/[id]/service/[serviceId]/page.tsx

@@ -110,7 +110,6 @@ export default async function ServiceDetailPage({
       : Promise.resolve([]),
   ]);
 
-  const teamMembers = members.map((m) => ({ id: m.id, name: m.user.name }));
   const currentUserName = currentUser?.name || "";
   const aiSettingsMap = Object.fromEntries(aiSettings.map((s) => [s.key, s.value]));
   const aiEnabled = features?.ai === true && aiSettingsMap[SETTING_KEYS.AI_ENABLED] === "true" && !!aiSettingsMap[SETTING_KEYS.AI_API_KEY];
@@ -165,8 +164,6 @@ export default async function ServiceDetailPage({
     .filter((a) => a.category === "document" || a.category === "diagnostic")
     .map((a) => ({ ...a, includeInInvoice: a.includeInInvoice ?? true }));
 
-  const vehicleName = `${record.vehicle.year} ${record.vehicle.make} ${record.vehicle.model}`;
-
   return (
     <div className="flex h-svh flex-col overflow-hidden">
       <PageHeader />

+ 0 - 8
src/app/(authenticated)/work-orders/work-orders-client.tsx

@@ -102,14 +102,6 @@ const statusTemplateKeys: Record<string, string> = {
   "completed": SETTING_KEYS.SMS_TEMPLATE_STATUS_COMPLETED,
 };
 
-const statusActionI18nMap: Record<string, string> = {
-  "startWork": "startWork",
-  "waitingParts": "waitingParts",
-  "complete": "complete",
-  "resumeWork": "resumeWork",
-  "reopen": "reopen",
-};
-
 const statusTransitions: Record<string, { actionKey: string; target: string }[]> = {
   pending: [
     { actionKey: "startWork", target: "in-progress" },

+ 0 - 9
src/app/(public)/share/quote/[orgId]/[token]/quote-view.tsx

@@ -77,15 +77,6 @@ function isSectionVisible(config: InvoiceLayoutConfig | undefined, sectionId: st
   return section?.visible ?? true;
 }
 
-function isFieldVisible(config: InvoiceLayoutConfig | undefined, sectionId: string, fieldId: string): boolean {
-  if (!config) return true;
-  const section = config.sections.find(s => s.id === sectionId);
-  if (!section?.visible) return false;
-  if (!section.fields) return true;
-  const field = section.fields.find(f => f.id === fieldId);
-  return field?.visible ?? true;
-}
-
 function getSectionOrder(config: InvoiceLayoutConfig | undefined): string[] {
   if (!config) return ['header', 'customer', 'vehicle', 'service', 'parts_table', 'labor_table', 'totals', 'general', 'notes', 'diagnostic_notes', 'bank_account', 'footer'];
   return [...config.sections].sort((a, b) => a.order - b.order).map(s => s.id);

+ 1 - 1
src/app/api/public/portal/[orgId]/auth/logout/route.ts

@@ -7,7 +7,7 @@ export async function POST(
   _request: Request,
   { params }: { params: Promise<{ orgId: string }> },
 ) {
-  const { orgId } = await params;
+  await params;
   const cookieStore = await cookies();
   const token = cookieStore.get(CUSTOMER_SESSION_COOKIE)?.value;
 

+ 0 - 1
src/features/customers/Components/ImportCustomersDialog.tsx

@@ -303,7 +303,6 @@ export function ImportCustomersDialog({
   };
 
   const dupCount = Object.keys(duplicates).length;
-  const exactCount = Object.values(duplicates).filter((d) => d.isExact).length;
   const newCount = rows.length - dupCount;
   const mergeCount = Object.entries(dupActions).filter(([, a]) => a === "merge").length;
   const skipCount = Object.entries(dupActions).filter(([, a]) => a === "skip").length;

+ 1 - 1
src/features/labor-presets/Actions/laborPresetActions.ts

@@ -122,7 +122,7 @@ export async function updateLaborPreset(input: unknown) {
       updateData.name = updateData.name?.trim() || items?.[0]?.description || "Untitled";
     }
 
-    const result = await db.$transaction(async (tx) => {
+    await db.$transaction(async (tx) => {
       // Delete old items
       await tx.laborPresetItem.deleteMany({ where: { presetId: id } });
 

+ 0 - 5
src/features/quotes/Components/QuotePDF.tsx

@@ -122,11 +122,6 @@ export function QuotePDF({
   const sections = layoutConfig?.sections ?? []
   const sectionMap = new Map<string, InvoiceSection>(sections.map((s) => [s.id, s]))
 
-  const isSectionVisible = (id: string): boolean => {
-    const s = sectionMap.get(id)
-    return s ? s.visible : true // default visible when no config
-  }
-
   const getVisibleFieldsForSection = (sectionId: string): Set<string> | null => {
     const section = sectionMap.get(sectionId)
     if (!section?.fields) return null

+ 0 - 6
src/features/settings/Components/license-settings.tsx

@@ -15,19 +15,16 @@ import { validateLicense } from '../Actions/validateLicense'
 export function LicenseSettings({
   initialKey,
   initialValid,
-  initialPlan,
   initialCheckedAt,
 }: {
   initialKey: string
   initialValid: boolean
-  initialPlan: string
   initialCheckedAt: string
 }) {
   const router = useRouter()
   const t = useTranslations('settings')
   const [licenseKey, setLicenseKey] = useState(initialKey)
   const [licenseValid, setLicenseValid] = useState(initialValid)
-  const [licensePlan, setLicensePlan] = useState(initialPlan)
   const [isValidating, setIsValidating] = useState(false)
 
   const handleValidateLicense = async () => {
@@ -36,9 +33,6 @@ export function LicenseSettings({
       const result = await validateLicense(licenseKey)
       if (result.success && result.data) {
         setLicenseValid(result.data.valid)
-        if (result.data.plan) {
-          setLicensePlan(result.data.plan)
-        }
         if (result.data.valid) {
           toast.success(t('license.validated'))
         } else {

+ 0 - 2
src/features/vehicles/Components/service-page/UnifiedServiceHeader.tsx

@@ -63,8 +63,6 @@ export function UnifiedServiceHeader({
   onShowShare,
 }: UnifiedServiceHeaderProps) {
   const t = useTranslations('service.header')
-  const tc = useTranslations('common.buttons')
-
   const tabs: { label: string; value: ServiceTab }[] = [
     { label: t('tabs.details'), value: 'details' },
     { label: t('tabs.images'), value: 'images' },

+ 1 - 2
src/features/workboard/Components/WorkBoardClient.tsx

@@ -24,7 +24,7 @@ import { JobDetailPopover } from "./JobDetailPopover";
 import { BoardJobCard } from "./BoardJobCard";
 import { ScrollArea } from "@/components/ui/scroll-area";
 import { Users, Wrench, ClipboardCheck } from "lucide-react";
-import { useTranslations, useLocale } from "next-intl";
+import { useTranslations } from "next-intl";
 import { VehiclePickerDialog } from "@/components/vehicle-picker-dialog";
 import { getVehicles } from "@/features/vehicles/Actions/vehicleActions";
 import { getCustomersList } from "@/features/customers/Actions/customerActions";
@@ -84,7 +84,6 @@ export function WorkBoardClient({
 }) {
   const store = useWorkBoardStore();
   const t = useTranslations("workBoard.board");
-  const locale = useLocale();
   const searchParams = useSearchParams();
   const router = useRouter();
   const pathname = usePathname();