Move production to beenvoice.app with migrated accounts, refreshed auth and timer UX, and expanded invoice flows.

Official URL migration preserves sessions, shortcuts prefs, and last clock-in client; auth screens match web with legal links; time clock and invoice editor/send flows are updated for the new domain and UI patterns.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-26 03:40:48 -04:00
co-authored by Cursor
parent e17c4c6854
commit 6762a9bff3
60 changed files with 2544 additions and 1091 deletions
+18 -2
View File
@@ -22,7 +22,7 @@ import {
setBiometricEnabled,
setStoredPin,
} from "@/lib/app-lock";
import { hasPendingShortcut } from "@/lib/shortcut-queue";
import { hasPendingShortcut, subscribeShortcutQueue } from "@/lib/shortcut-queue";
type AppLockContextValue = {
enabled: boolean;
@@ -120,13 +120,29 @@ export function AppLockProvider({ children }: { children: ReactNode }) {
!biometricUnlockInProgress.current
) {
wasBackgrounded.current = false;
setIsLocked(true);
void hasPendingShortcut().then((shortcutPending) => {
if (!shortcutPending) {
setIsLocked(true);
}
});
}
});
return () => subscription.remove();
}, [enabled, activeAccountId]);
useEffect(() => {
if (!enabled) return;
return subscribeShortcutQueue(() => {
void hasPendingShortcut().then((shortcutPending) => {
if (shortcutPending) {
setIsLocked(false);
}
});
});
}, [enabled]);
const unlockWithPin = useCallback(
async (pin: string) => {
if (!activeAccountId) return false;