feat: 发布 v0.5.0 加密存储与匿名同步

This commit is contained in:
2026-06-23 01:48:01 +02:00
parent 81a70137a9
commit e3825c5a4e
20 changed files with 1091 additions and 70 deletions
@@ -13,6 +13,7 @@ import { useScopedI18n } from '@/locales/client';
import { loadResult } from '@/lib/result-storage';
import { AssessmentRecord } from '@/lib/assessment-types';
import { getProfiles, getRecords, updateRecordAnalysis } from '@/lib/assessment-db';
import { syncAnonymousRecord } from '@/lib/anonymous-client';
export default function QuestionnaireResultPage({
params,
@@ -58,11 +59,18 @@ export default function QuestionnaireResultPage({
const timer = window.setTimeout(() => {
const text = analysisRef.current?.innerText.trim() || '';
if (!text) return;
setRecord((current) => current ? { ...current, analysisText: text } : current);
if (record?.analysisText === text) return;
const updated = record ? { ...record, analysisText: text } : null;
setRecord(updated);
void updateRecordAnalysis(recordId, text);
if (updated) {
void syncAnonymousRecord(updated).catch((error) => {
console.error('Failed to sync anonymous record analysis:', error);
});
}
}, 100);
return () => window.clearTimeout(timer);
}, [recordId]);
}, [record, recordId]);
// Construct question-option text pairs for copying result data
const questionnaireResults: Record<string, string> = useMemo(() => {