From 9bff6e5f2bc265a9acc966c3d6744f818586c215 Mon Sep 17 00:00:00 2001 From: "smalruby3-editor-bot[bot]" <297607354+smalruby3-editor-bot[bot]@users.noreply.github.com> Date: Sun, 26 Jul 2026 12:11:22 +0000 Subject: [PATCH 1/2] =?UTF-8?q?feat(gui):=20=E3=81=8A=E7=9F=A5=E3=82=89?= =?UTF-8?q?=E3=81=9B=E3=83=91=E3=83=8D=E3=83=AB=E3=81=AB=20=E2=8B=AF=20?= =?UTF-8?q?=E3=83=A1=E3=83=8B=E3=83=A5=E3=83=BC=20+=20=E4=B8=80=E8=A6=A7?= =?UTF-8?q?=E3=83=9A=E3=83=BC=E3=82=B8=E3=81=AE=E3=83=91=E3=83=B3=E3=81=8F?= =?UTF-8?q?=E3=81=9A/=E6=88=BB=E3=82=8B=20(#1111=20=E3=83=AC=E3=83=93?= =?UTF-8?q?=E3=83=A5=E3=83=BC)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 人間レビュー指摘への対応: 1) パネルヘッダーに ⋯(三点)メニューを追加(参考 UI 準拠) - 「すべて既読にする」(未読 0 で無効)/「お知らせを開く」(全件一覧) - 一覧は件数に関係なく開ける(旧「5 件以上のときだけ すべて見る」を廃止) - パネルを開くだけでは既読にせず、既読は ⋯「すべて既読にする」で明示 (handleMarkAllRead を hook に追加。in-memory readAt/キャッシュ/バッジを更新) 2) 全件一覧ページのナビゲーション(ポリシー化) - パンくずを「クラス管理 > お知らせ」に(先頭「クラス管理」でトップ= クラス一覧へ戻れる)。testid classroom-breadcrumb-top - キャンセルが不適切な画面なので左下に「戻る」ボタン (classroom-notifications-back → トップへ) docs: ui-ux §1.8 の testid/挙動を更新、集約スクショ 0102 を ⋯ メニュー つきで撮り直し。 検証: jest(notifications/list/hook/avatar 28件 + admin 43件)+ headless 8/8(開くだけでは未読維持・⋯ から既読/一覧・<5件でも一覧到達・パンくず 「クラス管理」・左下戻る)。gui/admin lint クリーン。 Co-Authored-By: Claude Opus 4.8 (1M context) --- .../screenshots/0102-notification-panel.png | Bin 70728 -> 65970 bytes docs/classroom/ui-ux.md | 14 +- .../classroom-teacher-modal.css | 98 +++++++++--- .../classroom-teacher-modal.jsx | 8 +- .../teacher-notifications-list.jsx | 21 ++- .../teacher-notifications.jsx | 151 ++++++++++++++---- .../src/containers/use-teacher-classroom.js | 1 + .../containers/use-teacher-notifications.js | 36 +++-- packages/scratch-gui/src/locales/ja-Hira.js | 5 +- packages/scratch-gui/src/locales/ja.js | 5 +- .../teacher-notifications-list.test.jsx | 16 +- .../components/teacher-notifications.test.jsx | 34 ++-- .../use-teacher-notifications.test.js | 23 ++- 13 files changed, 318 insertions(+), 94 deletions(-) diff --git a/docs/classroom-notification-center/screenshots/0102-notification-panel.png b/docs/classroom-notification-center/screenshots/0102-notification-panel.png index a49ad33901fe9bb386e0e53d121d7b83ea79d1c1..6f7cb06f2881f8c6f1801e1668d76b98eaadf2cf 100644 GIT binary patch literal 65970 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 literal 70728 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 お知らせ**」パンくず(先頭「クラス管理」でトップ=クラス一覧へ戻れる)+ **左下に「戻る」ボタン**(キャンセルが不適切な画面のポリシー) - **取得は 1 日 1 回**(コスト削減): その日はじめてクラス管理を開いたときだけ `GET /notifications` を 1 回呼び、localStorage に日付つきでキャッシュ。同じ日の再オープンは API を叩かない(旧 60 秒ポーリングは廃止)。共有 PC 対策として先生メールでキャッシュを識別。取得エラーはクラス管理本体に影響させない(表示しない)。※その日の初回取得後に届いたお知らせは翌日反映(運営連絡は多くて週 1 回程度の前提) - 送信側は Admin SPA(クラス詳細の「先生へのお知らせ」フォーム → `POST /admin/notifications`)。`docs/admin/README.md` を参照 @@ -186,12 +187,17 @@ Google または Microsoft アカウントでサインインする画面。先 | ログアウト | `classroom-teacher-logout` | アカウントメニュー内 | | ベルボタン | `classroom-notifications-button` | クリックでパネル開閉 | | 未読バッジ | `classroom-notifications-badge` | 未読数(10 以上は「9+」)。未読 0 で非表示 | -| 一覧パネル | `classroom-notifications-panel` | 先頭 5 件 | -| すべて見る | `classroom-notifications-see-all` | 全件一覧ページへ(6 件以上のとき) | +| 一覧パネル | `classroom-notifications-panel` | 先頭 5 件プレビュー | +| ⋯ メニューボタン | `classroom-notifications-menu-button` | パネルヘッダー右の三点 | +| ⋯ メニュー | `classroom-notifications-menu` | — | +| すべて既読にする | `classroom-notifications-mark-all-read` | 全件既読(未読 0 で無効) | +| お知らせを開く | `classroom-notifications-open-all` | 全件一覧ページへ(件数不問) | | お知らせ 1 件(パネル) | `classroom-notification-item-{notificationId}` | クリックでリンク先へジャンプ + パネルを閉じる | | 未読ドット | `classroom-notification-unread-dot` | 未読アイテムのみ | | 空メッセージ | `classroom-notifications-empty` | お知らせ 0 件のとき | | 全件一覧ページ | `classroom-notifications-page` | `teacher-notifications` フェーズ | +| パンくず先頭 | `classroom-breadcrumb-top` | 「クラス管理」→ トップ(クラス一覧)へ | +| 左下戻る | `classroom-notifications-back` | トップ(クラス一覧)へ戻る | | ページ内 1 件 | `classroom-notification-page-item-{notificationId}` | クリックでリンク先へジャンプ | | ページャ | `classroom-notifications-pager` / `-prev` / `-next` | 10 件/ページ | diff --git a/packages/scratch-gui/src/components/classroom-teacher-modal/classroom-teacher-modal.css b/packages/scratch-gui/src/components/classroom-teacher-modal/classroom-teacher-modal.css index c7953a3ce3..f312fed02d 100644 --- a/packages/scratch-gui/src/components/classroom-teacher-modal/classroom-teacher-modal.css +++ b/packages/scratch-gui/src/components/classroom-teacher-modal/classroom-teacher-modal.css @@ -555,12 +555,71 @@ } .notifications-header { + display: flex; + align-items: center; + justify-content: space-between; padding: 0.6rem 0.8rem; font-size: 0.9rem; font-weight: bold; border-bottom: 1px solid #e0e0e0; } +/* ヘッダーの ⋯ メニュー(すべて既読にする / お知らせを開く)。 */ +.notifications-menu { + position: relative; +} + +.notifications-menu-button { + border: none; + background: none; + color: #888; + font-size: 1.1rem; + line-height: 1; + padding: 0.1rem 0.3rem; + border-radius: 0.3rem; + cursor: pointer; +} + +.notifications-menu-button:hover { + background: #f0f0f6; + color: #575e75; +} + +.notifications-menu-popup { + position: absolute; + top: 1.8rem; + right: 0; + z-index: 1002; + min-width: 12rem; + background: white; + border: 1px solid #d9d9d9; + border-radius: 0.5rem; + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2); + overflow: hidden; +} + +.notifications-menu-item { + display: block; + width: 100%; + padding: 0.6rem 0.9rem; + border: none; + background: none; + text-align: left; + font-size: 0.85rem; + font-weight: normal; + color: #575e75; + cursor: pointer; +} + +.notifications-menu-item:hover:not(:disabled) { + background: #f0f6ff; +} + +.notifications-menu-item:disabled { + color: #bbb; + cursor: default; +} + .notifications-empty { padding: 1rem; font-size: 0.85rem; @@ -626,25 +685,7 @@ padding: 1.25rem 2rem 0; } -/* お知らせパネルの「すべて見る」リンク + 全件一覧ページ + ページネーション。 */ -.notifications-see-all { - display: block; - width: 100%; - padding: 0.6rem 0.8rem; - border: none; - border-top: 1px solid #e0e0e0; - background: none; - text-align: center; - font-size: 0.8rem; - font-weight: bold; - color: #4c97ff; - cursor: pointer; -} - -.notifications-see-all:hover { - background-color: #f0f6ff; -} - +/* お知らせ全件一覧ページ + ページネーション。 */ .notifications-page { padding: 1.25rem 2rem; max-width: 48rem; @@ -709,6 +750,25 @@ font-variant-numeric: tabular-nums; } +/* キャンセルが不適切な画面の左下戻るボタン(ポリシー・#1111 レビュー)。 */ +.notifications-page-footer { + margin-top: 1.5rem; +} + +.notifications-back-button { + border: 1px solid #d0d7e3; + border-radius: 0.4rem; + background: white; + color: #575e75; + padding: 0.4rem 1.1rem; + font-size: 0.9rem; + cursor: pointer; +} + +.notifications-back-button:hover { + background: #f0f6ff; +} + .google-courses-view { padding: 1.25rem 2rem; max-width: 60rem; diff --git a/packages/scratch-gui/src/components/classroom-teacher-modal/classroom-teacher-modal.jsx b/packages/scratch-gui/src/components/classroom-teacher-modal/classroom-teacher-modal.jsx index 36da14724d..d18feba23d 100644 --- a/packages/scratch-gui/src/components/classroom-teacher-modal/classroom-teacher-modal.jsx +++ b/packages/scratch-gui/src/components/classroom-teacher-modal/classroom-teacher-modal.jsx @@ -209,12 +209,14 @@ const ClassroomTeacherModal = ({ containerProps, onClose }) => { return (

+ {/* ポリシー: パンくずの先頭「クラス管理」でいつでもトップ + (クラス一覧)へ戻れる(#1111 レビュー)。 */} {
@@ -498,6 +501,7 @@ const ClassroomTeacherModal = ({ containerProps, onClose }) => { isOpen={notificationsCenter.isOpen} notifications={notificationsCenter.notifications} unreadCount={notificationsCenter.unreadCount} + onMarkAllRead={notificationsCenter.handleMarkAllRead} onOpenLink={notificationsCenter.handleOpenLink} onShowAll={notificationsCenter.handleShowAll} onToggle={notificationsCenter.handleToggleNotifications} diff --git a/packages/scratch-gui/src/components/classroom-teacher-modal/teacher-notifications-list.jsx b/packages/scratch-gui/src/components/classroom-teacher-modal/teacher-notifications-list.jsx index fc0897b148..ecbf9e1801 100644 --- a/packages/scratch-gui/src/components/classroom-teacher-modal/teacher-notifications-list.jsx +++ b/packages/scratch-gui/src/components/classroom-teacher-modal/teacher-notifications-list.jsx @@ -52,7 +52,7 @@ NotificationRow.propTypes = { onOpenLink: PropTypes.func.isRequired, }; -const TeacherNotificationsList = ({ notifications, onOpenLink }) => { +const TeacherNotificationsList = ({ notifications, onBack, onOpenLink }) => { const [page, setPage] = useState(0); const totalPages = Math.max(1, Math.ceil(notifications.length / PAGE_SIZE)); const clampedPage = Math.min(page, totalPages - 1); @@ -114,12 +114,31 @@ const TeacherNotificationsList = ({ notifications, onOpenLink }) => { )} + {/* キャンセルが不適切な画面なので、左下に戻るボタンを置く(ポリシー・ + #1111 レビュー)。パンくずの「クラス管理」と同じくトップへ戻る。 */} + {onBack ? ( +
+ +
+ ) : null} ); }; TeacherNotificationsList.propTypes = { notifications: PropTypes.arrayOf(PropTypes.object).isRequired, + onBack: PropTypes.func, onOpenLink: PropTypes.func.isRequired, }; diff --git a/packages/scratch-gui/src/components/classroom-teacher-modal/teacher-notifications.jsx b/packages/scratch-gui/src/components/classroom-teacher-modal/teacher-notifications.jsx index 7414dbc8bd..338bf4154c 100644 --- a/packages/scratch-gui/src/components/classroom-teacher-modal/teacher-notifications.jsx +++ b/packages/scratch-gui/src/components/classroom-teacher-modal/teacher-notifications.jsx @@ -3,10 +3,11 @@ * * クラス管理タイトルバー右上、アバターの左に置く**白一色のベル**ボタン * (+ 未読バッジ)。クリックでドロップダウンパネルを開き、**先頭 5 件**の - * お知らせを表示。6 件以上あるときは「すべて見る」で全件一覧ページへ遷移。 + * お知らせを表示。ヘッダーの ⋯ メニューから「すべて既読にする」「お知らせを + * 開く(全件一覧ページ)」を選べる(件数に関係なく一覧へ行ける・レビュー指摘)。 */ import PropTypes from 'prop-types'; -import React, { useCallback } from 'react'; +import React, { useCallback, useEffect, useRef, useState } from 'react'; import { defineMessages, useIntl, FormattedMessage } from 'react-intl'; import styles from './classroom-teacher-modal.css'; @@ -19,6 +20,11 @@ const messages = defineMessages({ description: 'Aria label for the notification bell button in the class management title bar', id: 'gui.classroom.notifications.buttonLabel', }, + menuLabel: { + defaultMessage: 'Notification menu', + description: 'Aria label for the three-dot menu in the notification panel', + id: 'gui.classroom.notifications.menuLabel', + }, }); // ローカルタイムで表示する(ISO の slice だと UTC のまま出て日本では 9 時間 @@ -80,10 +86,96 @@ NotificationItem.propTypes = { onOpenLink: PropTypes.func.isRequired, }; -const TeacherNotifications = ({ isOpen, notifications, unreadCount, onOpenLink, onShowAll, onToggle }) => { +// パネルヘッダーの ⋯ メニュー(すべて既読にする / お知らせを開く)。 +const PanelMenu = ({ unreadCount, onMarkAllRead, onShowAll }) => { + const intl = useIntl(); + const [open, setOpen] = useState(false); + const ref = useRef(null); + + useEffect(() => { + if (!open) return () => {}; + const onDown = (e) => { + if (ref.current && !ref.current.contains(e.target)) setOpen(false); + }; + document.addEventListener('mousedown', onDown); + return () => document.removeEventListener('mousedown', onDown); + }, [open]); + + const toggle = useCallback(() => setOpen((o) => !o), []); + const handleMark = useCallback(() => { + setOpen(false); + onMarkAllRead(); + }, [onMarkAllRead]); + const handleOpen = useCallback(() => { + setOpen(false); + onShowAll(); + }, [onShowAll]); + + return ( +
+ + {open && ( +
+ + +
+ )} +
+ ); +}; + +PanelMenu.propTypes = { + unreadCount: PropTypes.number.isRequired, + onMarkAllRead: PropTypes.func.isRequired, + onShowAll: PropTypes.func.isRequired, +}; + +const TeacherNotifications = ({ + isOpen, + notifications, + unreadCount, + onMarkAllRead, + onOpenLink, + onShowAll, + onToggle, +}) => { const intl = useIntl(); const preview = notifications.slice(0, PANEL_PREVIEW_COUNT); - const hasMore = notifications.length > PANEL_PREVIEW_COUNT; return ( @@ -104,10 +196,17 @@ const TeacherNotifications = ({ isOpen, notifications, unreadCount, onOpenLink, {isOpen && (
- + + +
{notifications.length === 0 ? ( @@ -119,32 +218,15 @@ const TeacherNotifications = ({ isOpen, notifications, unreadCount, onOpenLink, />
) : ( - -
    - {preview.map((notification) => ( - - ))} -
- {hasMore && ( - - )} -
+
    + {preview.map((notification) => ( + + ))} +
)} )} @@ -156,6 +238,7 @@ TeacherNotifications.propTypes = { isOpen: PropTypes.bool.isRequired, notifications: PropTypes.arrayOf(PropTypes.object).isRequired, unreadCount: PropTypes.number.isRequired, + onMarkAllRead: PropTypes.func.isRequired, onOpenLink: PropTypes.func.isRequired, onShowAll: PropTypes.func.isRequired, onToggle: PropTypes.func.isRequired, diff --git a/packages/scratch-gui/src/containers/use-teacher-classroom.js b/packages/scratch-gui/src/containers/use-teacher-classroom.js index d1e58ba1e5..ef60e333bc 100644 --- a/packages/scratch-gui/src/containers/use-teacher-classroom.js +++ b/packages/scratch-gui/src/containers/use-teacher-classroom.js @@ -312,6 +312,7 @@ const useTeacherClassroom = ({ unreadCount: notifications.unreadCount, isOpen: notifications.isOpen, handleToggleNotifications: notifications.handleToggleNotifications, + handleMarkAllRead: notifications.handleMarkAllRead, handleOpenLink: handleOpenNotificationLink, handleShowAll: handleShowAllNotifications, }, diff --git a/packages/scratch-gui/src/containers/use-teacher-notifications.js b/packages/scratch-gui/src/containers/use-teacher-notifications.js index 4e1844bb92..031ba3c241 100644 --- a/packages/scratch-gui/src/containers/use-teacher-notifications.js +++ b/packages/scratch-gui/src/containers/use-teacher-notifications.js @@ -98,23 +98,30 @@ const useTeacherNotifications = ({ idToken, handleTeacher401 }) => { }; }, [idToken, teacherKey, handleTeacher401]); - const handleToggleNotifications = useCallback(() => { - // 副作用は state updater の外(StrictMode / concurrent での二重実行対策)。 - const next = !isOpen; - if (next && unreadCount > 0) { - // パネルを開いた = すべて見た。バッジを即消し、サーバーへ既読を永続化。 - // 当日キャッシュの未読数も 0 にして同日再オープンと整合させる(未読 - // ドットは今の表示中だけ残すため in-memory の readAt は書き換えない)。 - setUnreadCount(0); - classroomAPI.markNotificationsRead(idToken).catch(() => {}); - const cache = readCache(); - if (cache) writeCache({ ...cache, unreadCount: 0 }); - } - setIsOpen(next); - }, [idToken, isOpen, unreadCount]); + // パネルは開くだけ(自動既読はしない)。既読はパネルの ⋯ メニュー + // 「すべて既読にする」で明示的に行う(#1111 レビュー: 参考 UI 準拠)。 + const handleToggleNotifications = useCallback(() => setIsOpen((o) => !o), []); const handleCloseNotifications = useCallback(() => setIsOpen(false), []); + // ⋯ メニュー「すべて既読にする」: バッジを消し、サーバーへ既読を永続化し、 + // in-memory の readAt とキャッシュも既読に揃える(同日再オープンと整合)。 + const handleMarkAllRead = useCallback(() => { + if (unreadCount === 0) return; + const now = new Date().toISOString(); + setUnreadCount(0); + setNotifications((prev) => prev.map((n) => (n.readAt ? n : { ...n, readAt: now }))); + classroomAPI.markNotificationsRead(idToken).catch(() => {}); + const cache = readCache(); + if (cache) { + writeCache({ + ...cache, + unreadCount: 0, + notifications: (cache.notifications || []).map((n) => (n.readAt ? n : { ...n, readAt: now })), + }); + } + }, [idToken, unreadCount]); + // Reset in-memory state (logout / go-to-login). 日次キャッシュは残す // (同じ先生が同じ日に入り直しても取得は 1 回に保つ)。 const resetNotifications = useCallback(() => { @@ -129,6 +136,7 @@ const useTeacherNotifications = ({ idToken, handleTeacher401 }) => { isOpen, handleToggleNotifications, handleCloseNotifications, + handleMarkAllRead, resetNotifications, }; }; diff --git a/packages/scratch-gui/src/locales/ja-Hira.js b/packages/scratch-gui/src/locales/ja-Hira.js index 13b74b8a14..0f00609dda 100644 --- a/packages/scratch-gui/src/locales/ja-Hira.js +++ b/packages/scratch-gui/src/locales/ja-Hira.js @@ -262,7 +262,10 @@ export default { 'gui.classroom.notifications.title': 'おしらせ', 'gui.classroom.notifications.empty': 'おしらせは ありません', 'gui.classroom.avatar.buttonLabel': 'アカウントメニュー', - 'gui.classroom.notifications.seeAll': 'すべて みる({count}けん)', + 'gui.classroom.notifications.menuLabel': 'おしらせメニュー', + 'gui.classroom.notifications.markAllRead': 'すべて きどくにする', + 'gui.classroom.notifications.back': 'もどる', + 'gui.classroom.notifications.openAll': 'おしらせを ひらく', 'gui.classroom.notifications.pageIndicator': '{current} / {total}', 'gui.classroom.classList.title': 'あなたのクラス', 'gui.classroom.classList.hint': diff --git a/packages/scratch-gui/src/locales/ja.js b/packages/scratch-gui/src/locales/ja.js index 8f1be87753..a018aff8d6 100644 --- a/packages/scratch-gui/src/locales/ja.js +++ b/packages/scratch-gui/src/locales/ja.js @@ -257,7 +257,10 @@ export default { 'gui.classroom.notifications.title': 'お知らせ', 'gui.classroom.notifications.empty': 'お知らせはありません', 'gui.classroom.avatar.buttonLabel': 'アカウントメニュー', - 'gui.classroom.notifications.seeAll': 'すべて見る({count}件)', + 'gui.classroom.notifications.menuLabel': 'お知らせメニュー', + 'gui.classroom.notifications.markAllRead': 'すべて既読にする', + 'gui.classroom.notifications.back': '戻る', + 'gui.classroom.notifications.openAll': 'お知らせを開く', 'gui.classroom.notifications.pageIndicator': '{current} / {total}', 'gui.classroom.classList.title': 'あなたのクラス', 'gui.classroom.classList.hint': diff --git a/packages/scratch-gui/test/unit/components/teacher-notifications-list.test.jsx b/packages/scratch-gui/test/unit/components/teacher-notifications-list.test.jsx index bad0690290..4a10602bce 100644 --- a/packages/scratch-gui/test/unit/components/teacher-notifications-list.test.jsx +++ b/packages/scratch-gui/test/unit/components/teacher-notifications-list.test.jsx @@ -16,10 +16,10 @@ const many = (n) => createdAt: '2026-07-26T00:00:00.000Z', })); -const renderList = (notifications, onOpenLink = jest.fn()) => +const renderList = (notifications, onOpenLink = jest.fn(), onBack = jest.fn()) => render( - + , ); @@ -60,4 +60,16 @@ describe('TeacherNotificationsList (#1111 レビュー・10件/頁)', () => { fireEvent.click(screen.getByTestId('classroom-notification-page-item-id-1')); expect(onOpenLink).toHaveBeenCalledWith({ kind: 'classroom', classroomId: 'c1' }); }); + + test('左下の戻るボタンが onBack を呼ぶ (#1111 レビュー)', () => { + const onBack = jest.fn(); + renderList(many(3), jest.fn(), onBack); + fireEvent.click(screen.getByTestId('classroom-notifications-back')); + expect(onBack).toHaveBeenCalled(); + }); + + test('空でも戻るボタンは出る', () => { + renderList([]); + expect(screen.getByTestId('classroom-notifications-back')).toBeInTheDocument(); + }); }); diff --git a/packages/scratch-gui/test/unit/components/teacher-notifications.test.jsx b/packages/scratch-gui/test/unit/components/teacher-notifications.test.jsx index 0ba07e39fb..ac26274887 100644 --- a/packages/scratch-gui/test/unit/components/teacher-notifications.test.jsx +++ b/packages/scratch-gui/test/unit/components/teacher-notifications.test.jsx @@ -20,6 +20,7 @@ const defaultProps = () => ({ isOpen: false, notifications: [], unreadCount: 0, + onMarkAllRead: jest.fn(), onOpenLink: jest.fn(), onShowAll: jest.fn(), onToggle: jest.fn(), @@ -82,20 +83,31 @@ describe('TeacherNotifications (EPIC #1111)', () => { expect(onOpenLink).toHaveBeenCalledWith({ kind: 'classroom', classroomId: 'c1' }); }); - test('パネルは先頭5件のみ表示し、6件以上で「すべて見る」を出す (#1111 レビュー)', () => { + test('パネルは先頭5件のみプレビュー表示する (#1111)', () => { + renderNotifications({ isOpen: true, notifications: many(8) }); + expect(screen.getAllByTestId(/classroom-notification-item-/)).toHaveLength(5); + }); + + test('⋯メニューから「すべて既読にする」「お知らせを開く」を選べる (#1111 レビュー)', () => { + const onMarkAllRead = jest.fn(); const onShowAll = jest.fn(); - renderNotifications({ isOpen: true, notifications: many(8), onShowAll }); - // 5 件だけ表示。 - const items = screen.getAllByTestId(/classroom-notification-item-/); - expect(items).toHaveLength(5); - const seeAll = screen.getByTestId('classroom-notifications-see-all'); - expect(seeAll).toHaveTextContent('8'); - fireEvent.click(seeAll); + renderNotifications({ isOpen: true, notifications: many(3), unreadCount: 3, onMarkAllRead, onShowAll }); + // メニューは閉じている。 + expect(screen.queryByTestId('classroom-notifications-menu')).not.toBeInTheDocument(); + fireEvent.click(screen.getByTestId('classroom-notifications-menu-button')); + // すべて既読にする + fireEvent.click(screen.getByTestId('classroom-notifications-mark-all-read')); + expect(onMarkAllRead).toHaveBeenCalled(); + // 再度開いて お知らせを開く + fireEvent.click(screen.getByTestId('classroom-notifications-menu-button')); + fireEvent.click(screen.getByTestId('classroom-notifications-open-all')); expect(onShowAll).toHaveBeenCalled(); }); - test('5件以下なら「すべて見る」を出さない', () => { - renderNotifications({ isOpen: true, notifications: many(5) }); - expect(screen.queryByTestId('classroom-notifications-see-all')).not.toBeInTheDocument(); + test('未読0なら「すべて既読にする」は無効。1件でも一覧は件数に依らず開ける', () => { + renderNotifications({ isOpen: true, notifications: many(1), unreadCount: 0 }); + fireEvent.click(screen.getByTestId('classroom-notifications-menu-button')); + expect(screen.getByTestId('classroom-notifications-mark-all-read')).toBeDisabled(); + expect(screen.getByTestId('classroom-notifications-open-all')).toBeEnabled(); }); }); diff --git a/packages/scratch-gui/test/unit/containers/use-teacher-notifications.test.js b/packages/scratch-gui/test/unit/containers/use-teacher-notifications.test.js index d0b6466c37..df16f44efd 100644 --- a/packages/scratch-gui/test/unit/containers/use-teacher-notifications.test.js +++ b/packages/scratch-gui/test/unit/containers/use-teacher-notifications.test.js @@ -129,20 +129,33 @@ describe('useTeacherNotifications (EPIC #1111 / 日次取得)', () => { } }); - test('開封でバッジを消し既読を永続化。キャッシュの未読も 0 になる', async () => { + test('開くだけでは既読にしない(自動既読を廃止・レビュー指摘)', async () => { mockListNotifications.mockResolvedValue({ notifications: [notice('n1')], unreadCount: 1 }); const { result } = renderHook(() => useTeacherNotifications({ idToken: TOKEN, handleTeacher401 })); await waitFor(() => expect(result.current.unreadCount).toBe(1)); act(() => result.current.handleToggleNotifications()); expect(result.current.isOpen).toBe(true); + // バッジは残る。API も呼ばない。 + expect(result.current.unreadCount).toBe(1); + expect(mockMarkNotificationsRead).not.toHaveBeenCalled(); + }); + + test('handleMarkAllRead でバッジを消し既読を永続化。キャッシュとドットも既読に', async () => { + mockListNotifications.mockResolvedValue({ notifications: [notice('n1')], unreadCount: 1 }); + const { result } = renderHook(() => useTeacherNotifications({ idToken: TOKEN, handleTeacher401 })); + await waitFor(() => expect(result.current.unreadCount).toBe(1)); + + act(() => result.current.handleMarkAllRead()); expect(result.current.unreadCount).toBe(0); + expect(result.current.notifications[0].readAt).toBeTruthy(); expect(mockMarkNotificationsRead).toHaveBeenCalledWith(TOKEN); - expect(JSON.parse(window.localStorage.getItem(STORAGE_KEY)).unreadCount).toBe(0); + const cache = JSON.parse(window.localStorage.getItem(STORAGE_KEY)); + expect(cache.unreadCount).toBe(0); + expect(cache.notifications[0].readAt).toBeTruthy(); - // 既読 0 件の再オープンでは再送しない。 - act(() => result.current.handleToggleNotifications()); - act(() => result.current.handleToggleNotifications()); + // 既読 0 件で再度呼んでも API を再送しない。 + act(() => result.current.handleMarkAllRead()); expect(mockMarkNotificationsRead).toHaveBeenCalledTimes(1); }); From e10be71c7eb2cf6da551f8db3b42857aa686f970 Mon Sep 17 00:00:00 2001 From: "smalruby3-editor-bot[bot]" <297607354+smalruby3-editor-bot[bot]@users.noreply.github.com> Date: Sun, 26 Jul 2026 12:17:53 +0000 Subject: [PATCH 2/2] =?UTF-8?q?fix(gui):=20=E3=81=8A=E7=9F=A5=E3=82=89?= =?UTF-8?q?=E3=81=9B=E3=83=95=E3=83=83=E3=82=AF=E3=81=AE=20docstring=20?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=20+=20=E3=83=91=E3=83=8D=E3=83=AB=20?= =?UTF-8?q?=E2=8B=AF=20=E3=83=9D=E3=83=83=E3=83=97=E3=82=A2=E3=83=83?= =?UTF-8?q?=E3=83=97=E3=81=AE=E3=82=AF=E3=83=AA=E3=83=83=E3=83=97=E5=9B=9E?= =?UTF-8?q?=E9=81=BF=20(#1111=20=E3=83=AC=E3=83=93=E3=83=A5=E3=83=BC)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 敵対レビュー FYI 対応: - use-teacher-notifications.js の docstring が旧「開くと全既読」のまま だったので実挙動(⋯「すべて既読にする」で明示既読)に更新 - .notifications-panel の overflow/max-height を外し、ヘッダーの ⋯ ポップアップが短いパネルでクリップされないように(プレビューは最大 5 件で高さ有界なのでパネルスクロールは不要) Co-Authored-By: Claude Opus 4.8 (1M context) --- .../classroom-teacher-modal/classroom-teacher-modal.css | 4 ++-- .../scratch-gui/src/containers/use-teacher-notifications.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/scratch-gui/src/components/classroom-teacher-modal/classroom-teacher-modal.css b/packages/scratch-gui/src/components/classroom-teacher-modal/classroom-teacher-modal.css index f312fed02d..403da15dd9 100644 --- a/packages/scratch-gui/src/components/classroom-teacher-modal/classroom-teacher-modal.css +++ b/packages/scratch-gui/src/components/classroom-teacher-modal/classroom-teacher-modal.css @@ -544,8 +544,8 @@ z-index: 1001; width: 22rem; max-width: calc(100vw - 2rem); - max-height: 60vh; - overflow-y: auto; + /* プレビューは最大 5 件で高さが有界なのでパネルはスクロールさせない + (overflow を付けるとヘッダーの ⋯ ポップアップがクリップされる)。 */ background-color: white; border: 1px solid #d9d9d9; border-radius: 0.5rem; diff --git a/packages/scratch-gui/src/containers/use-teacher-notifications.js b/packages/scratch-gui/src/containers/use-teacher-notifications.js index 031ba3c241..3864f9d5d1 100644 --- a/packages/scratch-gui/src/containers/use-teacher-notifications.js +++ b/packages/scratch-gui/src/containers/use-teacher-notifications.js @@ -8,8 +8,8 @@ * 同じ日の再オープンはキャッシュを読むだけで API を叩かない(旧実装の 60 秒 * ポーリングは廃止)。 * - * パネルを開くと全件を既読化する(バッジは即消える。未読ドットはその表示 - * 中だけ残す)。 + * パネルを開くだけでは既読にしない(バッジは残る)。既読はパネルの ⋯ メニュー + * 「すべて既読にする」で明示的に行う(handleMarkAllRead)。 */ import { useCallback, useEffect, useState } from 'react'; import classroomAPI from '../lib/classroom-api.js';