From 6e2454a2d176d45e2f9bfa71d90e984d7c56b471 Mon Sep 17 00:00:00 2001 From: TwilightLogic Date: Thu, 6 Jun 2024 18:24:23 +0800 Subject: [PATCH] feat: encapsulate the `copyToClipboard` function --- .../pages/settings/components/manage-sessions.tsx | 12 +----------- infra/rooch-portal/src/utils/copyToClipboard.ts | 12 ++++++++++++ 2 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 infra/rooch-portal/src/utils/copyToClipboard.ts diff --git a/infra/rooch-portal/src/pages/settings/components/manage-sessions.tsx b/infra/rooch-portal/src/pages/settings/components/manage-sessions.tsx index d165c1a79a..a4d6933c42 100644 --- a/infra/rooch-portal/src/pages/settings/components/manage-sessions.tsx +++ b/infra/rooch-portal/src/pages/settings/components/manage-sessions.tsx @@ -21,23 +21,13 @@ import { AlertCircle, Check, ChevronDown, ChevronUp, Copy } from 'lucide-react' import { formatTimestamp } from '@/utils/format.ts' import { SessionInfoResult } from '@roochnetwork/rooch-sdk' +import { copyToClipboard } from '@/utils/copyToClipboard.ts' interface ExpandableRowProps { session: SessionInfoResult remove: (authKey: string) => void } -const copyToClipboard = async (text: string, setCopied: (value: boolean) => void) => { - try { - await navigator.clipboard.writeText(text) - setCopied(true) - console.log('Copied to clipboard:', text) - setTimeout(() => setCopied(false), 2000) // Reset after 2 seconds - } catch (err) { - console.error('Could not copy text:', err) - } -} - export const ManageSessions: React.FC = () => { const sessionKey = useCurrentSession() const { mutateAsync: removeSession } = useRemoveSession() diff --git a/infra/rooch-portal/src/utils/copyToClipboard.ts b/infra/rooch-portal/src/utils/copyToClipboard.ts new file mode 100644 index 0000000000..4bc13603e1 --- /dev/null +++ b/infra/rooch-portal/src/utils/copyToClipboard.ts @@ -0,0 +1,12 @@ +// Copyright (c) RoochNetwork +// SPDX-License-Identifier: Apache-2.0 +export async function copyToClipboard(text: string, setCopied: (value: boolean) => void) { + try { + await navigator.clipboard.writeText(text) + setCopied(true) + console.log('Copied to clipboard', text) + setTimeout(() => setCopied(false), 2000) + } catch (err) { + console.error('Could not copy text', err) + } +}