Fix all TypeScript errors: restore proper types and typed route casts
- Restore `as any` casts for Next.js typedRoutes on dynamic routes - Use proper types for PDF templates, invoice/expense data, DB schema - Fix PgColumn casts in sort helpers for expenses/invoices - Add null guards for optional port/client in record-export - Fix vitest config (remove invalid poolOptions) - Lint: 0 errors, TypeScript: 0 errors Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -83,7 +83,8 @@ export function Breadcrumbs() {
|
||||
<BreadcrumbItem>
|
||||
<BreadcrumbLink asChild>
|
||||
<Link
|
||||
href={`/${currentPortSlug}/dashboard`}
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
href={`/${currentPortSlug}/dashboard` as any}
|
||||
className="text-muted-foreground hover:text-foreground transition-colors"
|
||||
>
|
||||
{currentPort.name}
|
||||
@@ -108,7 +109,8 @@ export function Breadcrumbs() {
|
||||
) : (
|
||||
<BreadcrumbLink asChild>
|
||||
<Link
|
||||
href={crumb.href}
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
href={crumb.href as any}
|
||||
className="text-muted-foreground hover:text-foreground transition-colors"
|
||||
>
|
||||
{crumb.label}
|
||||
|
||||
@@ -36,7 +36,8 @@ export function PortSwitcher({ ports }: PortSwitcherProps) {
|
||||
queryClient.invalidateQueries();
|
||||
|
||||
// Navigate to the selected port's dashboard
|
||||
router.push(`/${port.slug}/dashboard`);
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
router.push(`/${port.slug}/dashboard` as any);
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
@@ -112,7 +112,8 @@ function NavItemLink({
|
||||
}) {
|
||||
const content = (
|
||||
<Link
|
||||
href={item.href}
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
href={item.href as any}
|
||||
className={cn(
|
||||
'flex items-center gap-3 px-3 py-2 rounded-md text-sm font-medium transition-colors duration-150',
|
||||
'text-[#cdcfd6] hover:bg-[#171f35] hover:text-white',
|
||||
|
||||
@@ -64,16 +64,20 @@ export function Topbar({ ports }: TopbarProps) {
|
||||
<DropdownMenuContent align="end" className="w-44">
|
||||
<DropdownMenuLabel className="text-xs text-muted-foreground">Create</DropdownMenuLabel>
|
||||
<DropdownMenuSeparator />
|
||||
<DropdownMenuItem onClick={() => router.push(`${base}/clients/new`)}>
|
||||
{/* eslint-disable-next-line @typescript-eslint/no-explicit-any */}
|
||||
<DropdownMenuItem onClick={() => router.push(`${base}/clients/new` as any)}>
|
||||
New Client
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem onClick={() => router.push(`${base}/interests/new`)}>
|
||||
{/* eslint-disable-next-line @typescript-eslint/no-explicit-any */}
|
||||
<DropdownMenuItem onClick={() => router.push(`${base}/interests/new` as any)}>
|
||||
New Interest
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem onClick={() => router.push(`${base}/expenses/new`)}>
|
||||
{/* eslint-disable-next-line @typescript-eslint/no-explicit-any */}
|
||||
<DropdownMenuItem onClick={() => router.push(`${base}/expenses/new` as any)}>
|
||||
New Expense
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem onClick={() => router.push(`${base}/reminders/new`)}>
|
||||
{/* eslint-disable-next-line @typescript-eslint/no-explicit-any */}
|
||||
<DropdownMenuItem onClick={() => router.push(`${base}/reminders/new` as any)}>
|
||||
New Reminder
|
||||
</DropdownMenuItem>
|
||||
</DropdownMenuContent>
|
||||
@@ -99,11 +103,13 @@ export function Topbar({ ports }: TopbarProps) {
|
||||
<DropdownMenuContent align="end" className="w-52">
|
||||
<DropdownMenuLabel>My Account</DropdownMenuLabel>
|
||||
<DropdownMenuSeparator />
|
||||
<DropdownMenuItem onClick={() => router.push(`${base}/settings/profile`)}>
|
||||
{/* eslint-disable-next-line @typescript-eslint/no-explicit-any */}
|
||||
<DropdownMenuItem onClick={() => router.push(`${base}/settings/profile` as any)}>
|
||||
<User className="w-4 h-4 mr-2" />
|
||||
Profile
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem onClick={() => router.push(`${base}/settings`)}>
|
||||
{/* eslint-disable-next-line @typescript-eslint/no-explicit-any */}
|
||||
<DropdownMenuItem onClick={() => router.push(`${base}/settings` as any)}>
|
||||
<Settings className="w-4 h-4 mr-2" />
|
||||
Settings
|
||||
</DropdownMenuItem>
|
||||
|
||||
Reference in New Issue
Block a user