mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-07-29 19:21:33 -07:00
feat(stats): speed up session maintenance and improve stats UI (#111)
This commit is contained in:
@@ -193,13 +193,38 @@ export function createConfigSettingsRuntime<TWindow extends ConfigSettingsWindow
|
||||
};
|
||||
}
|
||||
|
||||
function persistInferredYomitanDeckIfEmpty(deckName: string): void {
|
||||
const normalizedDeckName = deckName.trim();
|
||||
const configuredDeckName = deps.getConfig().ankiConnect?.deck?.trim() ?? '';
|
||||
if (!normalizedDeckName || configuredDeckName) {
|
||||
return;
|
||||
}
|
||||
|
||||
const result = savePatch({
|
||||
operations: [
|
||||
{
|
||||
op: 'set',
|
||||
path: 'ankiConnect.deck',
|
||||
value: normalizedDeckName,
|
||||
},
|
||||
],
|
||||
});
|
||||
if (!result.ok) {
|
||||
deps.log?.(
|
||||
`Failed to persist inferred Yomitan Anki deck: ${result.error ?? 'unknown error'}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
async function getYomitanAnkiDeckName(): Promise<ConfigSettingsAnkiDeckResult> {
|
||||
if (!deps.getYomitanAnkiDeckName) {
|
||||
return { ok: true, value: '' };
|
||||
}
|
||||
try {
|
||||
const value = await deps.getYomitanAnkiDeckName();
|
||||
return { ok: true, value: typeof value === 'string' ? value.trim() : '' };
|
||||
const deckName = typeof value === 'string' ? value.trim() : '';
|
||||
persistInferredYomitanDeckIfEmpty(deckName);
|
||||
return { ok: true, value: deckName };
|
||||
} catch (error) {
|
||||
return {
|
||||
ok: false,
|
||||
|
||||
Reference in New Issue
Block a user