mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-06-10 03:13:32 -07:00
feat(notifications): add overlay notifications with position config
- Add Catppuccin Macchiato overlay notification stack with 3s transient timeout - Add `notifications.overlayPosition` config (top-left | top | top-right) - Route startup tokenization and subtitle annotation status through configured surfaces - Deduplicate rapid subtitle mode toggle notifications - Change `both` to mean overlay + system; add `osd-system` as legacy alias for old behavior - Keep `osd`/`osd-system` as config-file-only legacy values; Settings UI offers overlay/system/both/none
This commit is contained in:
@@ -222,3 +222,35 @@ test('startup OSD keeps dictionary progress pending when mpv osd is unavailable'
|
||||
'Character dictionary ready for Frieren',
|
||||
]);
|
||||
});
|
||||
|
||||
test('startup notifications route tokenization and annotation status to overlay and system without osd for both', () => {
|
||||
const calls: string[] = [];
|
||||
const sequencer = createStartupOsdSequencer({
|
||||
getNotificationType: () => 'both',
|
||||
showOsd: (message) => {
|
||||
calls.push(`osd:${message}`);
|
||||
},
|
||||
showOverlayNotification: (payload) => {
|
||||
calls.push(
|
||||
`overlay:${payload.id}:${payload.title}:${payload.body}:${payload.variant}:${payload.persistent ? 'pin' : 'auto'}`,
|
||||
);
|
||||
},
|
||||
showDesktopNotification: (title, options) => {
|
||||
calls.push(`desktop:${title}:${options.body ?? ''}`);
|
||||
},
|
||||
});
|
||||
|
||||
sequencer.showTokenizationLoading('Loading subtitle tokenization...');
|
||||
sequencer.markTokenizationReady();
|
||||
sequencer.showAnnotationLoading('Loading subtitle annotations |');
|
||||
sequencer.markAnnotationLoadingComplete('Subtitle annotations loaded');
|
||||
|
||||
assert.deepEqual(calls, [
|
||||
'overlay:startup-tokenization:Subtitle tokenization:Loading subtitle tokenization...:progress:pin',
|
||||
'overlay:startup-tokenization:Subtitle tokenization:Subtitle tokenization ready:success:auto',
|
||||
'desktop:SubMiner:Subtitle tokenization ready',
|
||||
'overlay:startup-subtitle-annotations:Subtitle annotations:Loading subtitle annotations |:progress:pin',
|
||||
'overlay:startup-subtitle-annotations:Subtitle annotations:Subtitle annotations loaded:success:auto',
|
||||
'desktop:SubMiner:Subtitle annotations loaded',
|
||||
]);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user