From 562d45bd9d5b1dfc64e75972938a2243e7a10867 Mon Sep 17 00:00:00 2001 From: Rhon Joe Date: Fri, 21 Jul 2023 11:15:00 +0800 Subject: [PATCH] fix(web): using Tooltip unique selector key (#622) --- .../components/develop/secret-key/input-copy.tsx | 11 +++++++---- .../develop/secret-key/secret-key-generate.tsx | 2 +- .../develop/secret-key/secret-key-modal.tsx | 14 ++++++-------- .../members-page/invited-modal/invitation-link.tsx | 8 +++++--- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/web/app/components/develop/secret-key/input-copy.tsx b/web/app/components/develop/secret-key/input-copy.tsx index 74a3ff65d4821a..cc3440e5cdda5c 100644 --- a/web/app/components/develop/secret-key/input-copy.tsx +++ b/web/app/components/develop/secret-key/input-copy.tsx @@ -1,8 +1,9 @@ 'use client' -import React, { useEffect, useState } from 'react' +import React, { useEffect, useRef, useState } from 'react' import copy from 'copy-to-clipboard' import { t } from 'i18next' import s from './style.module.css' +import { randomString } from '@/app/components/app-sidebar/basic' import Tooltip from '@/app/components/base/tooltip' type IInputCopyProps = { @@ -13,13 +14,15 @@ type IInputCopyProps = { } const InputCopy = ({ - value, + value = '', className, readOnly = true, children, }: IInputCopyProps) => { const [isCopied, setIsCopied] = useState(false) + const selector = useRef(`input-tooltip-${randomString(4)}`) + useEffect(() => { if (isCopied) { const timeout = setTimeout(() => { @@ -38,7 +41,7 @@ const InputCopy = ({ {children}
@@ -50,7 +53,7 @@ const InputCopy = ({
diff --git a/web/app/components/develop/secret-key/secret-key-generate.tsx b/web/app/components/develop/secret-key/secret-key-generate.tsx index baac8341b2e928..e1b48f69ff39f5 100644 --- a/web/app/components/develop/secret-key/secret-key-generate.tsx +++ b/web/app/components/develop/secret-key/secret-key-generate.tsx @@ -18,7 +18,7 @@ const SecretKeyGenerateModal = ({ isShow = false, onClose, newKey, - className + className, }: ISecretKeyGenerateModalProps) => { const { t } = useTranslation() return ( diff --git a/web/app/components/develop/secret-key/secret-key-modal.tsx b/web/app/components/develop/secret-key/secret-key-modal.tsx index f120d59ac5e15d..93f975e3f3543b 100644 --- a/web/app/components/develop/secret-key/secret-key-modal.tsx +++ b/web/app/components/develop/secret-key/secret-key-modal.tsx @@ -6,6 +6,7 @@ import { import { useTranslation } from 'react-i18next' import { PlusIcon, XMarkIcon } from '@heroicons/react/20/solid' import useSWR, { useSWRConfig } from 'swr' +import { useContext } from 'use-context-selector' import SecretKeyGenerateModal from './secret-key-generate' import s from './style.module.css' import Modal from '@/app/components/base/modal' @@ -16,7 +17,6 @@ import Tooltip from '@/app/components/base/tooltip' import Loading from '@/app/components/base/loading' import Confirm from '@/app/components/base/confirm' import useCopyToClipboard from '@/hooks/use-copy-to-clipboard' -import { useContext } from 'use-context-selector' import I18n from '@/context/i18n' type ISecretKeyModalProps = { @@ -58,12 +58,11 @@ const SecretKeyModal = ({ } }, [copyValue]) - const onDel = async () => { setShowConfirmDelete(false) - if (!delKeyID) { + if (!delKeyID) return - } + await delApikey({ url: `/apps/${appId}/api-keys/${delKeyID}`, params: {} }) mutate(commonParams) } @@ -80,11 +79,10 @@ const SecretKeyModal = ({ } const formatDate = (timestamp: any) => { - if (locale === 'en') { + if (locale === 'en') return new Intl.DateTimeFormat('en-US', { year: 'numeric', month: 'long', day: 'numeric' }).format((+timestamp) * 1000) - } else { + else return new Intl.DateTimeFormat('fr-CA', { year: 'numeric', month: '2-digit', day: '2-digit' }).format((+timestamp) * 1000) - } } return ( @@ -111,7 +109,7 @@ const SecretKeyModal = ({
{api.last_used_at ? formatDate(api.last_used_at) : t('appApi.never')}
diff --git a/web/app/components/header/account-setting/members-page/invited-modal/invitation-link.tsx b/web/app/components/header/account-setting/members-page/invited-modal/invitation-link.tsx index 0e487feabd3f58..493f4ae813a422 100644 --- a/web/app/components/header/account-setting/members-page/invited-modal/invitation-link.tsx +++ b/web/app/components/header/account-setting/members-page/invited-modal/invitation-link.tsx @@ -1,9 +1,10 @@ 'use client' -import React, { useCallback, useEffect, useState } from 'react' +import React, { useCallback, useEffect, useRef, useState } from 'react' import { t } from 'i18next' import s from './index.module.css' import Tooltip from '@/app/components/base/tooltip' import useCopyToClipboard from '@/hooks/use-copy-to-clipboard' +import { randomString } from '@/app/components/app-sidebar/basic' type IInvitationLinkProps = { value?: string @@ -13,6 +14,7 @@ const InvitationLink = ({ value = '', }: IInvitationLinkProps) => { const [isCopied, setIsCopied] = useState(false) + const selector = useRef(`invite-link-${randomString(4)}`) const [_, copy] = useCopyToClipboard() const copyHandle = useCallback(() => { @@ -37,7 +39,7 @@ const InvitationLink = ({
@@ -46,7 +48,7 @@ const InvitationLink = ({