feat: complete verifiable birth-time rectification flow
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
"use client"
|
||||
|
||||
import { Toaster as Sonner, type ToasterProps } from "sonner"
|
||||
|
||||
function Toaster(props: ToasterProps) {
|
||||
return (
|
||||
<Sonner
|
||||
position="bottom-right"
|
||||
closeButton={false}
|
||||
toastOptions={{
|
||||
classNames: {
|
||||
toast: "group toast",
|
||||
title: "toast-title",
|
||||
description: "toast-description",
|
||||
},
|
||||
}}
|
||||
{...props}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
export { Toaster }
|
||||
Reference in New Issue
Block a user