From 97b132e5abe4f164c493f0eb489c44ed40642b4c Mon Sep 17 00:00:00 2001 From: miteruzo Date: Mon, 13 Jul 2026 01:31:45 +0900 Subject: [PATCH] #399 --- .../posts/import/PostImportRowDialog.tsx | 12 ++++++--- .../posts/import/PostImportRowSummary.tsx | 17 ++++--------- .../posts/import/postImportRowStatus.ts | 24 ++++++++++++++++++ .../src/pages/posts/PostImportSourcePage.tsx | 25 ++++++++----------- 4 files changed, 48 insertions(+), 30 deletions(-) create mode 100644 frontend/src/components/posts/import/postImportRowStatus.ts diff --git a/frontend/src/components/posts/import/PostImportRowDialog.tsx b/frontend/src/components/posts/import/PostImportRowDialog.tsx index 0ac4674..f0541b6 100644 --- a/frontend/src/components/posts/import/PostImportRowDialog.tsx +++ b/frontend/src/components/posts/import/PostImportRowDialog.tsx @@ -4,6 +4,7 @@ import FieldWarning from '@/components/common/FieldWarning' import FormField from '@/components/common/FormField' import PostImportStatusBadge from '@/components/posts/import/PostImportStatusBadge' import ThumbnailPreview from '@/components/posts/import/ThumbnailPreview' +import { effectivePostImportStatus } from '@/components/posts/import/postImportRowStatus' import { Button } from '@/components/ui/button' import { Dialog, DialogContent, @@ -42,6 +43,12 @@ const originOf = ( ): PostImportOrigin => row.provenance[field] ?? 'automatic' +const originalCreatedOrigin = (row: PostImportRow): PostImportOrigin => + originOf (row, 'originalCreatedFrom') === 'manual' + || originOf (row, 'originalCreatedBefore') === 'manual' + ? 'manual' + : 'automatic' + const buildDraft = (row: PostImportRow): Draft => ({ url: row.url, title: String (row.attributes.title ?? ''), @@ -102,8 +109,7 @@ const PostImportRowDialog: FC = ( url={draft.thumbnailBase} className="h-28 w-28"/>
- - +
@@ -133,7 +139,7 @@ const PostImportRowDialog: FC = ( )} onChange={value => update ('thumbnailBase', value)}/> } + labelAddon={} originalCreatedFrom={draft.originalCreatedFrom || null} setOriginalCreatedFrom={value => update ('originalCreatedFrom', value ?? '')} originalCreatedBefore={draft.originalCreatedBefore || null} diff --git a/frontend/src/components/posts/import/PostImportRowSummary.tsx b/frontend/src/components/posts/import/PostImportRowSummary.tsx index 474752f..ddf372e 100644 --- a/frontend/src/components/posts/import/PostImportRowSummary.tsx +++ b/frontend/src/components/posts/import/PostImportRowSummary.tsx @@ -4,6 +4,7 @@ import { cn } from '@/lib/utils' import PrefetchLink from '@/components/PrefetchLink' import PostImportStatusBadge from '@/components/posts/import/PostImportStatusBadge' import ThumbnailPreview from '@/components/posts/import/ThumbnailPreview' +import { effectivePostImportStatus } from '@/components/posts/import/postImportRowStatus' import type { FC } from 'react' @@ -14,7 +15,7 @@ type Props = { onEdit: () => void } const toneClass = (row: PostImportRow): string[] => { - const value = row.importStatus ?? row.status + const value = effectivePostImportStatus (row) switch (value) { case 'created': @@ -63,7 +64,7 @@ const summaryDate = (row: PostImportRow): string => const PostImportRowSummary: FC = ({ row, onEdit }) => { const error = summaryError (row) const warning = error == null ? summaryWarning (row) : null - const importStatus = row.importStatus ?? 'pending' + const effectiveStatus = effectivePostImportStatus (row) return ( <> @@ -77,7 +78,6 @@ const PostImportRowSummary: FC = ({ row, onEdit }) => { )}>
#{row.sourceRow}
-
= ({ row, onEdit }) => { )}
- -
-
- {error - ? - : (warning ? : )} +
- - - {warning && } +
{row.createdPostId && ( { + switch (row.importStatus) + { + case 'created': + case 'skipped': + case 'failed': + return row.importStatus + default: + return row.status + } +} diff --git a/frontend/src/pages/posts/PostImportSourcePage.tsx b/frontend/src/pages/posts/PostImportSourcePage.tsx index 437f387..16749bd 100644 --- a/frontend/src/pages/posts/PostImportSourcePage.tsx +++ b/frontend/src/pages/posts/PostImportSourcePage.tsx @@ -151,26 +151,21 @@ const PostImportSourcePage: FC = ({ user }) => { }}/>)} -
+
    {sourceIssues.map (issue => ( -
    +
  • {issue.sourceRow} 行目: {issue.message}
    -
    {issue.url}
    -
  • ))} -
+
{issue.url}
+ ))} + -
-
入力件数 {lineCount} / {MAX_ROWS}
-
- -
+
+
+ 入力行数 {lineCount} / {MAX_ROWS} +