7 Commits

Author SHA1 Message Date
Renovate Bot
9badd04dfc Update dependency eslint-config-next to v14.2.22 2024-12-26 18:06:21 +00:00
ccca936c61 Merge pull request 'Update dependency next to v14.2.14' (#19) from renovate/next-14.x into master
All checks were successful
Deploy / deploy (ubuntu-latest, 2.44.0) (push) Successful in 2m16s
Reviewed-on: #19
2024-10-06 08:47:46 -07:00
Renovate Bot
d9bc61db7e Update dependency next to v14.2.14 2024-10-04 20:06:28 +00:00
19596b9589 make the user setting pages more responsive
All checks were successful
Deploy / deploy (ubuntu-latest, 2.44.0) (push) Successful in 1m0s
2024-09-22 21:52:42 -04:00
2e40f5bacf make dashboard profile pages more responsived
All checks were successful
Deploy / deploy (ubuntu-latest, 2.44.0) (push) Successful in 1m3s
2024-09-22 21:22:50 -04:00
ec7e1e4b76 make the dashboard layout more responsive 2024-09-22 21:20:56 -04:00
5f7c30a86d fix sidebar home link bug 2024-09-22 21:16:01 -04:00
13 changed files with 25 additions and 23 deletions

BIN
bun.lockb

Binary file not shown.

View File

@ -34,7 +34,7 @@
"lossless-json": "^4.0.2", "lossless-json": "^4.0.2",
"lucide-react": "^0.445.0", "lucide-react": "^0.445.0",
"luxon": "^3.5.0", "luxon": "^3.5.0",
"next": "14.2.13", "next": "14.2.14",
"next-client-cookies": "^1.1.1", "next-client-cookies": "^1.1.1",
"next-themes": "^0.3.0", "next-themes": "^0.3.0",
"qrcode.react": "^4.0.1", "qrcode.react": "^4.0.1",
@ -56,7 +56,7 @@
"@types/react": "^18", "@types/react": "^18",
"@types/react-dom": "^18", "@types/react-dom": "^18",
"eslint": "^8", "eslint": "^8",
"eslint-config-next": "14.2.13", "eslint-config-next": "14.2.22",
"postcss": "^8", "postcss": "^8",
"tailwindcss": "^3.4.1", "tailwindcss": "^3.4.1",
"turnstile-types": "^1.2.2", "turnstile-types": "^1.2.2",

View File

@ -18,7 +18,9 @@ const DashboardLayout = ({
<OrganizationProvider> <OrganizationProvider>
<div className="min-h-screen flex"> <div className="min-h-screen flex">
<Sidebar /> <Sidebar />
<div className="w-full mx-7 my-6">{children}</div> <div className="w-full mx-4 sm:mx-7 my-3 sm:my-5 transition-all transform-gpu">
{children}
</div>
</div> </div>
</OrganizationProvider> </OrganizationProvider>
</UserProvider> </UserProvider>

View File

@ -10,7 +10,7 @@ import DashboardHeader from "@/components/dashboard/dashboard-header";
* @return the page jsx * @return the page jsx
*/ */
const UserBillingPage = (): ReactElement => ( const UserBillingPage = (): ReactElement => (
<main className="w-[47rem] flex flex-col gap-5"> <main className="max-w-[47rem] flex flex-col gap-5">
<DashboardHeader title="Billing" /> <DashboardHeader title="Billing" />
{/* Content */} {/* Content */}

View File

@ -14,7 +14,7 @@ import DashboardHeader from "@/components/dashboard/dashboard-header";
* @return the page jsx * @return the page jsx
*/ */
const UserProfilePage = (): ReactElement => ( const UserProfilePage = (): ReactElement => (
<main className="w-[47rem] flex flex-col gap-5"> <main className="max-w-[47rem] flex flex-col gap-5">
<DashboardHeader title="My Profile" /> <DashboardHeader title="My Profile" />
{/* Content */} {/* Content */}

View File

@ -12,7 +12,7 @@ import DashboardHeader from "@/components/dashboard/dashboard-header";
* @return the page jsx * @return the page jsx
*/ */
const UserSettingsPage = (): ReactElement => ( const UserSettingsPage = (): ReactElement => (
<main className="w-[47rem] flex flex-col gap-5"> <main className="max-w-[32rem] flex flex-col gap-5">
<DashboardHeader title="Settings" /> <DashboardHeader title="Settings" />
{/* Content */} {/* Content */}

View File

@ -30,7 +30,7 @@ const Sidebar = (): ReactElement => {
href="/dashboard" href="/dashboard"
draggable={false} draggable={false}
> >
<Branding size="xs" /> <Branding className="pointer-events-none" size="xs" />
<h1 className="hidden opacity-0 md:flex md:opacity-100 text-2xl font-bold group-hover:opacity-75 transition-all transform-gpu"> <h1 className="hidden opacity-0 md:flex md:opacity-100 text-2xl font-bold group-hover:opacity-75 transition-all transform-gpu">
Pulse App Pulse App
</h1> </h1>

View File

@ -16,9 +16,9 @@ const AvatarSetting = (): ReactElement => {
(state: UserState) => state.user (state: UserState) => state.user
); );
return ( return (
<div className="px-5 flex items-center"> <div className="flex flex-col gap-3 sm:flex-row items-start sm:items-center">
{/* Name & Description */} {/* Name & Description */}
<div className="w-96 flex flex-col gap-0.5 select-none pointer-events-none"> <div className="w-72 md:w-80 lg:w-96 flex flex-col gap-0.5 select-none pointer-events-none transition-all transform-gpu">
<h1 className="text-lg font-bold">Avatar</h1> <h1 className="text-lg font-bold">Avatar</h1>
<p className="max-w-64 text-sm opacity-75"> <p className="max-w-64 text-sm opacity-75">
Set a profile picture for your account. This can be seen by Set a profile picture for your account. This can be seen by

View File

@ -16,9 +16,9 @@ const EmailSetting = (): ReactElement => {
(state: UserState) => state.user (state: UserState) => state.user
); );
return ( return (
<div className="px-5 flex items-center"> <div className="flex flex-col gap-3 lg:flex-row items-start lg:items-center">
{/* Name & Description */} {/* Name & Description */}
<div className="w-96 flex flex-col gap-0.5 select-none pointer-events-none"> <div className="w-96 flex flex-col gap-0.5 select-none pointer-events-none transition-all transform-gpu">
<h1 className="text-lg font-bold">Email</h1> <h1 className="text-lg font-bold">Email</h1>
<p className="max-w-64 text-sm opacity-75"> <p className="max-w-64 text-sm opacity-75">
The email you use to login to this account. The email you use to login to this account.
@ -27,7 +27,7 @@ const EmailSetting = (): ReactElement => {
{/* Setting */} {/* Setting */}
<Input <Input
className="w-60 rounded-lg select-none" className="max-w-60 rounded-lg select-none"
value={user?.email} value={user?.email}
disabled disabled
/> />

View File

@ -18,9 +18,9 @@ const TierSetting = (): ReactElement => {
(state: UserState) => state.user (state: UserState) => state.user
); );
return ( return (
<div className="px-5 flex items-center"> <div className="flex flex-col gap-3 sm:flex-row items-start sm:items-center">
{/* Name & Description */} {/* Name & Description */}
<div className="w-96 flex flex-col gap-0.5 select-none pointer-events-none"> <div className="w-72 md:w-80 lg:w-96 flex flex-col gap-0.5 select-none pointer-events-none transition-all transform-gpu">
<h1 className="text-lg font-bold">Tier</h1> <h1 className="text-lg font-bold">Tier</h1>
<p className="max-w-64 text-sm opacity-75"> <p className="max-w-64 text-sm opacity-75">
The tier of your account. The tier of your account.

View File

@ -16,9 +16,9 @@ const UsernameSetting = (): ReactElement => {
(state: UserState) => state.user (state: UserState) => state.user
); );
return ( return (
<div className="px-5 flex items-center"> <div className="flex flex-col gap-3 lg:flex-row items-start lg:items-center">
{/* Name & Description */} {/* Name & Description */}
<div className="w-96 flex flex-col gap-0.5 select-none pointer-events-none"> <div className="w-96 flex flex-col gap-0.5 select-none pointer-events-none transition-all transform-gpu">
<h1 className="text-lg font-bold">Username</h1> <h1 className="text-lg font-bold">Username</h1>
<p className="max-w-64 text-sm opacity-75"> <p className="max-w-64 text-sm opacity-75">
The username used to identify you on the app. The username used to identify you on the app.
@ -27,7 +27,7 @@ const UsernameSetting = (): ReactElement => {
{/* Setting */} {/* Setting */}
<Input <Input
className="w-60 rounded-lg select-none" className="max-w-60 rounded-lg select-none"
value={user?.username} value={user?.username}
disabled disabled
/> />

View File

@ -41,18 +41,18 @@ const DevicesSetting = (): ReactElement => {
}, [fetchDevices]); }, [fetchDevices]);
return ( return (
<div className="px-5 flex flex-col gap-3.5 justify-center"> <div className="flex flex-col gap-3.5 justify-center">
{/* Name & Description */} {/* Name & Description */}
<div className="w-96 flex flex-col gap-0.5 select-none pointer-events-none"> <div className="max-w-96 flex flex-col gap-0.5 select-none pointer-events-none">
<h1 className="text-lg font-bold">Devices</h1> <h1 className="text-lg font-bold">Devices</h1>
<p className="w-[25rem] text-sm opacity-75"> <p className="max-w-[15rem] text-sm opacity-75">
Here is a list of devices logged into your Pulse App Here is a list of devices logged into your Pulse App
account. account.
</p> </p>
</div> </div>
{/* Setting */} {/* Setting */}
<div className="w-[27.7rem] flex flex-col gap-2"> <div className="max-w-[27.7rem] flex flex-col gap-2">
{!devices ? ( {!devices ? (
<> <>
{Array.from({ length: 4 }, (_, index) => ( {Array.from({ length: 4 }, (_, index) => (

View File

@ -101,9 +101,9 @@ const TFASetting = (): ReactElement => {
}; };
return ( return (
<div className="px-5 flex items-center"> <div className="flex flex-col gap-3 xs:flex-row items-start xs:items-center">
{/* Name & Description */} {/* Name & Description */}
<div className="w-96 flex flex-col gap-0.5 select-none pointer-events-none"> <div className="w-80 md:w-96 flex flex-col gap-0.5 select-none pointer-events-none transition-all transform-gpu">
<h1 className="text-lg font-bold">Two-Factor Auth</h1> <h1 className="text-lg font-bold">Two-Factor Auth</h1>
<p className="max-w-64 text-sm opacity-75"> <p className="max-w-64 text-sm opacity-75">
Enhance your account security with an extra layer of Enhance your account security with an extra layer of