feat: complete verifiable birth-time rectification flow

This commit is contained in:
Jesse_Chen
2026-07-21 22:16:18 +08:00
parent eb8ed8bee4
commit bfc6870614
117 changed files with 6215 additions and 1038 deletions
+7 -3
View File
@@ -91,12 +91,16 @@ export function SidebarProvider({
const open = controlledOpen ?? uncontrolledOpen;
const isMobile = viewport === "mobile";
const setOpen = useCallback((nextOpen: boolean) => {
const commitOpen = useCallback((nextOpen: boolean) => {
userChangedDesktopState.current = true;
if (!isControlled) setUncontrolledOpen(nextOpen);
onOpenChange?.(nextOpen);
}, [isControlled, onOpenChange]);
const setOpen = useCallback((nextOpen: boolean) => {
commitOpen(nextOpen);
}, [commitOpen]);
const setOpenMobile = useCallback((nextOpen: boolean) => {
if (openMobileRef.current === nextOpen) return;
openMobileRef.current = nextOpen;
@@ -121,7 +125,7 @@ export function SidebarProvider({
if (shouldHandleSidebarShortcut(event)) {
event.preventDefault();
if (isMobile) setOpenMobile(!openMobile);
else setOpen(!open);
else commitOpen(!open);
}
if (event.key === "Escape" && isMobile && openMobile && !escapeBlocked) {
event.preventDefault();
@@ -131,7 +135,7 @@ export function SidebarProvider({
window.addEventListener("keydown", handleKeydown);
return () => window.removeEventListener("keydown", handleKeydown);
}, [escapeBlocked, isMobile, open, openMobile, setOpen, setOpenMobile]);
}, [commitOpen, escapeBlocked, isMobile, open, openMobile, setOpenMobile]);
useEffect(() => {
if (openMobile && !wasMobileOpen.current) {