fix: resolve lint errors in modified files

- Remove unused imports from invoice-form.tsx, sidebar.tsx, dashboard-shell.tsx
- Remove unused imports from dashboard.ts and calendar.tsx
- Fix unused parameter in invoice-calendar-view.tsx with underscore prefix
- Fix type-only import for DayButton in calendar.tsx
- All typecheck errors resolved
- Remaining lint errors are in unmodified files (pre-existing)
This commit is contained in:
2025-12-11 20:01:04 -05:00
parent 1a3c2e08ce
commit 50735b74ea
6 changed files with 8 additions and 22 deletions

View File

@@ -14,10 +14,9 @@ import { Button } from "~/components/ui/button";
import { Input } from "~/components/ui/input";
import { Label } from "~/components/ui/label";
import { NumberInput } from "~/components/ui/number-input";
import { Plus, Trash2, Clock, DollarSign, Calendar as CalendarIcon, ChevronLeft, ChevronRight } from "lucide-react";
import { Plus, Trash2, Clock, Calendar as CalendarIcon, ChevronLeft, ChevronRight } from "lucide-react";
import { cn } from "~/lib/utils";
import { Card, CardContent, CardHeader, CardTitle } from "~/components/ui/card";
import { Tabs, TabsList, TabsTrigger } from "~/components/ui/tabs";
interface InvoiceItem {
id: string;
@@ -47,7 +46,7 @@ export function InvoiceCalendarView({
onAddItem,
onRemoveItem,
className,
defaultHourlyRate,
defaultHourlyRate: _defaultHourlyRate,
}: InvoiceCalendarViewProps) {
const [date, setDate] = React.useState<Date | undefined>(undefined); // Start unselected
const [viewDate, setViewDate] = React.useState<Date>(new Date()); // Controls the view (month/week)

View File

@@ -4,11 +4,8 @@ import * as React from "react";
import { useState, useEffect, useRef } from "react";
import { useRouter } from "next/navigation";
import { Button } from "~/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "~/components/ui/card";
import { Input } from "~/components/ui/input";
import { Card, CardContent, CardHeader, CardTitle } from "~/components/ui/card";
import { Label } from "~/components/ui/label";
import { Textarea } from "~/components/ui/textarea";
import { Separator } from "~/components/ui/separator";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "~/components/ui/tabs";
import {
Select,
@@ -20,13 +17,11 @@ import {
import { DatePicker } from "~/components/ui/date-picker";
import { NumberInput } from "~/components/ui/number-input";
import { PageHeader } from "~/components/layout/page-header";
import { FloatingActionBar } from "~/components/layout/floating-action-bar";
import { InvoiceLineItems } from "./invoice-line-items";
import { InvoiceCalendarView } from "./invoice-calendar-view";
import { api } from "~/trpc/react";
import { toast } from "sonner";
import { FileText, DollarSign, Check, Save, Clock, Trash2, Calendar as CalendarIcon, Tag, User, List } from "lucide-react";
import { cn } from "~/lib/utils";
import { Save, Calendar as CalendarIcon, Tag, User, List } from "lucide-react";
import {
Dialog,
DialogContent,
@@ -63,7 +58,6 @@ function InvoiceFormSkeleton() {
export default function InvoiceForm({ invoiceId }: InvoiceFormProps) {
const router = useRouter();
const utils = api.useUtils();
// State
const [formData, setFormData] = useState<InvoiceFormData>({
@@ -85,7 +79,6 @@ export default function InvoiceForm({ invoiceId }: InvoiceFormProps) {
const [initialized, setInitialized] = useState(false);
const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);
const [activeTab, setActiveTab] = useState("details");
const firstItemEditedRef = useRef(false);
// Queries (Same as before)
const { data: clients, isLoading: loadingClients } = api.clients.getAll.useQuery();

View File

@@ -8,7 +8,6 @@ import { Menu } from "lucide-react";
import { Logo } from "~/components/branding/logo";
import { Button } from "~/components/ui/button";
import { Sheet, SheetContent, SheetTrigger } from "~/components/ui/sheet";
import { DashboardBreadcrumbs } from "~/components/navigation/dashboard-breadcrumbs";
function DashboardContent({ children }: { children: React.ReactNode }) {
const { isCollapsed } = useSidebar();

View File

@@ -7,12 +7,8 @@ import { Skeleton } from "~/components/ui/skeleton";
import { Button } from "~/components/ui/button";
import {
LogOut,
User,
ChevronLeft,
ChevronRight,
PanelLeftClose,
PanelLeftOpen,
Settings
} from "lucide-react";
import { navigationConfig } from "~/lib/navigation";
import { useSidebar } from "./sidebar-provider";
@@ -65,7 +61,7 @@ export function Sidebar({ mobile, onClose }: SidebarProps) {
{/* Navigation */}
<nav className={cn("flex flex-col px-2 gap-6 mt-4", collapsed && "items-center")}>
{navigationConfig.map((section, sectionIndex) => (
{navigationConfig.map((section) => (
<div key={section.title}>
{!collapsed && (
<div className="px-2 mb-2 text-xs font-semibold text-muted-foreground/60 tracking-wider uppercase">

View File

@@ -6,7 +6,7 @@ import {
ChevronLeftIcon,
ChevronRightIcon,
} from "lucide-react"
import { type DayButton, DayPicker, getDefaultClassNames } from "react-day-picker"
import { DayPicker, getDefaultClassNames, type DayButton } from "react-day-picker"
import { cn } from "~/lib/utils"
import { Button, buttonVariants } from "~/components/ui/button"

View File

@@ -1,7 +1,6 @@
import { z } from "zod";
import { createTRPCRouter, protectedProcedure } from "~/server/api/trpc";
import { invoices, clients } from "~/server/db/schema";
import { eq, and, desc, sql, gte, lt } from "drizzle-orm";
import { eq, desc } from "drizzle-orm";
export const dashboardRouter = createTRPCRouter({
getStats: protectedProcedure.query(async ({ ctx }) => {