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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user