diff --git a/apps/viewer/src/__tests__/lightbox.spec.ts b/apps/viewer/src/__tests__/lightbox.spec.ts index 1bbb924..b011efb 100644 --- a/apps/viewer/src/__tests__/lightbox.spec.ts +++ b/apps/viewer/src/__tests__/lightbox.spec.ts @@ -382,28 +382,17 @@ describe('photo lightbox dark viewer (UI-02 V04)', () => { expect(lightbox(wrapper).emitted('update:photoId')).toEqual([['p1']]); }); - it('more menu exposes the reduce-motion toggle; Escape closes the menu before the viewer', async () => { + it('top bar has no settings/more menu (removed per user request 2026-09-23); Escape closes the viewer directly', async () => { const wrapper = mountLightbox('p2'); await flushPromises(); - await wrapper.find('.viewer-more').trigger('click'); - expect(wrapper.find('.more-popover').exists()).toBe(true); - const item = wrapper.find('.more-item'); - expect(item.text()).toContain('减少动画'); - expect(item.attributes('aria-checked')).toBe('false'); - await item.trigger('click'); - expect(wrapper.find('.more-item').attributes('aria-checked')).toBe('true'); - // 还原模块级偏好单例,避免影响后续用例。 - await wrapper.find('.more-item').trigger('click'); + // 「⋯」更多菜单(减少动画开关)已按用户要求移除:顶部仅保留关闭与序号。 + expect(wrapper.find('.viewer-more').exists()).toBe(false); + expect(wrapper.find('.more-menu').exists()).toBe(false); keydown('Escape'); await flushPromises(); - expect(wrapper.find('.more-popover').exists()).toBe(false); // 先收菜单 - expect(lightbox(wrapper).emitted('close')).toBeUndefined(); // 不关查看器 - - keydown('Escape'); - await flushPromises(); - expect(lightbox(wrapper).emitted('close')).toHaveLength(1); + expect(lightbox(wrapper).emitted('close')).toHaveLength(1); // Esc 直接关查看器 }); it('moves focus into the dialog on open and returns it to the trigger on close', async () => { diff --git a/apps/viewer/src/components/PhotoLightbox.vue b/apps/viewer/src/components/PhotoLightbox.vue index 98b8b47..441d53f 100644 --- a/apps/viewer/src/components/PhotoLightbox.vue +++ b/apps/viewer/src/components/PhotoLightbox.vue @@ -11,7 +11,6 @@ import HeartParticles from './viewer/HeartParticles.vue'; import InteractionNotice from './viewer/InteractionNotice.vue'; import ThumbnailStrip, { type ThumbnailItem } from './viewer/ThumbnailStrip.vue'; import ShareSheet from './viewer/ShareSheet.vue'; -import { reducedMotion, toggleReducedMotion } from '../ui/prefs'; import { positionDisplay } from '../viewer/position'; import { MIN_SCALE, panBy, resetZoom, wheelFactor, zoomAt, type ZoomState } from '../viewer/zoom';