diff --git a/package.json b/package.json index c9cc48818..b18d7ffc6 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "prepare": "husky install" }, "dependencies": { - "@chingu-x/components": "^0.10.3", + "@chingu-x/components": "^0.10.4", "@hello-pangea/dnd": "^16.3.0", "@heroicons/react": "^2.0.18", "@hookform/resolvers": "^3.3.1", diff --git a/src/app/(auth)/layout.tsx b/src/app/(auth)/layout.tsx index 9ae662e5d..daf6bdcf2 100644 --- a/src/app/(auth)/layout.tsx +++ b/src/app/(auth)/layout.tsx @@ -1,6 +1,7 @@ +import { Navbar } from "@chingu-x/components/navbar"; import ModeToggle from "@/components/ModeToggle"; -import Navbar from "@/components/navbar/Navbar"; import AuthBannerContainer from "@/app/(auth)/components/AuthBannerContainer"; +import ChinguMenu from "@/components/navbar/ChinguMenu"; interface LayoutProps { children: React.ReactNode; @@ -9,7 +10,7 @@ interface LayoutProps { export default function Layout({ children }: LayoutProps) { return (
- + }>
diff --git a/src/app/(auth)/sign-in/components/EmailCheckContainer.tsx b/src/app/(auth)/sign-in/components/EmailCheckContainer.tsx index b495cea57..bfc5fac50 100644 --- a/src/app/(auth)/sign-in/components/EmailCheckContainer.tsx +++ b/src/app/(auth)/sign-in/components/EmailCheckContainer.tsx @@ -1,13 +1,13 @@ import { type Dispatch, type SetStateAction } from "react"; import { Banner } from "@chingu-x/components/banner"; import Image from "next/image"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; import { ContainerState } from "./SignInContainer"; -import Button from "@/components/Button"; import { useAppDispatch } from "@/store/hooks"; import useServerAction from "@/hooks/useServerAction"; import { resetPasswordRequestEmail } from "@/app/(auth)/authService"; import { onOpenModal } from "@/store/features/modal/modalSlice"; -import Spinner from "@/components/Spinner"; type ResendEmailContainerProp = { email: string; diff --git a/src/app/(auth)/sign-in/components/ResetPasswordContainer.tsx b/src/app/(auth)/sign-in/components/ResetPasswordContainer.tsx index 9babb3519..3581c2008 100644 --- a/src/app/(auth)/sign-in/components/ResetPasswordContainer.tsx +++ b/src/app/(auth)/sign-in/components/ResetPasswordContainer.tsx @@ -3,15 +3,15 @@ import * as z from "zod"; import Link from "next/link"; import { type SubmitHandler, useForm } from "react-hook-form"; import { type Dispatch, type SetStateAction } from "react"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; +import { TextInput } from "@chingu-x/components/inputs"; import { resetPasswordRequestEmail } from "@/app/(auth)/authService"; -import Button from "@/components/Button"; -import TextInput from "@/components/inputs/TextInput"; import { onOpenModal } from "@/store/features/modal/modalSlice"; import { useAppDispatch } from "@/store/hooks"; import { validateTextInput } from "@/utils/form/validateInput"; import routePaths from "@/utils/routePaths"; import useServerAction from "@/hooks/useServerAction"; -import Spinner from "@/components/Spinner"; const validationSchema = z.object({ email: validateTextInput({ diff --git a/src/app/(auth)/sign-in/components/SignInFormContainer.tsx b/src/app/(auth)/sign-in/components/SignInFormContainer.tsx index 19140242a..1372915b7 100644 --- a/src/app/(auth)/sign-in/components/SignInFormContainer.tsx +++ b/src/app/(auth)/sign-in/components/SignInFormContainer.tsx @@ -3,10 +3,11 @@ import Link from "next/link"; import { useRouter } from "next/navigation"; import { type SubmitHandler, useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; +import { TextInput } from "@chingu-x/components/inputs"; import { serverSignIn } from "@/app/(auth)/authService"; -import Button from "@/components/Button"; -import TextInput from "@/components/inputs/TextInput"; import { validateTextInput } from "@/utils/form/validateInput"; import { clientSignIn } from "@/store/features/auth/authSlice"; import { onOpenModal } from "@/store/features/modal/modalSlice"; @@ -14,7 +15,6 @@ import { useAppDispatch } from "@/store/hooks"; import routePaths from "@/utils/routePaths"; import useServerAction from "@/hooks/useServerAction"; -import Spinner from "@/components/Spinner"; const validationSchema = z.object({ email: validateTextInput({ diff --git a/src/app/(auth)/sign-up/components/ConfirmationMailContainer.tsx b/src/app/(auth)/sign-up/components/ConfirmationMailContainer.tsx index e9121df63..21616731c 100644 --- a/src/app/(auth)/sign-up/components/ConfirmationMailContainer.tsx +++ b/src/app/(auth)/sign-up/components/ConfirmationMailContainer.tsx @@ -1,6 +1,6 @@ import { Banner } from "@chingu-x/components/banner"; import Image from "next/image"; -import Button from "@/components/Button"; +import { Button } from "@chingu-x/components/button"; function ConfirmationMailContainer() { return ( diff --git a/src/app/(auth)/sign-up/components/SignUpFormContainer.tsx b/src/app/(auth)/sign-up/components/SignUpFormContainer.tsx index 7da9135b1..ea0154825 100644 --- a/src/app/(auth)/sign-up/components/SignUpFormContainer.tsx +++ b/src/app/(auth)/sign-up/components/SignUpFormContainer.tsx @@ -2,8 +2,8 @@ import Link from "next/link"; import { useForm, type SubmitHandler } from "react-hook-form"; import * as z from "zod"; import { zodResolver } from "@hookform/resolvers/zod"; -import Button from "@/components/Button"; -import TextInput from "@/components/inputs/TextInput"; +import { Button } from "@chingu-x/components/button"; +import { TextInput } from "@chingu-x/components/inputs"; import { validateTextInput } from "@/utils/form/validateInput"; import routePaths from "@/utils/routePaths"; diff --git a/src/app/(auth)/users/components/NewPasswordContainer.tsx b/src/app/(auth)/users/components/NewPasswordContainer.tsx index 4973a2e3d..9e6b77540 100644 --- a/src/app/(auth)/users/components/NewPasswordContainer.tsx +++ b/src/app/(auth)/users/components/NewPasswordContainer.tsx @@ -2,14 +2,14 @@ import { useForm, type SubmitHandler } from "react-hook-form"; import { useSearchParams } from "next/navigation"; import * as z from "zod"; import { zodResolver } from "@hookform/resolvers/zod"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; +import { TextInput } from "@chingu-x/components/inputs"; import { resetPassword } from "@/app/(auth)/authService"; -import TextInput from "@/components/inputs/TextInput"; -import Button from "@/components/Button"; import { onOpenModal } from "@/store/features/modal/modalSlice"; import { useAppDispatch } from "@/store/hooks"; import { validateTextInput } from "@/utils/form/validateInput"; import useServerAction from "@/hooks/useServerAction"; -import Spinner from "@/components/Spinner"; const validationSchema = z.object({ password: validateTextInput({ diff --git a/src/app/(auth)/users/components/ResetCompletedContainer.tsx b/src/app/(auth)/users/components/ResetCompletedContainer.tsx index b052124c2..dc5c97714 100644 --- a/src/app/(auth)/users/components/ResetCompletedContainer.tsx +++ b/src/app/(auth)/users/components/ResetCompletedContainer.tsx @@ -1,7 +1,7 @@ import Link from "next/link"; import { Banner } from "@chingu-x/components/banner"; import Image from "next/image"; -import Button from "@/components/Button"; +import { Button } from "@chingu-x/components/button"; import routePaths from "@/utils/routePaths"; function ResetCompletedContainer() { diff --git a/src/app/(main)/dashboard/components/Calendar/Calendar.test.tsx b/src/app/(main)/dashboard/components/Calendar/Calendar.test.tsx index f920887a5..c8b075a54 100644 --- a/src/app/(main)/dashboard/components/Calendar/Calendar.test.tsx +++ b/src/app/(main)/dashboard/components/Calendar/Calendar.test.tsx @@ -5,6 +5,10 @@ import { format } from "date-fns"; import Calendar from "./Calendar"; import { rootReducer } from "@/store/store"; +jest.mock("@chingu-x/components/button", () => ({ + Button: () => "MockedButton", +})); + describe("Calendar Component", () => { // not the best test. maybe refactor to e2e test later it("displays the month and year on a single line", () => { diff --git a/src/app/(main)/dashboard/components/Calendar/Calendar.tsx b/src/app/(main)/dashboard/components/Calendar/Calendar.tsx index de2c5b63a..34f195c32 100644 --- a/src/app/(main)/dashboard/components/Calendar/Calendar.tsx +++ b/src/app/(main)/dashboard/components/Calendar/Calendar.tsx @@ -3,13 +3,13 @@ import { format, isSameDay, getUnixTime, getMonth, getYear } from "date-fns"; import { ArrowRightIcon, ArrowLeftIcon } from "@heroicons/react/24/outline"; +import { Button } from "@chingu-x/components/button"; import { useCalendarLogic } from "./Calendar.logic"; import { useEventsLogic } from "./Events.logic"; import Cell from "./components/Cell"; import EventItem from "./components/EventItem"; import Legend from "./components/Legend"; import type { Event } from "@/dashboard/components/voyage-dashboard/getDashboardData"; -import Button from "@/components/Button"; import type { Sprint } from "@/store/features/sprint/sprintSlice"; interface CalendarProps { diff --git a/src/app/(main)/dashboard/components/pre-voyage-dashboard/PreVoyageLinks.tsx b/src/app/(main)/dashboard/components/pre-voyage-dashboard/PreVoyageLinks.tsx index 57da2f254..855b73b39 100644 --- a/src/app/(main)/dashboard/components/pre-voyage-dashboard/PreVoyageLinks.tsx +++ b/src/app/(main)/dashboard/components/pre-voyage-dashboard/PreVoyageLinks.tsx @@ -1,7 +1,7 @@ import { ArrowRightIcon } from "@heroicons/react/24/solid"; import Link from "next/link"; import React from "react"; -import Button from "@/components/Button"; +import { Button } from "@chingu-x/components/button"; function PreVoyageLinks() { return ( diff --git a/src/app/(main)/dashboard/components/shared/VoyageSupport.tsx b/src/app/(main)/dashboard/components/shared/VoyageSupport.tsx index 26b006328..d6f380f31 100644 --- a/src/app/(main)/dashboard/components/shared/VoyageSupport.tsx +++ b/src/app/(main)/dashboard/components/shared/VoyageSupport.tsx @@ -1,7 +1,7 @@ "use client"; import React from "react"; -import Button from "@/components/Button"; +import { Button } from "@chingu-x/components/button"; import { useAppDispatch } from "@/store/hooks"; import { onOpenModal } from "@/store/features/modal/modalSlice"; diff --git a/src/app/(main)/dashboard/components/voyage-dashboard/CheckInWidget.tsx b/src/app/(main)/dashboard/components/voyage-dashboard/CheckInWidget.tsx index 5d4cb19c4..7d0d675b8 100644 --- a/src/app/(main)/dashboard/components/voyage-dashboard/CheckInWidget.tsx +++ b/src/app/(main)/dashboard/components/voyage-dashboard/CheckInWidget.tsx @@ -6,7 +6,7 @@ import React from "react"; import Link from "next/link"; import { isSameDay, sub } from "date-fns"; import { Badge } from "@chingu-x/components/badge"; -import Button from "@/components/Button"; +import { Button } from "@chingu-x/components/button"; import routePaths from "@/utils/routePaths"; import { getSprintCheckinIsStatus } from "@/utils/getFormStatus"; import type { User } from "@/store/features/user/userSlice"; diff --git a/src/app/(main)/dashboard/components/voyage-dashboard/EmptyWidgetContent.tsx b/src/app/(main)/dashboard/components/voyage-dashboard/EmptyWidgetContent.tsx index 80fdd8c24..2821aeb0a 100644 --- a/src/app/(main)/dashboard/components/voyage-dashboard/EmptyWidgetContent.tsx +++ b/src/app/(main)/dashboard/components/voyage-dashboard/EmptyWidgetContent.tsx @@ -2,7 +2,7 @@ import Link from "next/link"; import React from "react"; import { Banner } from "@chingu-x/components/banner"; import Image from "next/image"; -import Button from "@/components/Button"; +import { Button } from "@chingu-x/components/button"; interface EmptyWidgetContentProps { title: string; diff --git a/src/app/(main)/dashboard/components/voyage-dashboard/VoyageDashboardPage.tsx b/src/app/(main)/dashboard/components/voyage-dashboard/VoyageDashboardPage.tsx index c406827f8..52af40617 100644 --- a/src/app/(main)/dashboard/components/voyage-dashboard/VoyageDashboardPage.tsx +++ b/src/app/(main)/dashboard/components/voyage-dashboard/VoyageDashboardPage.tsx @@ -1,6 +1,6 @@ import React, { Suspense } from "react"; +import { Spinner } from "@chingu-x/components/spinner"; import VoyageDashboard from "./VoyageDashboard"; -import Spinner from "@/components/Spinner"; interface VoyageDashboardPageProps { teamId?: string; diff --git a/src/app/(main)/layout.tsx b/src/app/(main)/layout.tsx index f7a343157..61442fc17 100644 --- a/src/app/(main)/layout.tsx +++ b/src/app/(main)/layout.tsx @@ -1,9 +1,10 @@ +import { Navbar } from "@chingu-x/components/navbar"; import Sidebar from "@/components/sidebar/Sidebar"; -import Navbar from "@/components/navbar/Navbar"; import ModeToggle from "@/components/ModeToggle"; import AuthHeader from "@/components/navbar/AuthHeader"; import { getUser } from "@/utils/getUser"; import AuthProvider from "@/app/(auth)/AuthProvider"; +import ChinguMenu from "@/components/navbar/ChinguMenu"; interface LayoutProps { children: React.ReactNode; @@ -15,7 +16,7 @@ export default async function Layout({ children }: LayoutProps) { return (
- + }> <> <> diff --git a/src/app/(main)/my-voyage/[teamId]/directory/components/EditHours.tsx b/src/app/(main)/my-voyage/[teamId]/directory/components/EditHours.tsx index aaf8e2fc6..66fce2d28 100644 --- a/src/app/(main)/my-voyage/[teamId]/directory/components/EditHours.tsx +++ b/src/app/(main)/my-voyage/[teamId]/directory/components/EditHours.tsx @@ -4,14 +4,14 @@ import { zodResolver } from "@hookform/resolvers/zod"; import { useParams } from "next/navigation"; import { PencilSquareIcon } from "@heroicons/react/24/outline"; import { type SetStateAction, useEffect } from "react"; -import TextInput from "@/components/inputs/TextInput"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; +import { TextInput } from "@chingu-x/components/inputs"; import { validateTextInput } from "@/utils/form/validateInput"; import { useAppDispatch } from "@/store/hooks"; import { editHours } from "@/app/(main)/my-voyage/[teamId]/directory/directoryService"; import { onOpenModal } from "@/store/features/modal/modalSlice"; import useServerAction from "@/hooks/useServerAction"; -import Spinner from "@/components/Spinner"; -import Button from "@/components/Button"; interface EditHoursProps { hrPerSprint: number; diff --git a/src/app/(main)/my-voyage/[teamId]/directory/page.tsx b/src/app/(main)/my-voyage/[teamId]/directory/page.tsx index 9c57d3bcd..b335da391 100644 --- a/src/app/(main)/my-voyage/[teamId]/directory/page.tsx +++ b/src/app/(main)/my-voyage/[teamId]/directory/page.tsx @@ -1,6 +1,6 @@ import { Suspense } from "react"; +import { Spinner } from "@chingu-x/components/spinner"; import DirectoryComponentWrapper from "./components/DirectoryComponentWrapper"; -import Spinner from "@/components/Spinner"; interface DirectoryPageProps { params: { diff --git a/src/app/(main)/my-voyage/[teamId]/features/components/AddFeaturesInput.tsx b/src/app/(main)/my-voyage/[teamId]/features/components/AddFeaturesInput.tsx index 0a71bc7b5..c14f6c92f 100644 --- a/src/app/(main)/my-voyage/[teamId]/features/components/AddFeaturesInput.tsx +++ b/src/app/(main)/my-voyage/[teamId]/features/components/AddFeaturesInput.tsx @@ -4,14 +4,14 @@ import { type SubmitHandler, useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { type Dispatch, type SetStateAction, useEffect } from "react"; import { useParams } from "next/navigation"; -import Button from "@/components/Button"; -import TextInput from "@/components/inputs/TextInput"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; +import { TextInput } from "@chingu-x/components/inputs"; import { validateTextInput } from "@/utils/form/validateInput"; import { useAppDispatch } from "@/store/hooks"; import useServerAction from "@/hooks/useServerAction"; import { addFeature } from "@/myVoyage/features/featuresService"; import { onOpenModal } from "@/store/features/modal/modalSlice"; -import Spinner from "@/components/Spinner"; interface AddFeaturesInputProps { handleClick: () => void; diff --git a/src/app/(main)/my-voyage/[teamId]/features/components/ListItem.tsx b/src/app/(main)/my-voyage/[teamId]/features/components/ListItem.tsx index 5aacb6c79..f4e37ed14 100644 --- a/src/app/(main)/my-voyage/[teamId]/features/components/ListItem.tsx +++ b/src/app/(main)/my-voyage/[teamId]/features/components/ListItem.tsx @@ -2,15 +2,15 @@ import * as z from "zod"; import { zodResolver } from "@hookform/resolvers/zod"; import { type SubmitHandler, useForm } from "react-hook-form"; import { useEffect, useRef, useState } from "react"; +import { Spinner } from "@chingu-x/components/spinner"; +import { TextInput } from "@chingu-x/components/inputs"; import Card from "./Card"; -import TextInput from "@/components/inputs/TextInput"; import { validateTextInput } from "@/utils/form/validateInput"; import { type Features } from "@/store/features/features/featuresSlice"; import useServerAction from "@/hooks/useServerAction"; import { editFeature } from "@/myVoyage/features/featuresService"; import { useAppDispatch } from "@/store/hooks"; import { onOpenModal } from "@/store/features/modal/modalSlice"; -import Spinner from "@/components/Spinner"; const validationSchema = z.object({ description: validateTextInput({ diff --git a/src/app/(main)/my-voyage/[teamId]/features/page.tsx b/src/app/(main)/my-voyage/[teamId]/features/page.tsx index 5cf7f2bc8..c27b20018 100644 --- a/src/app/(main)/my-voyage/[teamId]/features/page.tsx +++ b/src/app/(main)/my-voyage/[teamId]/features/page.tsx @@ -1,6 +1,6 @@ import { Suspense } from "react"; +import { Spinner } from "@chingu-x/components/spinner"; import FeaturesComponentWrapper from "./components/FeaturesComponentWrapper"; -import Spinner from "@/components/Spinner"; interface FeaturesPageProps { params: { diff --git a/src/app/(main)/my-voyage/[teamId]/ideation/components/AddProjectIdeaButton.tsx b/src/app/(main)/my-voyage/[teamId]/ideation/components/AddProjectIdeaButton.tsx index 1eb015c70..721a0264d 100644 --- a/src/app/(main)/my-voyage/[teamId]/ideation/components/AddProjectIdeaButton.tsx +++ b/src/app/(main)/my-voyage/[teamId]/ideation/components/AddProjectIdeaButton.tsx @@ -2,7 +2,7 @@ import Link from "next/link"; import { useParams } from "next/navigation"; -import Button from "@/components/Button"; +import { Button } from "@chingu-x/components/button"; import routePaths from "@/utils/routePaths"; export default function AddProjectIdeaButton() { diff --git a/src/app/(main)/my-voyage/[teamId]/ideation/components/ContributionCard.tsx b/src/app/(main)/my-voyage/[teamId]/ideation/components/ContributionCard.tsx index f80f7bcc1..d35615d3e 100644 --- a/src/app/(main)/my-voyage/[teamId]/ideation/components/ContributionCard.tsx +++ b/src/app/(main)/my-voyage/[teamId]/ideation/components/ContributionCard.tsx @@ -6,7 +6,7 @@ import { useEffect, useState } from "react"; import { Badge } from "@chingu-x/components/badge"; import Image from "next/image"; import { Avatar } from "@chingu-x/components/avatar"; -import Button from "@/components/Button"; +import { Button } from "@chingu-x/components/button"; import { type VoyageMember } from "@/store/features/ideation/ideationSlice"; import { useUser } from "@/store/hooks"; import { cn } from "@/lib/utils"; diff --git a/src/app/(main)/my-voyage/[teamId]/ideation/components/FinalizeIdeationButton.tsx b/src/app/(main)/my-voyage/[teamId]/ideation/components/FinalizeIdeationButton.tsx index c110f4121..6ca9f3ca8 100644 --- a/src/app/(main)/my-voyage/[teamId]/ideation/components/FinalizeIdeationButton.tsx +++ b/src/app/(main)/my-voyage/[teamId]/ideation/components/FinalizeIdeationButton.tsx @@ -2,7 +2,7 @@ import Link from "next/link"; import { useParams } from "next/navigation"; -import Button from "@/components/Button"; +import { Button } from "@chingu-x/components/button"; import routePaths from "@/utils/routePaths"; import { useIdeation } from "@/store/hooks"; diff --git a/src/app/(main)/my-voyage/[teamId]/ideation/components/IdeationForm.tsx b/src/app/(main)/my-voyage/[teamId]/ideation/components/IdeationForm.tsx index 12e46f4cd..b7c5339bf 100644 --- a/src/app/(main)/my-voyage/[teamId]/ideation/components/IdeationForm.tsx +++ b/src/app/(main)/my-voyage/[teamId]/ideation/components/IdeationForm.tsx @@ -6,13 +6,12 @@ import * as z from "zod"; import { zodResolver } from "@hookform/resolvers/zod"; import { TrashIcon } from "@heroicons/react/20/solid"; import { useState, useEffect } from "react"; -import Button from "@/components/Button"; -import TextInput from "@/components/inputs/TextInput"; -import Textarea from "@/components/inputs/Textarea"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; +import { TextInput, Textarea } from "@chingu-x/components/inputs"; import { validateTextInput } from "@/utils/form/validateInput"; import { useAppDispatch, useIdeation } from "@/store/hooks"; import { type IdeationData } from "@/store/features/ideation/ideationSlice"; -import Spinner from "@/components/Spinner"; import { editIdeation, type EditIdeationProps, diff --git a/src/app/(main)/my-voyage/[teamId]/ideation/components/VoteCard.tsx b/src/app/(main)/my-voyage/[teamId]/ideation/components/VoteCard.tsx index 4796beb0d..ea9249ee4 100644 --- a/src/app/(main)/my-voyage/[teamId]/ideation/components/VoteCard.tsx +++ b/src/app/(main)/my-voyage/[teamId]/ideation/components/VoteCard.tsx @@ -4,13 +4,14 @@ import { useCallback, useEffect, useState } from "react"; import { Avatar } from "@chingu-x/components/avatar"; import Image from "next/image"; import { AvatarGroup } from "@chingu-x/components/avatar-group"; -import Button from "@/components/Button"; +import { Tooltip } from "@chingu-x/components/tooltip"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; import { type ProjectIdeaVotes, setProjectIdeasLoadingTrue, } from "@/store/features/ideation/ideationSlice"; import { useAppDispatch, useIdeation, useModal, useUser } from "@/store/hooks"; -import Spinner from "@/components/Spinner"; import { cn } from "@/lib/utils"; import useServerAction from "@/hooks/useServerAction"; import { @@ -18,7 +19,6 @@ import { removeIdeationVote, } from "@/app/(main)/my-voyage/[teamId]/ideation/ideationService"; import { onOpenModal } from "@/store/features/modal/modalSlice"; -import Tooltip from "@/components/Tooltip"; interface VoteCardProps { projectIdeaId: number; diff --git a/src/app/(main)/my-voyage/[teamId]/ideation/finalize/components/ConfirmationButton.tsx b/src/app/(main)/my-voyage/[teamId]/ideation/finalize/components/ConfirmationButton.tsx index a8a59cd67..730cb1d27 100644 --- a/src/app/(main)/my-voyage/[teamId]/ideation/finalize/components/ConfirmationButton.tsx +++ b/src/app/(main)/my-voyage/[teamId]/ideation/finalize/components/ConfirmationButton.tsx @@ -1,12 +1,12 @@ import { useParams, useRouter } from "next/navigation"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; import { type FinalizedIdeation } from "./FinalizeIdeationList"; import useServerAction from "@/hooks/useServerAction"; -import Button from "@/components/Button"; import { finalizeIdeation } from "@/myVoyage/ideation/ideationService"; import routePaths from "@/utils/routePaths"; import { useAppDispatch } from "@/store/hooks"; import { onOpenModal } from "@/store/features/modal/modalSlice"; -import Spinner from "@/components/Spinner"; interface ConfirmationButtonProps { finalizedIdeation: FinalizedIdeation; diff --git a/src/app/(main)/my-voyage/[teamId]/ideation/finalize/components/FinalizeIdeationBanner.tsx b/src/app/(main)/my-voyage/[teamId]/ideation/finalize/components/FinalizeIdeationBanner.tsx index 22c5cc446..5c3c8d8de 100644 --- a/src/app/(main)/my-voyage/[teamId]/ideation/finalize/components/FinalizeIdeationBanner.tsx +++ b/src/app/(main)/my-voyage/[teamId]/ideation/finalize/components/FinalizeIdeationBanner.tsx @@ -1,4 +1,4 @@ -import Alert from "@/components/Alert"; +import { Alert } from "@chingu-x/components/alert"; export default function FinalizeIdeationBanner() { return ( diff --git a/src/app/(main)/my-voyage/[teamId]/ideation/finalize/components/FinalizeIdeationItem.tsx b/src/app/(main)/my-voyage/[teamId]/ideation/finalize/components/FinalizeIdeationItem.tsx index 6056ada4f..00f206d32 100644 --- a/src/app/(main)/my-voyage/[teamId]/ideation/finalize/components/FinalizeIdeationItem.tsx +++ b/src/app/(main)/my-voyage/[teamId]/ideation/finalize/components/FinalizeIdeationItem.tsx @@ -3,8 +3,8 @@ import { CheckCircleIcon } from "@heroicons/react/24/outline"; import { Avatar } from "@chingu-x/components/avatar"; import Image from "next/image"; import { AvatarGroup } from "@chingu-x/components/avatar-group"; +import { Button } from "@chingu-x/components/button"; import { type FinalizedIdeation } from "./FinalizeIdeationList"; -import Button from "@/components/Button"; import { type ProjectIdeaVotes } from "@/store/features/ideation/ideationSlice"; interface FinalizeIdeationItemProps { diff --git a/src/app/(main)/my-voyage/[teamId]/ideation/finalize/components/FinalizeIdeationList.tsx b/src/app/(main)/my-voyage/[teamId]/ideation/finalize/components/FinalizeIdeationList.tsx index 6b1f6bfa4..b715e15c4 100644 --- a/src/app/(main)/my-voyage/[teamId]/ideation/finalize/components/FinalizeIdeationList.tsx +++ b/src/app/(main)/my-voyage/[teamId]/ideation/finalize/components/FinalizeIdeationList.tsx @@ -2,9 +2,9 @@ import { useEffect, useState } from "react"; import { useParams, useRouter } from "next/navigation"; +import { Button } from "@chingu-x/components/button"; import FinalizeIdeationItem from "./FinalizeIdeationItem"; import ConfirmationButton from "./ConfirmationButton"; -import Button from "@/components/Button"; import { useIdeation } from "@/store/hooks"; import routePaths from "@/utils/routePaths"; import { type IdeationData } from "@/store/features/ideation/ideationSlice"; diff --git a/src/app/(main)/my-voyage/[teamId]/ideation/page.tsx b/src/app/(main)/my-voyage/[teamId]/ideation/page.tsx index a1b702db9..2034280c5 100644 --- a/src/app/(main)/my-voyage/[teamId]/ideation/page.tsx +++ b/src/app/(main)/my-voyage/[teamId]/ideation/page.tsx @@ -1,6 +1,6 @@ import { Suspense } from "react"; +import { Spinner } from "@chingu-x/components/spinner"; import IdeationComponentWrapper from "./components/IdeationComponentWrapper"; -import Spinner from "@/components/Spinner"; interface IdeationPageProps { params: { diff --git a/src/app/(main)/my-voyage/[teamId]/sprints/[sprintNumber]/meeting/[meetingId]/page.tsx b/src/app/(main)/my-voyage/[teamId]/sprints/[sprintNumber]/meeting/[meetingId]/page.tsx index a78457c87..2a02c9227 100644 --- a/src/app/(main)/my-voyage/[teamId]/sprints/[sprintNumber]/meeting/[meetingId]/page.tsx +++ b/src/app/(main)/my-voyage/[teamId]/sprints/[sprintNumber]/meeting/[meetingId]/page.tsx @@ -1,5 +1,5 @@ import { Suspense } from "react"; -import Spinner from "@/components/Spinner"; +import { Spinner } from "@chingu-x/components/spinner"; import SprintWrapper from "@/myVoyage/sprints/components/SprintWrapper"; interface SprintPageProps { diff --git a/src/app/(main)/my-voyage/[teamId]/sprints/[sprintNumber]/page.tsx b/src/app/(main)/my-voyage/[teamId]/sprints/[sprintNumber]/page.tsx index d78ca696a..fe7d23067 100644 --- a/src/app/(main)/my-voyage/[teamId]/sprints/[sprintNumber]/page.tsx +++ b/src/app/(main)/my-voyage/[teamId]/sprints/[sprintNumber]/page.tsx @@ -1,5 +1,5 @@ import { Suspense } from "react"; -import Spinner from "@/components/Spinner"; +import { Spinner } from "@chingu-x/components/spinner"; import EmptySprintWrapper from "@/myVoyage/sprints/components/EmptySprintWrapper"; interface EmptySprintPageProps { diff --git a/src/app/(main)/my-voyage/[teamId]/sprints/[sprintNumber]/submit-check-in/page.tsx b/src/app/(main)/my-voyage/[teamId]/sprints/[sprintNumber]/submit-check-in/page.tsx index 46ce69701..2aab13443 100644 --- a/src/app/(main)/my-voyage/[teamId]/sprints/[sprintNumber]/submit-check-in/page.tsx +++ b/src/app/(main)/my-voyage/[teamId]/sprints/[sprintNumber]/submit-check-in/page.tsx @@ -1,7 +1,7 @@ import { Suspense } from "react"; +import { Spinner } from "@chingu-x/components/spinner"; import WeeklyCheckInWrapper from "@/myVoyage/sprints/components/WeeklyCheckInWrapper"; -import Spinner from "@/components/Spinner"; interface WeeklyCheckInPageProps { params: { diff --git a/src/app/(main)/my-voyage/[teamId]/sprints/[sprintNumber]/submit-voyage/page.tsx b/src/app/(main)/my-voyage/[teamId]/sprints/[sprintNumber]/submit-voyage/page.tsx index 7626f5aaf..fbc8521f1 100644 --- a/src/app/(main)/my-voyage/[teamId]/sprints/[sprintNumber]/submit-voyage/page.tsx +++ b/src/app/(main)/my-voyage/[teamId]/sprints/[sprintNumber]/submit-voyage/page.tsx @@ -1,7 +1,7 @@ import { Suspense } from "react"; +import { Spinner } from "@chingu-x/components/spinner"; import SubmitProjectWrapper from "@/myVoyage/sprints/components/SubmitProjectWrapper"; -import Spinner from "@/components/Spinner"; interface VoyageSubmissionPageProps { params: { diff --git a/src/app/(main)/my-voyage/[teamId]/sprints/components/ProgressStepper.tsx b/src/app/(main)/my-voyage/[teamId]/sprints/components/ProgressStepper.tsx index 8c25ef6db..83f2c8230 100644 --- a/src/app/(main)/my-voyage/[teamId]/sprints/components/ProgressStepper.tsx +++ b/src/app/(main)/my-voyage/[teamId]/sprints/components/ProgressStepper.tsx @@ -2,7 +2,7 @@ import { useParams, useRouter } from "next/navigation"; import { RocketLaunchIcon } from "@heroicons/react/24/outline"; -import Stepper, { type SteppersItem } from "@/components/Stepper"; +import { Stepper, type SteppersItem } from "@chingu-x/components/stepper"; import { useSprint } from "@/store/hooks"; import routePaths from "@/utils/routePaths"; diff --git a/src/app/(main)/my-voyage/[teamId]/sprints/components/SprintActions.tsx b/src/app/(main)/my-voyage/[teamId]/sprints/components/SprintActions.tsx index 2538a6d9b..6d3cd02c4 100644 --- a/src/app/(main)/my-voyage/[teamId]/sprints/components/SprintActions.tsx +++ b/src/app/(main)/my-voyage/[teamId]/sprints/components/SprintActions.tsx @@ -11,7 +11,7 @@ import { RocketLaunchIcon as SolidRocketLaunchIcon, } from "@heroicons/react/24/solid"; -import Button from "@/components/Button"; +import { Button } from "@chingu-x/components/button"; import routePaths from "@/utils/routePaths"; interface SprintActionsProps { diff --git a/src/app/(main)/my-voyage/[teamId]/sprints/components/agenda/AgendaHeader.tsx b/src/app/(main)/my-voyage/[teamId]/sprints/components/agenda/AgendaHeader.tsx index 404acd8fd..02d77d741 100644 --- a/src/app/(main)/my-voyage/[teamId]/sprints/components/agenda/AgendaHeader.tsx +++ b/src/app/(main)/my-voyage/[teamId]/sprints/components/agenda/AgendaHeader.tsx @@ -3,8 +3,8 @@ import { ClipboardDocumentListIcon, PlusIcon, } from "@heroicons/react/24/outline"; +import { Button } from "@chingu-x/components/button"; import routePaths from "@/utils/routePaths"; -import Button from "@/components/Button"; interface AgendaHeaderProps { teamId: number; diff --git a/src/app/(main)/my-voyage/[teamId]/sprints/components/agenda/AgendaTopic.tsx b/src/app/(main)/my-voyage/[teamId]/sprints/components/agenda/AgendaTopic.tsx index 7ee5117b4..2bd39f717 100644 --- a/src/app/(main)/my-voyage/[teamId]/sprints/components/agenda/AgendaTopic.tsx +++ b/src/app/(main)/my-voyage/[teamId]/sprints/components/agenda/AgendaTopic.tsx @@ -5,7 +5,7 @@ import { } from "@heroicons/react/24/outline"; import { CheckCircleIcon as CheckCircleIconSolid } from "@heroicons/react/24/solid"; -import IconButton from "@/components/IconButton"; +import { IconButton } from "@chingu-x/components/icon-button"; import { type Agenda } from "@/app/(main)/my-voyage/[teamId]/sprints/components/fixtures/Meeting"; import { cn } from "@/lib/utils"; diff --git a/src/app/(main)/my-voyage/[teamId]/sprints/components/forms/AgendaTopicForm.tsx b/src/app/(main)/my-voyage/[teamId]/sprints/components/forms/AgendaTopicForm.tsx index 5bd2032c7..2c2334be2 100644 --- a/src/app/(main)/my-voyage/[teamId]/sprints/components/forms/AgendaTopicForm.tsx +++ b/src/app/(main)/my-voyage/[teamId]/sprints/components/forms/AgendaTopicForm.tsx @@ -7,9 +7,9 @@ import * as z from "zod"; import { zodResolver } from "@hookform/resolvers/zod"; import { TrashIcon } from "@heroicons/react/20/solid"; -import Button from "@/components/Button"; -import TextInput from "@/components/inputs/TextInput"; -import Textarea from "@/components/inputs/Textarea"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; +import { TextInput, Textarea } from "@chingu-x/components/inputs"; import { validateTextInput } from "@/utils/form/validateInput"; import { useSprint, useAppDispatch } from "@/store/hooks"; @@ -22,7 +22,6 @@ import { } from "@/myVoyage/sprints/sprintsService"; import { onOpenModal } from "@/store/features/modal/modalSlice"; import routePaths from "@/utils/routePaths"; -import Spinner from "@/components/Spinner"; import { persistor } from "@/store/store"; const validationSchema = z.object({ diff --git a/src/app/(main)/my-voyage/[teamId]/sprints/components/forms/MeetingForm.tsx b/src/app/(main)/my-voyage/[teamId]/sprints/components/forms/MeetingForm.tsx index e5e1a68b1..08a36093b 100644 --- a/src/app/(main)/my-voyage/[teamId]/sprints/components/forms/MeetingForm.tsx +++ b/src/app/(main)/my-voyage/[teamId]/sprints/components/forms/MeetingForm.tsx @@ -9,11 +9,10 @@ import { zodResolver } from "@hookform/resolvers/zod"; import { LinkIcon } from "@heroicons/react/24/outline"; -import Button from "@/components/Button"; -import DateTimePicker from "@/components/inputs/DateTimePicker"; -import TextInput from "@/components/inputs/TextInput"; -import Textarea from "@/components/inputs/Textarea"; -import Spinner from "@/components/Spinner"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; +import { DateTimePicker, TextInput, Textarea } from "@chingu-x/components/inputs"; + import { validateDateTimeInput, diff --git a/src/app/(main)/my-voyage/[teamId]/sprints/components/forms/VoyageSubmissionForm.tsx b/src/app/(main)/my-voyage/[teamId]/sprints/components/forms/VoyageSubmissionForm.tsx index fa664bd40..950bdc428 100644 --- a/src/app/(main)/my-voyage/[teamId]/sprints/components/forms/VoyageSubmissionForm.tsx +++ b/src/app/(main)/my-voyage/[teamId]/sprints/components/forms/VoyageSubmissionForm.tsx @@ -5,13 +5,12 @@ import { useRouter } from "next/navigation"; import type * as z from "zod"; import { zodResolver } from "@hookform/resolvers/zod"; -import BaseFormPage from "@/components/form/BaseFormPage"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; +import { BaseFormPage } from "@chingu-x/components/form"; import { submitVoyageProjectForm } from "@/myVoyage/sprints/sprintsService"; import FormInput from "@/components/form/FormInput"; -import Button from "@/components/Button"; -import Spinner from "@/components/Spinner"; - import { useAppDispatch, useUser } from "@/store/hooks"; import { onOpenModal } from "@/store/features/modal/modalSlice"; import { createValidationSchema } from "@/utils/form/createValidationSchema"; diff --git a/src/app/(main)/my-voyage/[teamId]/sprints/components/forms/WeeklyCheckInForm.tsx b/src/app/(main)/my-voyage/[teamId]/sprints/components/forms/WeeklyCheckInForm.tsx index 3eed30fbd..d026b82ce 100644 --- a/src/app/(main)/my-voyage/[teamId]/sprints/components/forms/WeeklyCheckInForm.tsx +++ b/src/app/(main)/my-voyage/[teamId]/sprints/components/forms/WeeklyCheckInForm.tsx @@ -5,13 +5,12 @@ import { useRouter } from "next/navigation"; import type * as z from "zod"; import { zodResolver } from "@hookform/resolvers/zod"; -import BaseFormPage from "@/components/form/BaseFormPage"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; +import { BaseFormPage } from "@chingu-x/components/form"; import { submitCheckInForm } from "@/myVoyage/sprints/sprintsService"; import FormInput from "@/components/form/FormInput"; -import Button from "@/components/Button"; -import Spinner from "@/components/Spinner"; - import { useAppDispatch, useUser } from "@/store/hooks"; import { onOpenModal } from "@/store/features/modal/modalSlice"; import { createValidationSchema } from "@/utils/form/createValidationSchema"; diff --git a/src/app/(main)/my-voyage/[teamId]/sprints/components/meetingOverview/MeetingOverview.tsx b/src/app/(main)/my-voyage/[teamId]/sprints/components/meetingOverview/MeetingOverview.tsx index b2103cbea..5e992e873 100644 --- a/src/app/(main)/my-voyage/[teamId]/sprints/components/meetingOverview/MeetingOverview.tsx +++ b/src/app/(main)/my-voyage/[teamId]/sprints/components/meetingOverview/MeetingOverview.tsx @@ -1,7 +1,7 @@ import { ArrowUpRightIcon } from "@heroicons/react/24/outline"; +import { Button } from "@chingu-x/components/button"; import DateTimeComponent from "./DateTimeComponent"; -import Button from "@/components/Button"; interface MeetingOverviewProps { title: string; diff --git a/src/app/(main)/my-voyage/[teamId]/sprints/components/sections/Notes.tsx b/src/app/(main)/my-voyage/[teamId]/sprints/components/sections/Notes.tsx index 797f5b5de..6e7ff504b 100644 --- a/src/app/(main)/my-voyage/[teamId]/sprints/components/sections/Notes.tsx +++ b/src/app/(main)/my-voyage/[teamId]/sprints/components/sections/Notes.tsx @@ -6,9 +6,9 @@ import { type SubmitHandler, useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { useParams } from "next/navigation"; -import Textarea from "@/components/inputs/Textarea"; -import Button from "@/components/Button"; -import Spinner from "@/components/Spinner"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; +import { Textarea } from "@chingu-x/components/inputs"; import { validateTextInput } from "@/utils/form/validateInput"; import useServerAction from "@/hooks/useServerAction"; diff --git a/src/app/(main)/my-voyage/[teamId]/sprints/components/sections/Planning.tsx b/src/app/(main)/my-voyage/[teamId]/sprints/components/sections/Planning.tsx index 3a2f8b831..9c16e97b6 100644 --- a/src/app/(main)/my-voyage/[teamId]/sprints/components/sections/Planning.tsx +++ b/src/app/(main)/my-voyage/[teamId]/sprints/components/sections/Planning.tsx @@ -6,9 +6,9 @@ import { type SubmitHandler, useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { useParams } from "next/navigation"; -import Textarea from "@/components/inputs/Textarea"; -import Button from "@/components/Button"; -import Spinner from "@/components/Spinner"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; +import { Textarea } from "@chingu-x/components/inputs"; import { validateTextInput } from "@/utils/form/validateInput"; import { type Section } from "@/store/features/sprint/sprintSlice"; diff --git a/src/app/(main)/my-voyage/[teamId]/sprints/components/sections/Review.tsx b/src/app/(main)/my-voyage/[teamId]/sprints/components/sections/Review.tsx index 0bd047506..d9b7cd7eb 100644 --- a/src/app/(main)/my-voyage/[teamId]/sprints/components/sections/Review.tsx +++ b/src/app/(main)/my-voyage/[teamId]/sprints/components/sections/Review.tsx @@ -6,9 +6,9 @@ import { type SubmitHandler, useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { useParams } from "next/navigation"; -import Textarea from "@/components/inputs/Textarea"; -import Button from "@/components/Button"; -import Spinner from "@/components/Spinner"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; +import { Textarea } from "@chingu-x/components/inputs"; import { validateTextInput } from "@/utils/form/validateInput"; import { type Section } from "@/store/features/sprint/sprintSlice"; diff --git a/src/app/(main)/my-voyage/[teamId]/sprints/page.tsx b/src/app/(main)/my-voyage/[teamId]/sprints/page.tsx index 37526640a..0aead8df0 100644 --- a/src/app/(main)/my-voyage/[teamId]/sprints/page.tsx +++ b/src/app/(main)/my-voyage/[teamId]/sprints/page.tsx @@ -1,7 +1,7 @@ import { Suspense } from "react"; +import { Spinner } from "@chingu-x/components/spinner"; import RedirectToCurrentSprintWrapper from "./components/RedirectToCurrentSprintWrapper"; -import Spinner from "@/components/Spinner"; interface SprintsPageProps { params: { diff --git a/src/app/(main)/my-voyage/[teamId]/tech-stack/components/AddVoteBtn.tsx b/src/app/(main)/my-voyage/[teamId]/tech-stack/components/AddVoteBtn.tsx index 046bcdd4a..1edade4a8 100644 --- a/src/app/(main)/my-voyage/[teamId]/tech-stack/components/AddVoteBtn.tsx +++ b/src/app/(main)/my-voyage/[teamId]/tech-stack/components/AddVoteBtn.tsx @@ -1,7 +1,7 @@ +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; import { addTechItemVote } from "@/myVoyage/tech-stack/techStackService"; -import Button from "@/components/Button"; import useServerAction from "@/hooks/useServerAction"; -import Spinner from "@/components/Spinner"; import { useAppDispatch } from "@/store/hooks"; import { onOpenModal } from "@/store/features/modal/modalSlice"; diff --git a/src/app/(main)/my-voyage/[teamId]/tech-stack/components/RemoveVoteBtn.tsx b/src/app/(main)/my-voyage/[teamId]/tech-stack/components/RemoveVoteBtn.tsx index 16feddc8b..3fe5d7489 100644 --- a/src/app/(main)/my-voyage/[teamId]/tech-stack/components/RemoveVoteBtn.tsx +++ b/src/app/(main)/my-voyage/[teamId]/tech-stack/components/RemoveVoteBtn.tsx @@ -1,7 +1,7 @@ +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; import { removeTechItemVote } from "@/myVoyage/tech-stack/techStackService"; -import Button from "@/components/Button"; import useServerAction from "@/hooks/useServerAction"; -import Spinner from "@/components/Spinner"; import { useAppDispatch } from "@/store/hooks"; import { onOpenModal } from "@/store/features/modal/modalSlice"; diff --git a/src/app/(main)/my-voyage/[teamId]/tech-stack/components/TechStackCard.tsx b/src/app/(main)/my-voyage/[teamId]/tech-stack/components/TechStackCard.tsx index 0bcbf9c84..5315fda0d 100644 --- a/src/app/(main)/my-voyage/[teamId]/tech-stack/components/TechStackCard.tsx +++ b/src/app/(main)/my-voyage/[teamId]/tech-stack/components/TechStackCard.tsx @@ -8,6 +8,10 @@ import { zodResolver } from "@hookform/resolvers/zod"; import { Avatar } from "@chingu-x/components/avatar"; import Image from "next/image"; import { AvatarGroup } from "@chingu-x/components/avatar-group"; +import { Tooltip } from "@chingu-x/components/tooltip"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; +import { TextInput } from "@chingu-x/components/inputs"; import GetIcon from "./GetIcons"; import AddVoteBtn from "./AddVoteBtn"; import RemoveVoteBtn from "./RemoveVoteBtn"; @@ -17,16 +21,12 @@ import { editTechItem, } from "@/myVoyage/tech-stack/techStackService"; import getTechCategory from "@/myVoyage/tech-stack/components/getTechCategory"; -import TextInput from "@/components/inputs/TextInput"; -import Button from "@/components/Button"; import type { TechStackItem } from "@/store/features/techStack/techStackSlice"; import { useUser, useAppDispatch, useAppSelector } from "@/store/hooks"; import useServerAction from "@/hooks/useServerAction"; import { onOpenModal } from "@/store/features/modal/modalSlice"; -import Spinner from "@/components/Spinner"; import { getCurrentVoyageTeam } from "@/utils/getCurrentVoyageTeam"; import { validateTextInput } from "@/utils/form/validateInput"; -import Tooltip from "@/components/Tooltip"; interface TechStackCardProps { title: string; diff --git a/src/app/(main)/my-voyage/[teamId]/tech-stack/components/TechStackContainer.tsx b/src/app/(main)/my-voyage/[teamId]/tech-stack/components/TechStackContainer.tsx index 0878602d8..60cdb1c95 100644 --- a/src/app/(main)/my-voyage/[teamId]/tech-stack/components/TechStackContainer.tsx +++ b/src/app/(main)/my-voyage/[teamId]/tech-stack/components/TechStackContainer.tsx @@ -2,10 +2,10 @@ import Link from "next/link"; import { useParams } from "next/navigation"; +import { Button } from "@chingu-x/components/button"; import TechStackCard from "./TechStackCard"; import FinalizedTechStackCard from "./FinalizedTechStackCard"; import { getSelectedTechItems } from "@/app/(main)/my-voyage/[teamId]/tech-stack/finalize/utils/getSelectedTechItems"; -import Button from "@/components/Button"; import type { TechStackData } from "@/store/features/techStack/techStackSlice"; import routePaths from "@/utils/routePaths"; diff --git a/src/app/(main)/my-voyage/[teamId]/tech-stack/finalize/ConfirmationButton.tsx b/src/app/(main)/my-voyage/[teamId]/tech-stack/finalize/ConfirmationButton.tsx index ebf877228..17a8668ca 100644 --- a/src/app/(main)/my-voyage/[teamId]/tech-stack/finalize/ConfirmationButton.tsx +++ b/src/app/(main)/my-voyage/[teamId]/tech-stack/finalize/ConfirmationButton.tsx @@ -1,4 +1,6 @@ import { useParams, useRouter } from "next/navigation"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; import createFinalList from "./utils/createFinalList"; import editFinalList from "./utils/editFinalList"; import { @@ -6,8 +8,6 @@ import { finalizeTechStack, } from "@/app/(main)/my-voyage/[teamId]/tech-stack/techStackService"; import type { ConfirmationButtonProps } from "@/app/(main)/my-voyage/[teamId]/tech-stack/finalize/types"; -import Spinner from "@/components/Spinner"; -import Button from "@/components/Button"; import { useAppDispatch } from "@/store/hooks"; import useServerAction from "@/hooks/useServerAction"; import { onOpenModal } from "@/store/features/modal/modalSlice"; diff --git a/src/app/(main)/my-voyage/[teamId]/tech-stack/finalize/FinalizeTechBanner.tsx b/src/app/(main)/my-voyage/[teamId]/tech-stack/finalize/FinalizeTechBanner.tsx index 3d7019b2e..5703063c1 100644 --- a/src/app/(main)/my-voyage/[teamId]/tech-stack/finalize/FinalizeTechBanner.tsx +++ b/src/app/(main)/my-voyage/[teamId]/tech-stack/finalize/FinalizeTechBanner.tsx @@ -1,7 +1,7 @@ "use client"; +import { Alert } from "@chingu-x/components/alert"; import { checkIfFinalized } from "./utils/checkIfFinalized"; -import Alert from "@/components/Alert"; import { useTechStack } from "@/store/hooks"; export default function FinalizeTechBanner() { diff --git a/src/app/(main)/my-voyage/[teamId]/tech-stack/finalize/FinalizeTechCard.tsx b/src/app/(main)/my-voyage/[teamId]/tech-stack/finalize/FinalizeTechCard.tsx index 9ab480c55..d8245035f 100644 --- a/src/app/(main)/my-voyage/[teamId]/tech-stack/finalize/FinalizeTechCard.tsx +++ b/src/app/(main)/my-voyage/[teamId]/tech-stack/finalize/FinalizeTechCard.tsx @@ -3,13 +3,13 @@ import { CheckCircleIcon } from "@heroicons/react/24/outline"; import { Avatar } from "@chingu-x/components/avatar"; import Image from "next/image"; import { AvatarGroup } from "@chingu-x/components/avatar-group"; +import { Button } from "@chingu-x/components/button"; import type { FinalizeTechCardProps, Vote, SelectedItems, FinalizedItem, } from "./types"; -import Button from "@/components/Button"; export default function FinalizeTechCard({ title, diff --git a/src/app/(main)/my-voyage/[teamId]/tech-stack/finalize/FinalizeTechList.tsx b/src/app/(main)/my-voyage/[teamId]/tech-stack/finalize/FinalizeTechList.tsx index 891459402..121ce0d6f 100644 --- a/src/app/(main)/my-voyage/[teamId]/tech-stack/finalize/FinalizeTechList.tsx +++ b/src/app/(main)/my-voyage/[teamId]/tech-stack/finalize/FinalizeTechList.tsx @@ -3,11 +3,11 @@ import { useState } from "react"; import { useParams } from "next/navigation"; import Link from "next/link"; +import { Button } from "@chingu-x/components/button"; import type { SelectedItems, TechItem, TechStackItem } from "./types"; import { checkIfFinalized } from "./utils/checkIfFinalized"; import { getSelectedTechItems } from "./utils/getSelectedTechItems"; import GetIcon from "@/myVoyage/tech-stack/components/GetIcons"; -import Button from "@/components/Button"; import { useTechStack } from "@/store/hooks"; import FinalizeTechCard from "@/app/(main)/my-voyage/[teamId]/tech-stack/finalize/FinalizeTechCard"; import ConfirmationButton from "@/app/(main)/my-voyage/[teamId]/tech-stack/finalize/ConfirmationButton"; diff --git a/src/app/(main)/my-voyage/[teamId]/tech-stack/page.tsx b/src/app/(main)/my-voyage/[teamId]/tech-stack/page.tsx index bc76529bc..f5f0c7d6e 100644 --- a/src/app/(main)/my-voyage/[teamId]/tech-stack/page.tsx +++ b/src/app/(main)/my-voyage/[teamId]/tech-stack/page.tsx @@ -1,6 +1,6 @@ import { Suspense } from "react"; +import { Spinner } from "@chingu-x/components/spinner"; import TechStackComponentWrapper from "./components/TechStackComponentWrapper"; -import Spinner from "@/components/Spinner"; interface TechStackPageProps { params: { diff --git a/src/app/(main)/my-voyage/[teamId]/voyage-resources/components/ResourceCard.tsx b/src/app/(main)/my-voyage/[teamId]/voyage-resources/components/ResourceCard.tsx index a13c6d6bf..a24006e2c 100644 --- a/src/app/(main)/my-voyage/[teamId]/voyage-resources/components/ResourceCard.tsx +++ b/src/app/(main)/my-voyage/[teamId]/voyage-resources/components/ResourceCard.tsx @@ -3,9 +3,9 @@ import { TrashIcon } from "@heroicons/react/20/solid"; import { Badge } from "@chingu-x/components/badge"; import { Avatar } from "@chingu-x/components/avatar"; import Image from "next/image"; +import { IconButton } from "@chingu-x/components/icon-button"; import { useAppDispatch, useAppSelector } from "@/store/hooks"; import { onOpenModal } from "@/store/features/modal/modalSlice"; -import IconButton from "@/components/IconButton"; import { deleteResource } from "@/app/(main)/my-voyage/[teamId]/voyage-resources/resourcesService"; interface ResourceCardProps { diff --git a/src/app/(main)/my-voyage/[teamId]/voyage-resources/components/ResourceInput.tsx b/src/app/(main)/my-voyage/[teamId]/voyage-resources/components/ResourceInput.tsx index 586f4fbc0..ab33795de 100644 --- a/src/app/(main)/my-voyage/[teamId]/voyage-resources/components/ResourceInput.tsx +++ b/src/app/(main)/my-voyage/[teamId]/voyage-resources/components/ResourceInput.tsx @@ -3,14 +3,14 @@ import { useParams } from "next/navigation"; import * as z from "zod"; import { zodResolver } from "@hookform/resolvers/zod"; import { LinkIcon } from "@heroicons/react/24/outline"; +import { Button } from "@chingu-x/components/button"; +import { Spinner } from "@chingu-x/components/spinner"; +import { TextInput } from "@chingu-x/components/inputs"; import { useAppDispatch } from "@/store/hooks"; import { validateTextInput } from "@/utils/form/validateInput"; -import Button from "@/components/Button"; -import TextInput from "@/components/inputs/TextInput"; import { onOpenModal } from "@/store/features/modal/modalSlice"; import { addResource } from "@/app/(main)/my-voyage/[teamId]/voyage-resources/resourcesService"; import useServerAction from "@/hooks/useServerAction"; -import Spinner from "@/components/Spinner"; const validationSchema = z.object({ url: validateTextInput({ diff --git a/src/app/(main)/my-voyage/[teamId]/voyage-resources/components/SortingButton.tsx b/src/app/(main)/my-voyage/[teamId]/voyage-resources/components/SortingButton.tsx index bfb5aa6f3..85f727943 100644 --- a/src/app/(main)/my-voyage/[teamId]/voyage-resources/components/SortingButton.tsx +++ b/src/app/(main)/my-voyage/[teamId]/voyage-resources/components/SortingButton.tsx @@ -1,5 +1,5 @@ import { ArrowDownIcon, ArrowUpIcon } from "@heroicons/react/20/solid"; -import Button from "@/components/Button"; +import { Button } from "@chingu-x/components/button"; interface SortingButtonProps { onClick: () => void; diff --git a/src/app/(main)/my-voyage/[teamId]/voyage-resources/page.tsx b/src/app/(main)/my-voyage/[teamId]/voyage-resources/page.tsx index 8f3de37fa..f79c1a807 100644 --- a/src/app/(main)/my-voyage/[teamId]/voyage-resources/page.tsx +++ b/src/app/(main)/my-voyage/[teamId]/voyage-resources/page.tsx @@ -1,6 +1,6 @@ import { Suspense } from "react"; +import { Spinner } from "@chingu-x/components/spinner"; import ResourcesComponentWrapper from "./components/ResourcesComponentWrapper"; -import Spinner from "@/components/Spinner"; interface ResourcesPageProps { params: { diff --git a/src/components/Alert.tsx b/src/components/Alert.tsx deleted file mode 100644 index 6c552aa7e..000000000 --- a/src/components/Alert.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { - ExclamationTriangleIcon, - InformationCircleIcon, - CheckCircleIcon, -} from "@heroicons/react/24/solid"; - -interface AlertProps { - context: string; - message: string; -} - -function Alert({ context, message }: AlertProps) { - const icon: Record = { - success: , - info: , - error: , - warning: , - neutral: , - }; - - const customStyles: Record = { - success: "bg-success-content border-success", - info: "bg-info-content border-info", - error: "bg-error-content border-error", - warning: "bg-warning-content border-warning", - neutral: "bg-base-100 border-neutral", - }; - - return ( -
-
{icon[context]}
- {message} -
- ); -} - -export default Alert; diff --git a/src/components/Button.tsx b/src/components/Button.tsx deleted file mode 100644 index a5a670e29..000000000 --- a/src/components/Button.tsx +++ /dev/null @@ -1,104 +0,0 @@ -import React from "react"; -import { cva, type VariantProps } from "class-variance-authority"; - -import { cn } from "@/lib/utils"; - -const button = cva( - "child:transition-colors flex items-center justify-center gap-x-2 rounded-lg border border-transparent font-semibold capitalize text-base-300 transition-colors disabled:cursor-not-allowed", - { - variants: { - variant: { - primary: [ - "bg-primary", - "text-base-200", - "hover:bg-primary-focus", - "active:text-base-300", - "active:bg-primary-content", - "disabled:text-neutral-content", - "disabled:bg-primary-focus", - ], - secondary: [ - "bg-secondary", - "hover:bg-secondary-focus", - "active:bg-secondary-content", - "disabled:text-neutral-focus", - "disabled:bg-secondary-focus", - ], - accent: [ - "bg-accent", - "hover:bg-accent-focus", - "active:bg-accent-content", - "disabled:text-neutral-focus", - "disabled:bg-accent-focus", - ], - neutral: [ - "bg-base-200", - "hover:bg-base-100", - "active:bg-neutral-content", - "disabled:text-neutral-focus", - "disabled:bg-neutral-content", - ], - error: [ - "bg-error-content", - "hover:bg-error", - "active:bg-error", - "active:text-base-200", - "disabled:text-neutral-focus", - "disabled:bg-error", - ], - link: [ - "text-neutral-focus", - "hover:text-base-300", - "disabled:text-neutral-content", - "child:text-base-300", - "hover:child:text-neutral-focus", - ], - outline: [ - "bg-base-200", - "border-primary", - "hover:bg-primary-content", - "active:bg-primary", - "active:text-base-200", - "disabled:bg-base-100", - "disabled:text-neutral", - ], - }, - size: { - xs: ["text-[13px]", "py-1", "px-[18px]"], - sm: ["text-[13px]", "py-2.5", "px-[18px]"], - md: ["text-[13px]", "py-3", "px-5"], - lg: ["text-base", "py-[14px]", "px-[22px]"], - xl: ["text-base", "py-4", "px-6"], - xxl: ["text-xl", "py-[18px]", "px-[26px]"], - }, - }, - compoundVariants: [{ variant: "primary", size: "md" }], - defaultVariants: { - variant: "primary", - size: "md", - }, - }, -); - -export interface ButtonProps - extends React.ButtonHTMLAttributes, - VariantProps {} - -export default function Button({ - className, - variant, - size, - children, - ...props -}: ButtonProps) { - return ( - - ); -} diff --git a/src/components/EditMenu.tsx b/src/components/EditMenu.tsx index 31ea3b775..d62e39378 100644 --- a/src/components/EditMenu.tsx +++ b/src/components/EditMenu.tsx @@ -1,5 +1,5 @@ import { PencilSquareIcon, TrashIcon } from "@heroicons/react/24/outline"; -import Button from "@/components/Button"; +import { Button } from "@chingu-x/components/button"; interface EditMenuProps { handleClick: () => void; diff --git a/src/components/Error.tsx b/src/components/Error.tsx index 670e76c90..d39a08bcd 100644 --- a/src/components/Error.tsx +++ b/src/components/Error.tsx @@ -6,7 +6,7 @@ import { useRouter } from "next/navigation"; import { Banner } from "@chingu-x/components/banner"; import Image from "next/image"; -import Button from "./Button"; +import { Button } from "@chingu-x/components/button"; import routePaths from "@/utils/routePaths"; import { type ErrorType } from "@/utils/error"; diff --git a/src/components/IconButton.tsx b/src/components/IconButton.tsx deleted file mode 100644 index a3f972003..000000000 --- a/src/components/IconButton.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { cn } from "@/lib/utils"; - -interface IconButtonProps - extends React.ButtonHTMLAttributes { - children: React.ReactNode; - ariaLabel: string; -} - -export default function IconButton({ - children, - className, - ariaLabel, - ...props -}: IconButtonProps) { - return ( - - ); -} diff --git a/src/components/ModeToggle.tsx b/src/components/ModeToggle.tsx index f6824d975..ae642fb2a 100644 --- a/src/components/ModeToggle.tsx +++ b/src/components/ModeToggle.tsx @@ -1,10 +1,8 @@ "use client"; -import { type ChangeEvent, useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { useTheme } from "next-themes"; -import { AnimatePresence, type Variants, motion } from "framer-motion"; - -import { SunIcon, MoonIcon } from "@heroicons/react/20/solid"; +import { ModeToggleButton } from "@chingu-x/components/mode-toggle-button"; export default function ModeToggle() { const [mounted, setMounted] = useState(false); @@ -20,56 +18,17 @@ export default function ModeToggle() { // If enableSystem is true and the active theme is "system" (when a user firsts visits a website), resolvedTheme returns whether the system preference resolved to "dark" or "light". // So we need to set theme to resolvedTheme first time the user visits, but next time the theme is gonna come from localStorage - if (theme === "system" && resolvedTheme) { - setTheme(resolvedTheme); - } - - const toggleTheme = (e: ChangeEvent) => { - setTheme(e.target.checked === true ? "light" : "dark"); - }; + const activeTheme = + theme === "system" && resolvedTheme ? resolvedTheme : theme; - const modeToggleVariants: Variants = { - hidden: { - rotate: 25, - }, - show: { - rotate: 0, - }, + const toggleTheme = () => { + setTheme(activeTheme === "light" ? "dark" : "light"); }; return ( - + ); } diff --git a/src/components/Spinner.tsx b/src/components/Spinner.tsx deleted file mode 100644 index d65b9b85f..000000000 --- a/src/components/Spinner.tsx +++ /dev/null @@ -1,36 +0,0 @@ -// temporary loading spinner - -interface SpinnerProps { - color?: string; - extraClasses?: string; -} - -export default function Spinner({ - color = "text-base-300", - extraClasses, -}: SpinnerProps) { - return ( -
- - - - -
- ); -} diff --git a/src/components/Stepper.tsx b/src/components/Stepper.tsx deleted file mode 100644 index b4e2ee804..000000000 --- a/src/components/Stepper.tsx +++ /dev/null @@ -1,82 +0,0 @@ -"use client"; -import React from "react"; -import Button from "@/components/Button"; -import { cn } from "@/lib/utils"; - -type StepperStyle = "chips" | "icons"; -type StepperStatus = "completed" | "current" | "remaining"; - -const statusColor = { - remaining: "bg-neutral", - completed: "bg-success-content", - current: "bg-success", -}; - -const statusVariant: Record = { - remaining: "neutral", - completed: "primary", - current: "primary", -}; - -export interface SteppersItem { - icon?: React.ReactNode; - status: StepperStatus; - onClickEvent?: () => void; - name: string; - isActive: boolean; -} - -export interface StepperProps { - styleType: StepperStyle; - stepperWidth?: string; - steppers: SteppersItem[]; -} - -export default function Stepper({ - styleType, - stepperWidth, - steppers, -}: StepperProps) { - return ( -
-
-
- {steppers.map((step) => { - const { icon, status, onClickEvent, name, isActive } = step; - - return ( -
- {styleType === "icons" ? ( - - ) : ( -
- )} -
- ); - })} -
-
-
- ); -} diff --git a/src/components/Tooltip.tsx b/src/components/Tooltip.tsx deleted file mode 100644 index d4b8814a8..000000000 --- a/src/components/Tooltip.tsx +++ /dev/null @@ -1,74 +0,0 @@ -"use client"; - -import React from "react"; -import { cn } from "@/lib/utils"; - -type Position = "top" | "bottom" | "left" | "right"; -type TooltipWidth = "small" | "medium" | "large"; - -export interface TooltipProps { - content: string; - supportText?: string; - position: Position; - children: React.ReactNode; - tooltipWidth: TooltipWidth; - isDisplay: boolean; - hovered: boolean; - customClassName?: string; -} - -export default function Tooltip({ - content, - supportText, - position, - children, - tooltipWidth, - isDisplay, - hovered, - customClassName, -}: TooltipProps) { - let nonSupportTextWidth; - - if (tooltipWidth === "small") { - nonSupportTextWidth = "w-[138px]"; - } else if (tooltipWidth === "medium") { - nonSupportTextWidth = "w-[164px]"; - } else { - nonSupportTextWidth = "w-[169px]"; - } - - return ( -
- {children} -
-
- {content} -
- {supportText &&
{supportText}
} -
-
- ); -} diff --git a/src/components/form/BaseFormPage.tsx b/src/components/form/BaseFormPage.tsx deleted file mode 100644 index c959f13fd..000000000 --- a/src/components/form/BaseFormPage.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import FormBanner from "./FormBanner"; - -interface BaseFormPageProps { - title: string; - description: string; - children: React.ReactNode; -} - -export default function BaseFormPage({ - title, - description, - children, -}: BaseFormPageProps) { - return ( -
- - {children} -
- ); -} diff --git a/src/components/form/FormBanner.tsx b/src/components/form/FormBanner.tsx deleted file mode 100644 index 0cbbd9d00..000000000 --- a/src/components/form/FormBanner.tsx +++ /dev/null @@ -1,15 +0,0 @@ -interface FormBannerProps { - title: string; - description: string; -} - -export default function FormBanner({ title, description }: FormBannerProps) { - return ( -
-
-

{title}

-

{description}

-
-
- ); -} diff --git a/src/components/form/FormInput.tsx b/src/components/form/FormInput.tsx index 32c5ff82b..db2efed29 100644 --- a/src/components/form/FormInput.tsx +++ b/src/components/form/FormInput.tsx @@ -3,16 +3,10 @@ import { type FieldErrors, type UseFormRegister } from "react-hook-form"; import { LinkIcon } from "@heroicons/react/24/outline"; -import { LabelContent } from "./LabelContent"; +import { TextInput, Textarea, Label, RadioGroupVertical, RadioGroupHorizontal, RadioGroupRating, CheckboxGroupVertical, LabelContent } from "@chingu-x/components/inputs"; import FormInputContainer from "@/components/form/FormInputContainer"; -import Label from "@/components/inputs/Label"; -import Textarea from "@/components/inputs/Textarea"; -import RadioGroupVertical from "@/components/inputs/RadioGroup/RadioGroupVertical"; -import CheckboxGroupVertical from "@/components/inputs/CheckBoxGroup/CheckboxGroupVertical"; -import RadioGroupHorizontal from "@/components/inputs/RadioGroup/RadioGroupHorizontal"; -import RadioGroupRating from "@/components/inputs/RadioGroup/RadioGroupRating"; -import TextInput from "@/components/inputs/TextInput"; + import { getOptions, getTextInCurlyBrackets } from "@/utils/form/helpers"; import { type Question, type TeamMemberForCheckbox } from "@/utils/form/types"; diff --git a/src/components/form/LabelContent.tsx b/src/components/form/LabelContent.tsx deleted file mode 100644 index d616f6495..000000000 --- a/src/components/form/LabelContent.tsx +++ /dev/null @@ -1,28 +0,0 @@ -"use client"; - -import Icon from "./Icon"; - -import { getTextInCurlyBrackets } from "@/utils/form/helpers"; - -interface CustomLabelProps { - text: string; - withIcon?: boolean; -} - -export function LabelContent({ text, withIcon }: CustomLabelProps) { - const labelText = text.split("}}")[1].trim(); - if (withIcon) { - const textInCurlyBrackets = getTextInCurlyBrackets(text); - if (textInCurlyBrackets) { - const [color, iconName] = textInCurlyBrackets.split(/(?=[A-Z])/); - return ( - - - {labelText} - - ); - } - } else { - return labelText; - } -} diff --git a/src/components/inputs/CheckBoxGroup/CheckboxGroupItem.tsx b/src/components/inputs/CheckBoxGroup/CheckboxGroupItem.tsx deleted file mode 100644 index 599706ab6..000000000 --- a/src/components/inputs/CheckBoxGroup/CheckboxGroupItem.tsx +++ /dev/null @@ -1,42 +0,0 @@ -"use client"; - -import React from "react"; -import { CheckIcon } from "@heroicons/react/24/outline"; - -import Label from "@/components/inputs/Label"; -import { cn } from "@/lib/utils"; - -export interface CheckboxGroupItemProps - extends React.InputHTMLAttributes { - id: string; - label: string | JSX.Element; -} - -export const CheckboxGroupItem = React.forwardRef< - HTMLInputElement, - CheckboxGroupItemProps ->(({ id, label, className, ...props }, ref) => ( -
- -
-)); - -CheckboxGroupItem.displayName = "CheckboxGroupItem"; diff --git a/src/components/inputs/CheckBoxGroup/CheckboxGroupVertical.tsx b/src/components/inputs/CheckBoxGroup/CheckboxGroupVertical.tsx deleted file mode 100644 index 12442be6d..000000000 --- a/src/components/inputs/CheckBoxGroup/CheckboxGroupVertical.tsx +++ /dev/null @@ -1,34 +0,0 @@ -"use client"; - -import React from "react"; - -import { - CheckboxGroupItem, - type CheckboxGroupItemProps, -} from "./CheckboxGroupItem"; - -interface CheckboxGroupProps - extends React.InputHTMLAttributes { - options: CheckboxGroupItemProps[]; -} - -const CheckboxGroup = React.forwardRef( - ({ options, ...props }, ref) => ( -
- {options.map(({ id, value, label }) => ( - - ))} -
- ), -); - -CheckboxGroup.displayName = "CheckboxGroup"; - -export default CheckboxGroup; diff --git a/src/components/inputs/DateTimePicker.tsx b/src/components/inputs/DateTimePicker.tsx deleted file mode 100644 index 3f408f3c5..000000000 --- a/src/components/inputs/DateTimePicker.tsx +++ /dev/null @@ -1,69 +0,0 @@ -"use client"; - -import React from "react"; -import DatePicker, { type ReactDatePickerProps } from "react-datepicker"; -import { CalendarDaysIcon } from "@heroicons/react/24/outline"; - -import "react-datepicker/dist/react-datepicker.css"; - -import TextInput from "./TextInput"; - -export interface DatePickerInputProps extends ReactDatePickerProps { - id: string; - label: string; - selectedValue: Date; - placeholder: string; - errorMessage?: string | undefined; -} - -const DateTimePicker = React.forwardRef( - ( - { - id, - label, - selectedValue, - placeholder, - errorMessage, - className, - ...props - }, - ref, - ) => { - const filterPassedTime = (time: Date) => { - const currentDate = new Date(); - const selectedDate = new Date(time); - return currentDate.getTime() < selectedDate.getTime(); - }; - return ( -
- } - errorMessage={errorMessage} - className={className} - /> - } - ref={ref} - {...props} - /> -
- ); - }, -); - -DateTimePicker.displayName = "DateTimePicker"; - -export default DateTimePicker; diff --git a/src/components/inputs/FieldMessage.tsx b/src/components/inputs/FieldMessage.tsx deleted file mode 100644 index ffb09c179..000000000 --- a/src/components/inputs/FieldMessage.tsx +++ /dev/null @@ -1,44 +0,0 @@ -"use client"; - -import { - QuestionMarkCircleIcon, - ExclamationCircleIcon, -} from "@heroicons/react/20/solid"; - -import { cn } from "@/lib/utils"; - -interface FieldMessageProps { - id: string; - errorMessage?: string; - suggestionMessage?: string; -} - -export default function FieldMessage({ - id, - errorMessage, - suggestionMessage, -}: FieldMessageProps) { - return ( -
- - {errorMessage && ( - <> - - {errorMessage} - - )} - {suggestionMessage && ( - <> - - {suggestionMessage} - - )} - -
- ); -} diff --git a/src/components/inputs/Label.tsx b/src/components/inputs/Label.tsx deleted file mode 100644 index 856ea21dd..000000000 --- a/src/components/inputs/Label.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { cn } from "@/lib/utils"; - -export interface LabelProps - extends React.LabelHTMLAttributes {} - -export default function Label({ className, ...props }: LabelProps) { - return ( -