refactor: restructure logic

This commit is contained in:
David Nguyen
2023-10-06 14:42:41 +11:00
parent 8cbc396e2d
commit 732dc45295
4 changed files with 37 additions and 32 deletions

View File

@ -20,7 +20,7 @@ export type DataTableActionButtonProps = {
export const DataTableActionButton = ({ row }: DataTableActionButtonProps) => {
const { data: session } = useSession();
const { copyShareLink, isCopyingShareLink } = useCopyShareLink();
const { createAndCopyShareLink, isCopyingShareLink } = useCopyShareLink();
if (!session) {
return null;
@ -63,12 +63,12 @@ export const DataTableActionButton = ({ row }: DataTableActionButtonProps) => {
<Button
className="w-24"
loading={isCopyingShareLink}
onClick={() => {
void copyShareLink({
onClick={async () =>
createAndCopyShareLink({
token: recipient?.token,
documentId: row.id,
});
}}
})
}
>
{!isCopyingShareLink && <Share className="-ml-1 mr-2 h-4 w-4" />}
Share

View File

@ -39,7 +39,7 @@ export type DataTableActionDropdownProps = {
export const DataTableActionDropdown = ({ row }: DataTableActionDropdownProps) => {
const { data: session } = useSession();
const { copyShareLink, isCopyingShareLink } = useCopyShareLink();
const { createAndCopyShareLink, isCopyingShareLink } = useCopyShareLink();
if (!session) {
return null;
@ -140,12 +140,12 @@ export const DataTableActionDropdown = ({ row }: DataTableActionDropdownProps) =
</DropdownMenuItem>
<DropdownMenuItem
onClick={() => {
void copyShareLink({
onClick={async () =>
createAndCopyShareLink({
token: recipient?.token,
documentId: row.id,
});
}}
})
}
>
{isCopyingShareLink ? (
<Loader className="mr-2 h-4 w-4" />

View File

@ -24,7 +24,7 @@ export type ShareButtonProps = HTMLAttributes<HTMLButtonElement> & {
};
export const ShareButton = ({ token, documentId }: ShareButtonProps) => {
const { copyShareLink, isCopyingShareLink } = useCopyShareLink();
const { copyShareLink, createAndCopyShareLink, isCopyingShareLink } = useCopyShareLink();
const [isOpen, setIsOpen] = useState(false);
@ -46,14 +46,14 @@ export const ShareButton = ({ token, documentId }: ShareButtonProps) => {
};
const onCopyClick = async () => {
const copyToClipboardValue = shareLink
? `${window.location.origin}/share/${shareLink.slug}`
: {
token,
documentId,
};
await copyShareLink(copyToClipboardValue);
if (shareLink) {
await copyShareLink(`${window.location.origin}/share/${shareLink.slug}`);
} else {
await createAndCopyShareLink({
token,
documentId,
});
}
setIsOpen(false);
};