diff --git a/packages/admin/src/components/app.css b/packages/admin/src/components/app.css index b29a6c7dd9..0290c5817b 100644 --- a/packages/admin/src/components/app.css +++ b/packages/admin/src/components/app.css @@ -176,7 +176,11 @@ body { font: inherit; } -.admin-actions button { +/* 「← 一覧に戻る」など詳細画面の戻るボタンもアクションボタンと同一ルールに + 統合して見た目を完全一致させる(font を指定すると UA 既定より大きくなり + 一回り大きく見えたため、両者で font 未指定=UA 既定に揃える)。 */ +.admin-actions button, +.admin-back-button { padding: 0.4rem 0.9rem; border: 1px solid hsl(220, 15%, 75%); border-radius: 0.4rem; @@ -184,6 +188,14 @@ body { cursor: pointer; } +.admin-back-button { + margin-bottom: 1rem; +} + +.admin-back-button:hover { + background: hsl(220, 15%, 96%); +} + .admin-confirm { display: inline-flex; align-items: center; diff --git a/packages/admin/src/components/bug-reports-view.jsx b/packages/admin/src/components/bug-reports-view.jsx index bf2b1a4c6d..d077f8fc08 100644 --- a/packages/admin/src/components/bug-reports-view.jsx +++ b/packages/admin/src/components/bug-reports-view.jsx @@ -116,6 +116,7 @@ const BugReportDetail = ({reportId, stage, onBack, onChanged}) => { return (
diff --git a/packages/admin/test/unit/shared-assignments-view.test.jsx b/packages/admin/test/unit/shared-assignments-view.test.jsx index 0bb892bf0f..ffcdc1511d 100644 --- a/packages/admin/test/unit/shared-assignments-view.test.jsx +++ b/packages/admin/test/unit/shared-assignments-view.test.jsx @@ -148,4 +148,27 @@ describe('SharedAssignmentsView (issue #1083)', () => { expect(mockSetStatus).not.toHaveBeenCalled(); expect(screen.queryByTestId('shared-admin-confirm')).not.toBeInTheDocument(); }); + + test('限定公開で未入力の属性は undefined でなく「未指定」と表示する (レビュー指摘)', async () => { + // 限定公開は authorName / schoolLevel / subject 等を省略できる + // (キーそのものが無い=undefined になる)。 + mockFetchDetail.mockResolvedValue({ + sharedId: 's1', + title: 'smoke限定公開', + status: 'published', + visibility: 'limited', + tags: [], + reuseCount: 0, + pages: [{text: 'ページ1', imageUrl: null}], + starterUrl: null + }); + render(); + await waitFor(() => screen.getByTestId('shared-admin-queue-item-s1')); + fireEvent.click(screen.getByTestId('shared-admin-queue-item-s1')); + await waitFor(() => screen.getByTestId('shared-admin-detail')); + + const detailEl = screen.getByTestId('shared-admin-detail'); + expect(detailEl.textContent).not.toContain('undefined'); + expect(screen.getByTestId('shared-admin-credit').textContent).toContain('未指定'); + }); });