diff options
| author | Mohamed Bassem <me@mbassem.com> | 2025-06-07 15:11:29 +0000 |
|---|---|---|
| committer | Mohamed Bassem <me@mbassem.com> | 2025-06-07 15:11:29 +0000 |
| commit | 090c0d1c3c1b6bf2f569eb4c9e1164523f048319 (patch) | |
| tree | 9d505df2ec4b029e384ca50b6296ec9ab03ebc58 /apps/web/components/settings/UserDetails.tsx | |
| parent | 39feafe797a7a1e0e54233a18fefa1eee82f9f95 (diff) | |
| download | karakeep-090c0d1c3c1b6bf2f569eb4c9e1164523f048319.tar.zst | |
feat(web): Redesign the user settings page
Diffstat (limited to 'apps/web/components/settings/UserDetails.tsx')
| -rw-r--r-- | apps/web/components/settings/UserDetails.tsx | 71 |
1 files changed, 48 insertions, 23 deletions
diff --git a/apps/web/components/settings/UserDetails.tsx b/apps/web/components/settings/UserDetails.tsx index af6698ad..6135df47 100644 --- a/apps/web/components/settings/UserDetails.tsx +++ b/apps/web/components/settings/UserDetails.tsx @@ -1,35 +1,60 @@ import { Input } from "@/components/ui/input"; import { useTranslation } from "@/lib/i18n/server"; import { api } from "@/server/api/client"; +import { Mail, User } from "lucide-react"; + +import { Card, CardContent, CardHeader, CardTitle } from "../ui/card"; +import { Label } from "../ui/label"; export default async function UserDetails() { const { t } = await useTranslation(); const whoami = await api.users.whoami(); - const details = [ - { - label: t("common.name"), - value: whoami.name ?? undefined, - }, - { - label: t("common.email"), - value: whoami.email ?? undefined, - }, - ]; - return ( - <div className="flex w-full flex-col sm:flex-row"> - <div className="mb-4 w-full text-lg font-medium sm:w-1/3"> - {t("settings.info.basic_details")} - </div> - <div className="w-full"> - {details.map(({ label, value }) => ( - <div className="mb-2" key={label}> - <div className="mb-2 text-sm font-medium">{label}</div> - <Input value={value} disabled /> + <Card> + <CardHeader> + <div className="flex items-center space-x-4"> + <div className="space-y-1"> + <CardTitle className="flex items-center gap-2"> + <User className="h-5 w-5" /> + {t("settings.info.basic_details")} + </CardTitle> + </div> + </div> + </CardHeader> + <CardContent className="space-y-6"> + <div className="grid gap-6 md:grid-cols-2"> + <div className="space-y-2"> + <Label htmlFor="name" className="text-sm font-medium"> + {t("common.name")} + </Label> + <Input + id="name" + defaultValue={whoami.name ?? ""} + className="h-11" + disabled + /> + </div> + <div className="space-y-2"> + <Label + htmlFor="email" + className="flex items-center gap-2 text-sm font-medium" + > + <Mail className="h-4 w-4" /> + {t("common.email")} + </Label> + <div className="relative"> + <Input + id="email" + type="email" + defaultValue={whoami.email ?? ""} + className="h-11" + disabled + /> + </div> </div> - ))} - </div> - </div> + </div> + </CardContent> + </Card> ); } |
