feat: 发布 v0.5.0 加密存储与匿名同步
This commit is contained in:
@@ -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(() => {
|
||||
|
||||
Reference in New Issue
Block a user