mirror of
https://github.com/fosrl/pangolin.git
synced 2026-03-05 18:26:40 +00:00
fix issues from test deploy
This commit is contained in:
@@ -197,12 +197,16 @@ export default function CreateShareLinkForm({
|
||||
const link = constructShareLink(
|
||||
values.resourceId,
|
||||
token.accessTokenId,
|
||||
token.tokenHash
|
||||
token.accessToken
|
||||
);
|
||||
setLink(link);
|
||||
onCreated?.({
|
||||
...token,
|
||||
resourceName: values.resourceName
|
||||
accessTokenId: token.accessTokenId,
|
||||
resourceId: token.resourceId,
|
||||
resourceName: values.resourceName,
|
||||
title: token.title,
|
||||
createdAt: token.createdAt,
|
||||
expiresAt: token.expiresAt
|
||||
});
|
||||
}
|
||||
|
||||
@@ -285,7 +289,9 @@ export default function CreateShareLinkForm({
|
||||
r
|
||||
) => (
|
||||
<CommandItem
|
||||
value={r.name}
|
||||
value={
|
||||
r.name
|
||||
}
|
||||
key={
|
||||
r.resourceId
|
||||
}
|
||||
@@ -441,6 +447,10 @@ export default function CreateShareLinkForm({
|
||||
)}
|
||||
{link && (
|
||||
<div className="max-w-md space-y-4">
|
||||
<p>
|
||||
You will be able to see this link once.
|
||||
Make sure to copy it.
|
||||
</p>
|
||||
<p>
|
||||
Anyone with this link can access the
|
||||
resource. Share it with care.
|
||||
|
||||
@@ -34,9 +34,14 @@ import moment from "moment";
|
||||
import CreateShareLinkForm from "./CreateShareLinkForm";
|
||||
import { constructShareLink } from "@app/lib/shareLinks";
|
||||
|
||||
export type ShareLinkRow = ArrayElement<
|
||||
ListAccessTokensResponse["accessTokens"]
|
||||
>;
|
||||
export type ShareLinkRow = {
|
||||
accessTokenId: string;
|
||||
resourceId: number;
|
||||
resourceName: string;
|
||||
title: string | null;
|
||||
createdAt: number;
|
||||
expiresAt: number | null;
|
||||
};
|
||||
|
||||
type ShareLinksTableProps = {
|
||||
shareLinks: ShareLinkRow[];
|
||||
@@ -64,7 +69,10 @@ export default function ShareLinksTable({
|
||||
await api.delete(`/access-token/${id}`).catch((e) => {
|
||||
toast({
|
||||
title: "Failed to delete link",
|
||||
description: formatAxiosError(e, "An error occurred deleting link"),
|
||||
description: formatAxiosError(
|
||||
e,
|
||||
"An error occurred deleting link"
|
||||
)
|
||||
});
|
||||
});
|
||||
|
||||
@@ -73,7 +81,7 @@ export default function ShareLinksTable({
|
||||
|
||||
toast({
|
||||
title: "Link deleted",
|
||||
description: "The link has been deleted",
|
||||
description: "The link has been deleted"
|
||||
});
|
||||
}
|
||||
|
||||
@@ -123,69 +131,69 @@ export default function ShareLinksTable({
|
||||
);
|
||||
}
|
||||
},
|
||||
{
|
||||
accessorKey: "domain",
|
||||
header: "Link",
|
||||
cell: ({ row }) => {
|
||||
const r = row.original;
|
||||
|
||||
const link = constructShareLink(
|
||||
r.resourceId,
|
||||
r.accessTokenId,
|
||||
r.tokenHash
|
||||
);
|
||||
|
||||
return (
|
||||
<div className="flex items-center">
|
||||
<Link
|
||||
href={link}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="hover:underline mr-2"
|
||||
>
|
||||
{formatLink(link)}
|
||||
</Link>
|
||||
<Button
|
||||
variant="ghost"
|
||||
className="h-6 w-6 p-0"
|
||||
onClick={() => {
|
||||
navigator.clipboard.writeText(link);
|
||||
const originalIcon = document.querySelector(
|
||||
`#icon-${r.accessTokenId}`
|
||||
);
|
||||
if (originalIcon) {
|
||||
originalIcon.classList.add("hidden");
|
||||
}
|
||||
const checkIcon = document.querySelector(
|
||||
`#check-icon-${r.accessTokenId}`
|
||||
);
|
||||
if (checkIcon) {
|
||||
checkIcon.classList.remove("hidden");
|
||||
setTimeout(() => {
|
||||
checkIcon.classList.add("hidden");
|
||||
if (originalIcon) {
|
||||
originalIcon.classList.remove(
|
||||
"hidden"
|
||||
);
|
||||
}
|
||||
}, 2000);
|
||||
}
|
||||
}}
|
||||
>
|
||||
<Copy
|
||||
id={`icon-${r.accessTokenId}`}
|
||||
className="h-4 w-4"
|
||||
/>
|
||||
<Check
|
||||
id={`check-icon-${r.accessTokenId}`}
|
||||
className="hidden text-green-500 h-4 w-4"
|
||||
/>
|
||||
<span className="sr-only">Copy link</span>
|
||||
</Button>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
},
|
||||
// {
|
||||
// accessorKey: "domain",
|
||||
// header: "Link",
|
||||
// cell: ({ row }) => {
|
||||
// const r = row.original;
|
||||
//
|
||||
// const link = constructShareLink(
|
||||
// r.resourceId,
|
||||
// r.accessTokenId,
|
||||
// r.tokenHash
|
||||
// );
|
||||
//
|
||||
// return (
|
||||
// <div className="flex items-center">
|
||||
// <Link
|
||||
// href={link}
|
||||
// target="_blank"
|
||||
// rel="noopener noreferrer"
|
||||
// className="hover:underline mr-2"
|
||||
// >
|
||||
// {formatLink(link)}
|
||||
// </Link>
|
||||
// <Button
|
||||
// variant="ghost"
|
||||
// className="h-6 w-6 p-0"
|
||||
// onClick={() => {
|
||||
// navigator.clipboard.writeText(link);
|
||||
// const originalIcon = document.querySelector(
|
||||
// `#icon-${r.accessTokenId}`
|
||||
// );
|
||||
// if (originalIcon) {
|
||||
// originalIcon.classList.add("hidden");
|
||||
// }
|
||||
// const checkIcon = document.querySelector(
|
||||
// `#check-icon-${r.accessTokenId}`
|
||||
// );
|
||||
// if (checkIcon) {
|
||||
// checkIcon.classList.remove("hidden");
|
||||
// setTimeout(() => {
|
||||
// checkIcon.classList.add("hidden");
|
||||
// if (originalIcon) {
|
||||
// originalIcon.classList.remove(
|
||||
// "hidden"
|
||||
// );
|
||||
// }
|
||||
// }, 2000);
|
||||
// }
|
||||
// }}
|
||||
// >
|
||||
// <Copy
|
||||
// id={`icon-${r.accessTokenId}`}
|
||||
// className="h-4 w-4"
|
||||
// />
|
||||
// <Check
|
||||
// id={`check-icon-${r.accessTokenId}`}
|
||||
// className="hidden text-green-500 h-4 w-4"
|
||||
// />
|
||||
// <span className="sr-only">Copy link</span>
|
||||
// </Button>
|
||||
// </div>
|
||||
// );
|
||||
// }
|
||||
// },
|
||||
{
|
||||
accessorKey: "createdAt",
|
||||
header: ({ column }) => {
|
||||
|
||||
@@ -46,9 +46,9 @@ export default async function ShareLinksPage(props: ShareLinksPageProps) {
|
||||
redirect(`/${params.orgId}/settings/resources`);
|
||||
}
|
||||
|
||||
const rows: ShareLinkRow[] = tokens.map((token) => {
|
||||
return token;
|
||||
});
|
||||
const rows: ShareLinkRow[] = tokens.map(
|
||||
(token) => ({ ...token }) as ShareLinkRow
|
||||
);
|
||||
|
||||
return (
|
||||
<>
|
||||
|
||||
Reference in New Issue
Block a user