diff --git a/frontend/messages/en.json b/frontend/messages/en.json index 07a0451..9e3c7a4 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -80,14 +80,11 @@ "projectList": "Project List", "project": "Project", "new_project": "New Project", - "edit_project": "Edit Project", - "delete_project": "Delete Project", "id": "ID", "publicity": "Publicity", "name": "Name", "detail": "Detail", "last_update": "Last update", - "actions": "Actions", "project_name": "Project Name", "project_detail": "Project Detail", "public": "Public", @@ -95,11 +92,8 @@ "if_you_make_public": "Making a project public makes it visible to users who are not project members.", "close": "Close", "create": "Create", - "update": "Update", "please_enter": "Please enter project name", - "no_projects_found": "No projects found", - "are_you_sure": "Are you sure you want to delete the project?", - "delete": "Delete" + "no_projects_found": "No projects found" }, "Project": { "home": "Home", diff --git a/frontend/messages/ja.json b/frontend/messages/ja.json index 03b9e94..04b1079 100644 --- a/frontend/messages/ja.json +++ b/frontend/messages/ja.json @@ -80,14 +80,11 @@ "projectList": "プロジェクト一覧", "project": "プロジェクト", "new_project": "新規プロジェクト", - "edit_project": "プロジェクトの編集", - "delete_project": "プロジェクトの削除", "id": "ID", "publicity": "公開", "name": "名前", "detail": "詳細", "last_update": "最終更新", - "actions": "アクション", "project_name": "プロジェクト名", "project_detail": "プロジェクト詳細", "public": "パブリック", @@ -95,11 +92,8 @@ "if_you_make_public": "プロジェクトをパブリックにすると、プロジェクトメンバーではないユーザーからも見えるようになります。", "close": "閉じる", "create": "作成", - "update": "更新", "please_enter": "プロジェクト名を入力してください", - "no_projects_found": "プロジェクトがありません", - "are_you_sure": "プロジェクトを削除してもよろしいですか?", - "delete": "削除" + "no_projects_found": "プロジェクトがありません" }, "Project": { "home": "ホーム", diff --git a/frontend/src/app/[locale]/projects/ProjectsPage.tsx b/frontend/src/app/[locale]/projects/ProjectsPage.tsx index a05d986..6ebd48b 100644 --- a/frontend/src/app/[locale]/projects/ProjectsPage.tsx +++ b/frontend/src/app/[locale]/projects/ProjectsPage.tsx @@ -6,8 +6,7 @@ import { TokenContext } from '@/utils/TokenProvider'; import { ProjectType, ProjectsMessages } from '@/types/project'; import ProjectsTable from './ProjectsTable'; import ProjectDialog from '@/components/ProjectDialog'; -import { fetchProjects, createProject, updateProject, deleteProject } from '@/utils/projectsControl'; -import DeleteConfirmDialog from '@/components/DeleteConfirmDialog'; +import { fetchProjects, createProject } from '@/utils/projectsControl'; export type Props = { messages: ProjectsMessages; @@ -16,7 +15,7 @@ export type Props = { export default function ProjectsPage({ messages, locale }: Props) { const context = useContext(TokenContext); - const [projects, setProjects] = useState([]); + const [projects, setProjects] = useState([]); useEffect(() => { async function fetchDataEffect() { @@ -47,47 +46,15 @@ export default function ProjectsPage({ messages, locale }: Props) { setEditingProject(null); }; - // delete confirm dialog - const [isDeleteConfirmDialogOpen, setIsDeleteConfirmDialogOpen] = useState(false); - const [deleteProjectId, setDeleteProjectId] = useState(null); - const closeDeleteConfirmDialog = () => { - setIsDeleteConfirmDialogOpen(false); - setDeleteProjectId(null); - }; - const onSubmit = async (name: string, detail: string, isPublic: boolean) => { - if (editingProject) { - const updatedProject = await updateProject(context.token.access_token, editingProject.id, name, detail, isPublic); - const updatedProjects = projects.map((project) => (project.id === updatedProject.id ? updatedProject : project)); - setProjects(updatedProjects); - } else { - const newProject = await createProject(context.token.access_token, name, detail, isPublic); - setProjects([...projects, newProject]); + const newProject = await createProject(context.token.access_token, name, detail, isPublic); + setProjects([...projects, newProject]); - // refresh project roles - context.refreshProjectRoles(); - } + // refresh project roles + context.refreshProjectRoles(); closeDialog(); }; - const onEditClick = (project: ProjectType) => { - setEditingProject(project); - setIsProjectDialogOpen(true); - }; - - const onDeleteClick = (projectId: number) => { - setDeleteProjectId(projectId); - setIsDeleteConfirmDialogOpen(true); - }; - - const onConfirm = async () => { - if (deleteProjectId) { - await deleteProject(context.token.access_token, deleteProjectId); - setProjects(projects.filter((project) => project.id !== deleteProjectId)); - closeDeleteConfirmDialog(); - } - }; - return (
@@ -99,13 +66,7 @@ export default function ProjectsPage({ messages, locale }: Props) {
- + - - ); } diff --git a/frontend/src/app/[locale]/projects/ProjectsTable.tsx b/frontend/src/app/[locale]/projects/ProjectsTable.tsx index 63afc24..d7ab4d0 100644 --- a/frontend/src/app/[locale]/projects/ProjectsTable.tsx +++ b/frontend/src/app/[locale]/projects/ProjectsTable.tsx @@ -1,39 +1,22 @@ import { useState, useMemo, useCallback } from 'react'; -import { - Table, - TableHeader, - TableColumn, - TableBody, - TableRow, - TableCell, - Button, - DropdownTrigger, - Dropdown, - DropdownMenu, - DropdownItem, - SortDescriptor, -} from '@nextui-org/react'; +import { Table, TableHeader, TableColumn, TableBody, TableRow, TableCell, SortDescriptor } from '@nextui-org/react'; import { Link, NextUiLinkClasses } from '@/src/navigation'; -import { MoreVertical } from 'lucide-react'; import { ProjectType, ProjectsMessages } from '@/types/project'; import dayjs from 'dayjs'; import PublicityChip from '@/components/PublicityChip'; type Props = { projects: ProjectType[]; - onEditProject: (project: ProjectType) => void; - onDeleteProject: (projectId: number) => void; messages: ProjectsMessages; locale: string; }; -export default function ProjectsTable({ projects, onEditProject, onDeleteProject, messages, locale }: Props) { +export default function ProjectsTable({ projects, messages, locale }: Props) { const headerColumns = [ { name: messages.id, uid: 'id', sortable: true }, { name: messages.publicity, uid: 'isPublic', sortable: true }, { name: messages.name, uid: 'name', sortable: true }, { name: messages.lastUpdate, uid: 'updatedAt', sortable: true }, - { name: messages.actions, uid: 'actions' }, ]; const [sortDescriptor, setSortDescriptor] = useState({ @@ -78,22 +61,6 @@ export default function ProjectsTable({ projects, onEditProject, onDeleteProject ); case 'updatedAt': return {dayjs(cellValue).format('YYYY/MM/DD HH:mm')}; - case 'actions': - return ( - - - - - - onEditProject(project)}>{messages.editProject} - onDeleteProject(project.id)}> - {messages.deleteProject} - - - - ); default: return cellValue; } diff --git a/frontend/src/app/[locale]/projects/page.tsx b/frontend/src/app/[locale]/projects/page.tsx index edf870f..697fd80 100644 --- a/frontend/src/app/[locale]/projects/page.tsx +++ b/frontend/src/app/[locale]/projects/page.tsx @@ -7,14 +7,11 @@ export default function Page(params: { locale: string }) { projectList: t('projectList'), project: t('project'), newProject: t('new_project'), - editProject: t('edit_project'), - deleteProject: t('delete_project'), id: t('id'), publicity: t('publicity'), name: t('name'), detail: t('detail'), lastUpdate: t('last_update'), - actions: t('actions'), projectName: t('project_name'), projectDetail: t('project_detail'), public: t('public'), @@ -22,11 +19,8 @@ export default function Page(params: { locale: string }) { ifYouMakePublic: t('if_you_make_public'), close: t('close'), create: t('create'), - update: t('update'), pleaseEnter: t('please_enter'), noProjectsFound: t('no_projects_found'), - areYouSure: t('are_you_sure'), - delete: t('delete'), }; return ( <> diff --git a/frontend/types/project.ts b/frontend/types/project.ts index 64d5e16..701f544 100644 --- a/frontend/types/project.ts +++ b/frontend/types/project.ts @@ -16,14 +16,11 @@ export type ProjectType = { export type ProjectsMessages = { projectList: string; newProject: string; - editProject: string; - deleteProject: string; id: string; publicity: string; name: string; detail: string; lastUpdate: string; - actions: string; projectName: string; projectDetail: string; public: string; @@ -31,11 +28,8 @@ export type ProjectsMessages = { ifYouMakePublic: string; close: string; create: string; - update: string; pleaseEnter: string; noProjectsFound: string; - areYouSure: string; - delete: string; }; export type ProjectMessages = {