Refactor decryption logic to handle empty fields consistently across services

This commit is contained in:
natreex
2026-03-22 15:50:36 -04:00
parent 32d2b0fa5a
commit e8aaef108b
26 changed files with 226 additions and 120 deletions

View File

@@ -14,6 +14,18 @@ export default function LoginPage() {
const {lang, setLang} = useContext(LangContext);
const [showOfflineWarning, setShowOfflineWarning] = useState(false);
const [isOnline, setIsOnline] = useState(true);
const [resetDone, setResetDone] = useState(false);
const isDev = process.env.NODE_ENV === 'development';
const handleDevReset = async () => {
try {
await tauri.devResetAll();
setResetDone(true);
} catch (error) {
console.error('[DevReset]', error);
}
};
const toggleLanguage = () => {
const newLang = lang === 'fr' ? 'en' : 'fr';
@@ -148,6 +160,13 @@ export default function LoginPage() {
</div>
</div>
</div>
{isDev && (
resetDone
? <span className="mt-6 text-xs text-green-400">Reset OK</span>
: <button onClick={handleDevReset} className="mt-6 px-4 py-2 text-xs text-red-400 border border-red-400/30 rounded-lg hover:bg-red-400/10 transition-colors">
DEV: Reset All Data
</button>
)}
</main>
);
}

View File

@@ -588,7 +588,7 @@ function ScribeContent() {
const offlineStatus = await tauri.offlineModeGet();
if (offlineStatus.hasPin && offlineStatus.lastUserId) {
setOfflineMode((prev:OfflineMode):OfflineMode => ({...prev, isOffline: true, isNetworkOnline: false}));
setOfflineMode((prev:OfflineMode):OfflineMode => ({...prev, isOffline: true, isManuallyOffline: true, isNetworkOnline: false}));
setShowPinVerify(true);
setIsLoading(false);
return;
@@ -611,7 +611,7 @@ function ScribeContent() {
const offlineStatus = await tauri.offlineModeGet();
if (offlineStatus.hasPin && offlineStatus.lastUserId) {
setOfflineMode(prev => ({...prev, isOffline: true, isNetworkOnline: false}));
setOfflineMode(prev => ({...prev, isOffline: true, isManuallyOffline: true, isNetworkOnline: false}));
setShowPinVerify(true);
setIsLoading(false);
return;