Added deeplinks, added qr code login, added settings, other stuff

This commit is contained in:
Alois 2026-04-10 19:44:08 +02:00
commit 8ff8bd9528
32 changed files with 917 additions and 78 deletions

View file

@ -7,31 +7,31 @@ import { SidebarProvider } from "@tensamin/ui/cmp/sidebar";
import { useIsMobile, cn } from "@tensamin/ui/utils";
import { isTauri } from "@tauri-apps/api/core";
import { useLocation } from "@tanstack/react-router";
import { useLocation, useMatches } from "@tanstack/react-router";
/**
* Executes Layout.
* @param props Parameter props.
* @returns unknown.
*/
export default function Layout(props: { children: ReactNode }) {
export default function Layout({ children }: { children: ReactNode }) {
const isMobile = useIsMobile();
const location = useLocation();
const showMobileNavbar = useShowMobileNavbar();
return (
<div className="w-full h-full flex bg-sidebar">
<SidebarProvider>
<Sidebar />
<div
// Background of ui that is overlapping with the system ui
className={cn(
"w-full h-full flex flex-col",
isTauri() && isMobile && "pt-[env(safe-area-inset-top)]",
isMobile && showMobileNavbar && "bg-background",
)}
>
{!isMobile && <Navbar forMobile={false} />}
{isMobile && location.pathname === "/chat" && (
<Navbar forMobile={true} />
)}
{isMobile && !showMobileNavbar && <Navbar forMobile={true} />}
<div
className={cn(
@ -39,11 +39,26 @@ export default function Layout(props: { children: ReactNode }) {
!isMobile && "rounded-tl-3xl border-t border-l",
)}
>
{props.children}
{children}
</div>
{isMobile && location.pathname !== "/chat" && <MobileNavbar />}
{isMobile && showMobileNavbar && <MobileNavbar />}
</div>
</SidebarProvider>
</div>
);
}
export function useShowMobileNavbar(): boolean {
const matches = useMatches();
const location = useLocation();
const value = matches.some(
(match) =>
match.pathname === location.pathname &&
// @ts-expect-error Stuff
match.staticData?.showMobileNavbar === true,
);
return value;
}