chore: migrate nextui to heroui (#141)

This commit is contained in:
kimatata
2025-02-24 10:36:44 +09:00
committed by GitHub
parent 050b2aa0ec
commit ffef75d9bc
46 changed files with 8248 additions and 2822 deletions

View File

@@ -1,6 +1,6 @@
'use client';
import { useEffect, useState, useContext } from 'react';
import { Button } from '@nextui-org/react';
import { Button } from '@heroui/react';
import { Plus } from 'lucide-react';
import { TokenContext } from '@/utils/TokenProvider';
import { ProjectDialogMessages, ProjectType, ProjectsMessages } from '@/types/project';

View File

@@ -1,5 +1,5 @@
import { useState, useMemo, useCallback, ReactNode } from 'react';
import { Table, TableHeader, TableColumn, TableBody, TableRow, TableCell, SortDescriptor } from '@nextui-org/react';
import { Table, TableHeader, TableColumn, TableBody, TableRow, TableCell, SortDescriptor } from '@heroui/react';
import { Link, NextUiLinkClasses } from '@/src/i18n/routing';
import { ProjectType, ProjectsMessages } from '@/types/project';
import dayjs from 'dayjs';

View File

@@ -1,6 +1,6 @@
'use client';
import { useState, useEffect } from 'react';
import { Listbox, ListboxItem } from '@nextui-org/react';
import { Listbox, ListboxItem } from '@heroui/react';
import { Home, Files, FlaskConical, Users, Settings } from 'lucide-react';
import { usePathname, useRouter } from '@/src/i18n/routing';
import useGetCurrentIds from '@/utils/useGetCurrentIds';

View File

@@ -1,7 +1,7 @@
'use client';
import React from 'react';
import { useState, useEffect } from 'react';
import { Button, Input, Textarea, Modal, ModalContent, ModalHeader, ModalBody, ModalFooter } from '@nextui-org/react';
import { Button, Input, Textarea, Modal, ModalContent, ModalHeader, ModalBody, ModalFooter } from '@heroui/react';
import { FolderType, FoldersMessages } from '@/types/folder';
type Props = {

View File

@@ -1,5 +1,5 @@
import { useState, useEffect } from 'react';
import { Button, Dropdown, DropdownTrigger, DropdownMenu, DropdownItem } from '@nextui-org/react';
import { Button, Dropdown, DropdownTrigger, DropdownMenu, DropdownItem } from '@heroui/react';
import { MoreVertical } from 'lucide-react';
import { FolderType, FoldersMessages } from '@/types/folder';

View File

@@ -1,7 +1,7 @@
'use client';
import { FolderType, FoldersMessages } from '@/types/folder';
import { useState, useEffect, useContext } from 'react';
import { Button, Listbox, ListboxItem } from '@nextui-org/react';
import { Button, Listbox, ListboxItem } from '@heroui/react';
import { Folder, Plus } from 'lucide-react';
import { usePathname, useRouter } from '@/src/i18n/routing';
import { TokenContext } from '@/utils/TokenProvider';

View File

@@ -1,7 +1,7 @@
'use client';
import React from 'react';
import { useState, useEffect } from 'react';
import { Button, Input, Textarea, Modal, ModalContent, ModalHeader, ModalBody, ModalFooter } from '@nextui-org/react';
import { Button, Input, Textarea, Modal, ModalContent, ModalHeader, ModalBody, ModalFooter } from '@heroui/react';
import { CasesMessages } from '@/types/case';
type Props = {

View File

@@ -13,7 +13,7 @@ import {
DropdownItem,
Selection,
SortDescriptor,
} from '@nextui-org/react';
} from '@heroui/react';
import { Link, NextUiLinkClasses } from '@/src/i18n/routing';
import { Plus, MoreVertical, Trash } from 'lucide-react';
import { CaseType, CasesMessages } from '@/types/case';

View File

@@ -1,4 +1,4 @@
import { Image, Button, Tooltip, Card, CardBody } from '@nextui-org/react';
import { Image, Button, Tooltip, Card, CardBody } from '@heroui/react';
import { AttachmentType, CaseMessages } from '@/types/case';
import { Trash, ArrowDownToLine, ArrowUpFromLine } from 'lucide-react';
import { isImage } from './isImage';

View File

@@ -1,6 +1,6 @@
'use client';
import { useState, useEffect, useContext, ChangeEvent, DragEvent } from 'react';
import { Input, Textarea, Select, SelectItem, Button, Divider, Tooltip } from '@nextui-org/react';
import { Input, Textarea, Select, SelectItem, Button, Divider, Tooltip, addToast } from '@heroui/react';
import { useRouter } from '@/src/i18n/routing';
import { Save, Plus, ArrowLeft, Circle } from 'lucide-react';
import { priorities, testTypes, templates } from '@/config/selection';
@@ -10,7 +10,6 @@ import { fetchCase, updateCase } from '@/utils/caseControl';
import { updateSteps } from './stepControl';
import { fetchCreateAttachments, fetchDownloadAttachment, fetchDeleteAttachment } from './attachmentControl';
import { TokenContext } from '@/utils/TokenProvider';
import { ToastContext } from '@/utils/ToastProvider';
import { useFormGuard } from '@/utils/formGuard';
import { CaseType, AttachmentType, CaseMessages, StepType } from '@/types/case';
import { PriorityMessages } from '@/types/priority';
@@ -54,7 +53,6 @@ export default function CaseEditor({
locale,
}: Props) {
const tokenContext = useContext(TokenContext);
const toastContext = useContext(ToastContext);
const [testCase, setTestCase] = useState<CaseType>(defaultTestCase);
const [isTitleInvalid, setIsTitleInvalid] = useState<boolean>(false);
const [isUpdating, setIsUpdating] = useState<boolean>(false);
@@ -242,7 +240,10 @@ export default function CaseEditor({
await updateSteps(tokenContext.token.access_token, Number(caseId), testCase.Steps);
}
toastContext.showToast(messages.updatedTestCase, 'dark');
addToast({
title: 'Info',
description: messages.updatedTestCase,
});
setIsUpdating(false);
setIsDirty(false);
}}
@@ -298,10 +299,8 @@ export default function CaseEditor({
label={messages.priority}
className="mt-3 max-w-xs"
>
{priorities.map((priority, index) => (
<SelectItem key={priority.uid} value={index}>
{priorityMessages[priority.uid]}
</SelectItem>
{priorities.map((priority) => (
<SelectItem key={priority.uid}>{priorityMessages[priority.uid]}</SelectItem>
))}
</Select>
</div>
@@ -321,10 +320,8 @@ export default function CaseEditor({
label={messages.type}
className="mt-3 max-w-xs"
>
{testTypes.map((type, index) => (
<SelectItem key={type.uid} value={index}>
{testTypeMessages[type.uid]}
</SelectItem>
{testTypes.map((type) => (
<SelectItem key={type.uid}>{testTypeMessages[type.uid]}</SelectItem>
))}
</Select>
</div>
@@ -344,10 +341,8 @@ export default function CaseEditor({
label={messages.template}
className="mt-3 max-w-xs"
>
{templates.map((template, index) => (
<SelectItem key={template.uid} value={index}>
{messages[template.uid]}
</SelectItem>
{templates.map((template) => (
<SelectItem key={template.uid}>{messages[template.uid]}</SelectItem>
))}
</Select>
</div>

View File

@@ -1,4 +1,4 @@
import { Textarea, Button, Tooltip, Avatar } from '@nextui-org/react';
import { Textarea, Button, Tooltip, Avatar } from '@heroui/react';
import { CaseMessages, StepType } from '@/types/case';
import { Plus, Trash } from 'lucide-react';

View File

@@ -1,7 +1,7 @@
'use client';
import { useState, useEffect, useContext } from 'react';
import { title, subtitle } from '@/components/primitives';
import { Card, CardBody, Chip, Divider } from '@nextui-org/react';
import { Card, CardBody, Chip, Divider } from '@heroui/react';
import { Folder, Clipboard, FlaskConical } from 'lucide-react';
import { ProgressSeriesType } from '@/types/run';
import { HomeMessages } from './page';

View File

@@ -1,7 +1,7 @@
'use client';
import React from 'react';
import { useState, useEffect, useContext } from 'react';
import { Button, Input, Modal, ModalContent, ModalHeader, ModalBody, ModalFooter } from '@nextui-org/react';
import { Button, Input, Modal, ModalContent, ModalHeader, ModalBody, ModalFooter } from '@heroui/react';
import { TokenContext } from '@/utils/TokenProvider';
import { UserType } from '@/types/user';
import { searchUsers } from '@/utils/usersControl';

View File

@@ -1,5 +1,5 @@
import { useMemo, useCallback } from 'react';
import { Button, Table, TableHeader, TableColumn, TableBody, TableRow, TableCell } from '@nextui-org/react';
import { Button, Table, TableHeader, TableColumn, TableBody, TableRow, TableCell } from '@heroui/react';
import { UserType } from '@/types/user';
import Avatar from 'boring-avatars';
import { MembersMessages } from '@/types/member';

View File

@@ -1,7 +1,7 @@
'use client';
import React from 'react';
import { useState, useEffect, useContext } from 'react';
import { Button } from '@nextui-org/react';
import { Button } from '@heroui/react';
import { Plus } from 'lucide-react';
import { MemberType, UserType } from '@/types/user';
import { MembersMessages } from '@/types/member';

View File

@@ -12,7 +12,7 @@ import {
Dropdown,
DropdownMenu,
DropdownItem,
} from '@nextui-org/react';
} from '@heroui/react';
import { ChevronDown } from 'lucide-react';
import { MemberType, UserType } from '@/types/user';
import { memberRoles } from '@/config/selection';

View File

@@ -1,7 +1,7 @@
'use client';
import React from 'react';
import { useState, useEffect } from 'react';
import { Button, Input, Textarea, Modal, ModalContent, ModalHeader, ModalBody, ModalFooter } from '@nextui-org/react';
import { Button, Input, Textarea, Modal, ModalContent, ModalHeader, ModalBody, ModalFooter } from '@heroui/react';
import { RunType, RunsMessages } from '@/types/run';
type Props = {

View File

@@ -1,6 +1,6 @@
'use client';
import { useEffect, useState, useContext } from 'react';
import { Button } from '@nextui-org/react';
import { Button } from '@heroui/react';
import { Plus } from 'lucide-react';
import RunsTable from './RunsTable';
import { fetchRuns, createRun, updateRun, deleteRun } from './runsControl';

View File

@@ -12,7 +12,7 @@ import {
DropdownMenu,
DropdownItem,
SortDescriptor,
} from '@nextui-org/react';
} from '@heroui/react';
import { Link, NextUiLinkClasses } from '@/src/i18n/routing';
import { MoreVertical } from 'lucide-react';
import { RunsMessages, RunType } from '@/types/run';

View File

@@ -17,7 +17,8 @@ import {
Dropdown,
DropdownMenu,
DropdownItem,
} from '@nextui-org/react';
addToast,
} from '@heroui/react';
import { Save, Circle, ArrowLeft, Folder, ChevronDown, CopyPlus, CopyMinus, RotateCw } from 'lucide-react';
import RunProgressChart from './RunPregressDonutChart';
import TestCaseSelector from './TestCaseSelector';
@@ -35,7 +36,6 @@ import {
} from '../runsControl';
import { fetchFolders } from '../../folders/foldersControl';
import { TokenContext } from '@/utils/TokenProvider';
import { ToastContext } from '@/utils/ToastProvider';
import { useTheme } from 'next-themes';
import { useFormGuard } from '@/utils/formGuard';
import { PriorityMessages } from '@/types/priority';
@@ -75,7 +75,6 @@ export default function RunEditor({
locale,
}: Props) {
const tokenContext = useContext(TokenContext);
const toastContext = useContext(ToastContext);
const { theme, setTheme } = useTheme();
const [testRun, setTestRun] = useState<RunType>(defaultTestRun);
const [folders, setFolders] = useState<FolderType[]>([]);
@@ -174,7 +173,10 @@ export default function RunEditor({
await updateRunCases(tokenContext.token.access_token, Number(runId), testCases);
await initTestCases();
toastContext.showToast(messages.updatedTestRun, 'dark');
addToast({
title: 'Info',
description: messages.updatedTestRun,
});
setIsUpdating(false);
setIsDirty(false);
};
@@ -279,10 +281,8 @@ export default function RunEditor({
label={messages.status}
className="mt-3 max-w-xs"
>
{testRunStatus.map((status, index) => (
<SelectItem key={status.uid} value={index}>
{runStatusMessages[status.uid]}
</SelectItem>
{testRunStatus.map((status) => (
<SelectItem key={status.uid}>{runStatusMessages[status.uid]}</SelectItem>
))}
</Select>
</div>

View File

@@ -1,5 +1,5 @@
import { useState, useEffect, useContext } from 'react';
import { Button, Modal, ModalContent, ModalHeader, ModalBody, ModalFooter, Avatar, Textarea } from '@nextui-org/react';
import { Button, Modal, ModalContent, ModalHeader, ModalBody, ModalFooter, Avatar, Textarea } from '@heroui/react';
import { testTypes, templates } from '@/config/selection';
import { RunMessages } from '@/types/run';
import { CaseType, StepType } from '@/types/case';

View File

@@ -13,7 +13,7 @@ import {
DropdownItem,
Selection,
SortDescriptor,
} from '@nextui-org/react';
} from '@heroui/react';
import {
ChevronDown,
MoveDiagonal,

View File

@@ -1,7 +1,7 @@
'use client';
import React from 'react';
import { useState, useEffect, useContext } from 'react';
import { Button, Table, TableHeader, TableColumn, TableBody, TableRow, TableCell } from '@nextui-org/react';
import { Button, Table, TableHeader, TableColumn, TableBody, TableRow, TableCell } from '@heroui/react';
import Avatar from 'boring-avatars';
import { Pencil, Trash } from 'lucide-react';
import { SettingsMessages } from '@/types/settings';