From 50bcfa9c04ae4dba187f369a674baa13ea960ae3 Mon Sep 17 00:00:00 2001 From: Aarnav Tale Date: Sat, 30 Mar 2024 02:44:06 -0400 Subject: [PATCH] feat: add logout and dropdown --- app/routes/_data.tsx | 81 +++++++++++++++++++++++++++++++++++++++---- app/routes/login.tsx | 49 +++++++++++++++++++------- app/routes/logout.tsx | 15 ++++++++ app/types/Key.ts | 7 ++++ app/types/index.ts | 1 + app/utils/oidc.ts | 5 +++ app/utils/sessions.ts | 5 +++ 7 files changed, 144 insertions(+), 19 deletions(-) create mode 100644 app/routes/logout.tsx create mode 100644 app/types/Key.ts diff --git a/app/routes/_data.tsx b/app/routes/_data.tsx index d035ee9..e7b56f5 100644 --- a/app/routes/_data.tsx +++ b/app/routes/_data.tsx @@ -1,6 +1,9 @@ -import { Cog8ToothIcon, CpuChipIcon, GlobeAltIcon, LockClosedIcon, ServerStackIcon, UsersIcon } from '@heroicons/react/24/outline' +import { Menu, Transition } from '@headlessui/react' +import { Cog8ToothIcon, CpuChipIcon, GlobeAltIcon, LockClosedIcon, ServerStackIcon, UserCircleIcon, UsersIcon } from '@heroicons/react/24/outline' import { type LoaderFunctionArgs, redirect } from '@remix-run/node' -import { Outlet, useLoaderData, useRouteError } from '@remix-run/react' +import { Form, Outlet, useLoaderData, useRouteError } from '@remix-run/react' +import clsx from 'clsx' +import { Fragment } from 'react/jsx-runtime' import { ErrorPopup } from '~/components/Error' import TabLink from '~/components/TabLink' @@ -34,7 +37,10 @@ export async function loader({ request }: LoaderFunctionArgs) { } const context = await getContext() - return context + return { + ...context, + user: session.get('user') + } } export default function Layout() { @@ -43,9 +49,72 @@ export default function Layout() { <>