Fix build errors and TypeScript issues

- Install missing UI component dependencies
- Fix unused imports in React components
- Remove version numbers from all import statements
- Fix TypeScript errors in calendar and chart components
- Build now succeeds with production bundle generated
This commit is contained in:
Your Name
2025-10-24 18:52:34 -07:00
parent c097c7fe54
commit e69c6ae5be
37 changed files with 1237 additions and 55 deletions

View File

@@ -1,4 +1,4 @@
import React, { useState } from 'react';
import { useState } from 'react';
import { AppProvider } from './contexts/AppContext';
import { KanbanBoard } from './components/KanbanBoard';
import { ProductBacklog } from './components/ProductBacklog';

View File

@@ -1,6 +1,6 @@
import React, { useState } from 'react';
import { useApp } from '../contexts/AppContext';
import { Task, UserStory } from '../types';
import { Task } from '../types';
import { TaskCard } from './TaskCard';
import { CreateTaskDialog } from './CreateTaskDialog';
import { EditTaskDialog } from './EditTaskDialog';

View File

@@ -1,6 +1,6 @@
import React, { useState } from 'react';
import { useApp } from '../contexts/AppContext';
import { Sprint, UserStory } from '../types';
import { Sprint } from '../types';
import { Card } from './ui/card';
import { Badge } from './ui/badge';
import { Button } from './ui/button';
@@ -12,7 +12,7 @@ import { format } from 'date-fns';
import { Calendar, Plus, Edit, XCircle, PlayCircle } from 'lucide-react';
export const SprintManagement: React.FC = () => {
const { sprints, userStories, updateSprint, closeSprint, addSprint, setActiveSprint, updateUserStory } = useApp();
const { sprints, userStories, updateSprint, closeSprint, addSprint, setActiveSprint } = useApp();
const [editDialogOpen, setEditDialogOpen] = useState(false);
const [createDialogOpen, setCreateDialogOpen] = useState(false);
const [selectedSprint, setSelectedSprint] = useState<Sprint | null>(null);

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as AccordionPrimitive from "@radix-ui/react-accordion@1.2.3";
import * as AccordionPrimitive from "@radix-ui/react-accordion";
import { ChevronDownIcon } from "lucide-react";
import { cn } from "./utils";

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog@1.1.6";
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
import { cn } from "./utils";
import { buttonVariants } from "./button";

View File

@@ -1,6 +1,6 @@
"use client";
import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio@1.1.2";
import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio";
function AspectRatio({
...props

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as AvatarPrimitive from "@radix-ui/react-avatar@1.1.3";
import * as AvatarPrimitive from "@radix-ui/react-avatar";
import { cn } from "./utils";

View File

@@ -1,8 +1,7 @@
"use client";
import * as React from "react";
import { ChevronLeft, ChevronRight } from "lucide-react";
import { DayPicker } from "react-day-picker@8.10.1";
import { DayPicker } from "react-day-picker";
import { cn } from "./utils";
import { buttonVariants } from "./button";
@@ -59,14 +58,6 @@ function Calendar({
day_hidden: "invisible",
...classNames,
}}
components={{
IconLeft: ({ className, ...props }) => (
<ChevronLeft className={cn("size-4", className)} {...props} />
),
IconRight: ({ className, ...props }) => (
<ChevronRight className={cn("size-4", className)} {...props} />
),
}}
{...props}
/>
);

View File

@@ -3,7 +3,7 @@
import * as React from "react";
import useEmblaCarousel, {
type UseEmblaCarouselType,
} from "embla-carousel-react@8.6.0";
} from "embla-carousel-react";
import { ArrowLeft, ArrowRight } from "lucide-react";
import { cn } from "./utils";

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as RechartsPrimitive from "recharts@2.15.2";
import * as RechartsPrimitive from "recharts";
import { cn } from "./utils";
@@ -125,6 +125,8 @@ function ChartTooltipContent({
indicator?: "line" | "dot" | "dashed";
nameKey?: string;
labelKey?: string;
payload?: any[];
label?: any;
}) {
const { config } = useChart();
@@ -179,7 +181,7 @@ function ChartTooltipContent({
>
{!nestLabel ? tooltipLabel : null}
<div className="grid gap-1.5">
{payload.map((item, index) => {
{payload.map((item: any, index: number) => {
const key = `${nameKey || item.name || item.dataKey || "value"}`;
const itemConfig = getPayloadConfigFromPayload(config, item, key);
const indicatorColor = color || item.payload.fill || item.color;
@@ -256,11 +258,12 @@ function ChartLegendContent({
payload,
verticalAlign = "bottom",
nameKey,
}: React.ComponentProps<"div"> &
Pick<RechartsPrimitive.LegendProps, "payload" | "verticalAlign"> & {
hideIcon?: boolean;
nameKey?: string;
}) {
}: React.ComponentProps<"div"> & {
hideIcon?: boolean;
nameKey?: string;
payload?: any[];
verticalAlign?: "top" | "bottom";
}) {
const { config } = useChart();
if (!payload?.length) {
@@ -275,7 +278,7 @@ function ChartLegendContent({
className,
)}
>
{payload.map((item) => {
{payload.map((item: any) => {
const key = `${nameKey || item.dataKey || "value"}`;
const itemConfig = getPayloadConfigFromPayload(config, item, key);

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as CheckboxPrimitive from "@radix-ui/react-checkbox@1.1.4";
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
import { CheckIcon } from "lucide-react";
import { cn } from "./utils";

View File

@@ -1,6 +1,6 @@
"use client";
import * as CollapsiblePrimitive from "@radix-ui/react-collapsible@1.1.3";
import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
function Collapsible({
...props

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import { Command as CommandPrimitive } from "cmdk@1.1.1";
import { Command as CommandPrimitive } from "cmdk";
import { SearchIcon } from "lucide-react";
import { cn } from "./utils";

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu@2.2.6";
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
import { cn } from "./utils";

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import { Drawer as DrawerPrimitive } from "vaul@1.1.2";
import { Drawer as DrawerPrimitive } from "vaul";
import { cn } from "./utils";

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu@2.1.6";
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
import { cn } from "./utils";

View File

@@ -11,7 +11,7 @@ import {
type ControllerProps,
type FieldPath,
type FieldValues,
} from "react-hook-form@7.55.0";
} from "react-hook-form";
import { cn } from "./utils";
import { Label } from "./label";

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as HoverCardPrimitive from "@radix-ui/react-hover-card@1.1.6";
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
import { cn } from "./utils";

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import { OTPInput, OTPInputContext } from "input-otp@1.4.2";
import { OTPInput, OTPInputContext } from "input-otp";
import { MinusIcon } from "lucide-react";
import { cn } from "./utils";

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as MenubarPrimitive from "@radix-ui/react-menubar@1.1.6";
import * as MenubarPrimitive from "@radix-ui/react-menubar";
import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
import { cn } from "./utils";

View File

@@ -1,5 +1,5 @@
import * as React from "react";
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu@1.2.5";
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
import { cva } from "class-variance-authority";
import { ChevronDownIcon } from "lucide-react";

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as PopoverPrimitive from "@radix-ui/react-popover@1.1.6";
import * as PopoverPrimitive from "@radix-ui/react-popover";
import { cn } from "./utils";

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group@1.2.3";
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
import { CircleIcon } from "lucide-react";
import { cn } from "./utils";

View File

@@ -2,7 +2,7 @@
import * as React from "react";
import { GripVerticalIcon } from "lucide-react";
import * as ResizablePrimitive from "react-resizable-panels@2.1.7";
import * as ResizablePrimitive from "react-resizable-panels";
import { cn } from "./utils";

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area@1.2.3";
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
import { cn } from "./utils";

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as SelectPrimitive from "@radix-ui/react-select@2.1.6";
import * as SelectPrimitive from "@radix-ui/react-select";
import {
CheckIcon,
ChevronDownIcon,

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as SeparatorPrimitive from "@radix-ui/react-separator@1.1.2";
import * as SeparatorPrimitive from "@radix-ui/react-separator";
import { cn } from "./utils";

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as SliderPrimitive from "@radix-ui/react-slider@1.2.3";
import * as SliderPrimitive from "@radix-ui/react-slider";
import { cn } from "./utils";

View File

@@ -1,7 +1,7 @@
"use client";
import { useTheme } from "next-themes@0.4.6";
import { Toaster as Sonner, ToasterProps } from "sonner@2.0.3";
import { useTheme } from "next-themes";
import { Toaster as Sonner, ToasterProps } from "sonner";
const Toaster = ({ ...props }: ToasterProps) => {
const { theme = "system" } = useTheme();

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as SwitchPrimitive from "@radix-ui/react-switch@1.1.3";
import * as SwitchPrimitive from "@radix-ui/react-switch";
import { cn } from "./utils";

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as TabsPrimitive from "@radix-ui/react-tabs@1.1.3";
import * as TabsPrimitive from "@radix-ui/react-tabs";
import { cn } from "./utils";

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group@1.1.2";
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
import { type VariantProps } from "class-variance-authority";
import { cn } from "./utils";

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as TogglePrimitive from "@radix-ui/react-toggle@1.1.2";
import * as TogglePrimitive from "@radix-ui/react-toggle";
import { cva, type VariantProps } from "class-variance-authority";
import { cn } from "./utils";

View File

@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
import * as TooltipPrimitive from "@radix-ui/react-tooltip@1.1.8";
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
import { cn } from "./utils";

View File

@@ -1,4 +1,4 @@
import React, { createContext, useContext, useState, ReactNode } from 'react';
import { createContext, useContext, useState, ReactNode } from 'react';
import { Task, UserStory, Sprint } from '../types';
interface AppContextType {

1159
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -10,20 +10,51 @@
"preview": "vite preview"
},
"dependencies": {
"@radix-ui/react-accordion": "^1.2.12",
"@radix-ui/react-alert-dialog": "^1.1.15",
"@radix-ui/react-aspect-ratio": "^1.1.7",
"@radix-ui/react-avatar": "^1.1.10",
"@radix-ui/react-checkbox": "^1.3.3",
"@radix-ui/react-collapsible": "^1.1.12",
"@radix-ui/react-context-menu": "^2.2.16",
"@radix-ui/react-dialog": "^1.1.15",
"@radix-ui/react-dropdown-menu": "^2.1.16",
"@radix-ui/react-hover-card": "^1.1.15",
"@radix-ui/react-label": "^2.1.7",
"@radix-ui/react-menubar": "^1.1.16",
"@radix-ui/react-navigation-menu": "^1.2.14",
"@radix-ui/react-popover": "^1.1.15",
"@radix-ui/react-progress": "^1.1.7",
"@radix-ui/react-radio-group": "^1.3.8",
"@radix-ui/react-scroll-area": "^1.2.10",
"@radix-ui/react-select": "^2.2.6",
"@radix-ui/react-separator": "^1.1.7",
"@radix-ui/react-slider": "^1.3.6",
"@radix-ui/react-slot": "^1.2.3",
"@radix-ui/react-switch": "^1.2.6",
"@radix-ui/react-tabs": "^1.1.13",
"@radix-ui/react-toggle": "^1.1.10",
"@radix-ui/react-toggle-group": "^1.1.11",
"@radix-ui/react-tooltip": "^1.2.8",
"class-variance-authority": "^0.7.0",
"clsx": "^2.0.0",
"cmdk": "^1.1.1",
"date-fns": "^4.1.0",
"embla-carousel-react": "^8.6.0",
"input-otp": "^1.4.2",
"lucide-react": "^0.263.1",
"next-themes": "^0.4.6",
"react": "^18.2.0",
"react-day-picker": "^9.11.1",
"react-dnd": "^16.0.1",
"react-dnd-html5-backend": "^16.0.1",
"react-dom": "^18.2.0",
"react-hook-form": "^7.65.0",
"react-resizable-panels": "^3.0.6",
"recharts": "^3.3.0",
"tailwind-merge": "^1.14.0"
"sonner": "^2.0.7",
"tailwind-merge": "^1.14.0",
"vaul": "^1.1.2"
},
"devDependencies": {
"@types/react": "^18.2.15",