chore: display user name and email on table list
This commit is contained in:
@@ -33,6 +33,7 @@ import {
|
|||||||
TableRow,
|
TableRow,
|
||||||
} from "@/components/ui/table";
|
} from "@/components/ui/table";
|
||||||
import {
|
import {
|
||||||
|
ClickableTooltip,
|
||||||
Tooltip,
|
Tooltip,
|
||||||
TooltipContent,
|
TooltipContent,
|
||||||
TooltipProvider,
|
TooltipProvider,
|
||||||
@@ -347,17 +348,17 @@ export default function UserRecordsList({ user, action }: RecordListProps) {
|
|||||||
)}
|
)}
|
||||||
</TableCell>
|
</TableCell>
|
||||||
<TableCell className="col-span-1 hidden truncate sm:flex">
|
<TableCell className="col-span-1 hidden truncate sm:flex">
|
||||||
<TooltipProvider>
|
<ClickableTooltip
|
||||||
<Tooltip delayDuration={200}>
|
className="cursor-pointer truncate"
|
||||||
<TooltipTrigger className="truncate">
|
content={
|
||||||
{record.user.name ?? record.user.email}
|
<div className="px-2 py-1">
|
||||||
</TooltipTrigger>
|
|
||||||
<TooltipContent>
|
|
||||||
<p>{record.user.name}</p>
|
<p>{record.user.name}</p>
|
||||||
<p>{record.user.email}</p>
|
<p>{record.user?.email}</p>
|
||||||
</TooltipContent>
|
</div>
|
||||||
</Tooltip>
|
}
|
||||||
</TooltipProvider>
|
>
|
||||||
|
{record.user.name || record.user.email}
|
||||||
|
</ClickableTooltip>
|
||||||
</TableCell>
|
</TableCell>
|
||||||
<TableCell className="col-span-1 hidden justify-center sm:flex">
|
<TableCell className="col-span-1 hidden justify-center sm:flex">
|
||||||
<TimeAgoIntl
|
<TimeAgoIntl
|
||||||
|
|||||||
@@ -49,12 +49,7 @@ import {
|
|||||||
TableRow,
|
TableRow,
|
||||||
} from "@/components/ui/table";
|
} from "@/components/ui/table";
|
||||||
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
||||||
import {
|
import { ClickableTooltip } from "@/components/ui/tooltip";
|
||||||
Tooltip,
|
|
||||||
TooltipContent,
|
|
||||||
TooltipProvider,
|
|
||||||
TooltipTrigger,
|
|
||||||
} from "@/components/ui/tooltip";
|
|
||||||
import { UrlStatus } from "@/components/dashboard/status-card";
|
import { UrlStatus } from "@/components/dashboard/status-card";
|
||||||
import { FormType } from "@/components/forms/record-form";
|
import { FormType } from "@/components/forms/record-form";
|
||||||
import { UrlForm } from "@/components/forms/url-form";
|
import { UrlForm } from "@/components/forms/url-form";
|
||||||
@@ -69,8 +64,6 @@ import QRCodeEditor from "@/components/shared/qr";
|
|||||||
import { TimeAgoIntl } from "@/components/shared/time-ago";
|
import { TimeAgoIntl } from "@/components/shared/time-ago";
|
||||||
|
|
||||||
import { UrlExporter } from "./export";
|
import { UrlExporter } from "./export";
|
||||||
import Globe from "./globe";
|
|
||||||
import LiveLog from "./live-logs";
|
|
||||||
import UserUrlMetaInfo from "./meta";
|
import UserUrlMetaInfo from "./meta";
|
||||||
|
|
||||||
export interface UrlListProps {
|
export interface UrlListProps {
|
||||||
@@ -244,7 +237,7 @@ export default function UserUrlsList({ user, action }: UrlListProps) {
|
|||||||
case "userName":
|
case "userName":
|
||||||
return t("Search by username") + "...";
|
return t("Search by username") + "...";
|
||||||
default:
|
default:
|
||||||
return t("Search") + "...";
|
return "Filter...";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -399,16 +392,17 @@ export default function UserUrlsList({ user, action }: UrlListProps) {
|
|||||||
/>
|
/>
|
||||||
</TableCell>
|
</TableCell>
|
||||||
<TableCell className="col-span-1 hidden truncate sm:flex">
|
<TableCell className="col-span-1 hidden truncate sm:flex">
|
||||||
<TooltipProvider>
|
<ClickableTooltip
|
||||||
<Tooltip delayDuration={200}>
|
className="cursor-pointer truncate"
|
||||||
<TooltipTrigger className="truncate">
|
content={
|
||||||
{short.userName ?? "Anonymous"}
|
<div className="px-2 py-1">
|
||||||
</TooltipTrigger>
|
<p>{short.user?.name}</p>
|
||||||
<TooltipContent>
|
<p>{short.user?.email}</p>
|
||||||
{short.userName ?? "Anonymous"}
|
</div>
|
||||||
</TooltipContent>
|
}
|
||||||
</Tooltip>
|
>
|
||||||
</TooltipProvider>
|
{short.user?.name || short.user?.email}
|
||||||
|
</ClickableTooltip>
|
||||||
</TableCell>
|
</TableCell>
|
||||||
<TableCell className="col-span-1 hidden sm:flex">
|
<TableCell className="col-span-1 hidden sm:flex">
|
||||||
<Switch
|
<Switch
|
||||||
@@ -619,16 +613,17 @@ export default function UserUrlsList({ user, action }: UrlListProps) {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="mt-auto flex items-center justify-end gap-1.5 text-xs text-muted-foreground">
|
<div className="mt-auto flex items-center justify-end gap-1.5 text-xs text-muted-foreground">
|
||||||
<TooltipProvider>
|
<ClickableTooltip
|
||||||
<Tooltip delayDuration={200}>
|
className="cursor-pointer truncate"
|
||||||
<TooltipTrigger className="truncate">
|
content={
|
||||||
{short.userName ?? "Anonymous"}
|
<div className="px-2 py-1">
|
||||||
</TooltipTrigger>
|
<p>{short.user?.name}</p>
|
||||||
<TooltipContent>
|
<p>{short.user?.email}</p>
|
||||||
{short.userName ?? "Anonymous"}
|
</div>
|
||||||
</TooltipContent>
|
}
|
||||||
</Tooltip>
|
>
|
||||||
</TooltipProvider>
|
{short.user?.name || short.user?.email}
|
||||||
|
</ClickableTooltip>
|
||||||
<Separator
|
<Separator
|
||||||
className="h-4/5"
|
className="h-4/5"
|
||||||
orientation="vertical"
|
orientation="vertical"
|
||||||
|
|||||||
@@ -18,6 +18,10 @@ export interface ShortUrlFormData {
|
|||||||
password: string;
|
password: string;
|
||||||
createdAt?: Date;
|
createdAt?: Date;
|
||||||
updatedAt?: Date;
|
updatedAt?: Date;
|
||||||
|
user?: {
|
||||||
|
name: string;
|
||||||
|
email: string;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface UserShortUrlInfo extends ShortUrlFormData {
|
export interface UserShortUrlInfo extends ShortUrlFormData {
|
||||||
@@ -66,6 +70,14 @@ export async function getUserShortUrls(
|
|||||||
where: option,
|
where: option,
|
||||||
skip: (page - 1) * size,
|
skip: (page - 1) * size,
|
||||||
take: size,
|
take: size,
|
||||||
|
include: {
|
||||||
|
user: {
|
||||||
|
select: {
|
||||||
|
name: true,
|
||||||
|
email: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
orderBy: {
|
orderBy: {
|
||||||
updatedAt: "desc",
|
updatedAt: "desc",
|
||||||
},
|
},
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user