mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-05-17 18:36:56 +08:00
fix(web): fix Embedded copy status when toggle options (#621)
This commit is contained in:
parent
e9810a6df2
commit
c00a19ced3
@ -1,4 +1,4 @@
|
|||||||
import React, { useState } from 'react'
|
import React, { useEffect, useState } from 'react'
|
||||||
import { useTranslation } from 'react-i18next'
|
import { useTranslation } from 'react-i18next'
|
||||||
import cn from 'classnames'
|
import cn from 'classnames'
|
||||||
import style from './style.module.css'
|
import style from './style.module.css'
|
||||||
@ -43,10 +43,15 @@ const prefixEmbedded = 'appOverview.overview.appInfo.embedded'
|
|||||||
|
|
||||||
type Option = keyof typeof OPTION_MAP
|
type Option = keyof typeof OPTION_MAP
|
||||||
|
|
||||||
|
type OptionStatus = {
|
||||||
|
iframe: boolean
|
||||||
|
scripts: boolean
|
||||||
|
}
|
||||||
|
|
||||||
const Embedded = ({ isShow, onClose, appBaseUrl, accessToken }: Props) => {
|
const Embedded = ({ isShow, onClose, appBaseUrl, accessToken }: Props) => {
|
||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
const [option, setOption] = useState<Option>('iframe')
|
const [option, setOption] = useState<Option>('iframe')
|
||||||
const [isCopied, setIsCopied] = useState({ iframe: false, scripts: false })
|
const [isCopied, setIsCopied] = useState<OptionStatus>({ iframe: false, scripts: false })
|
||||||
const [_, copy] = useCopyToClipboard()
|
const [_, copy] = useCopyToClipboard()
|
||||||
|
|
||||||
const { langeniusVersionInfo } = useAppContext()
|
const { langeniusVersionInfo } = useAppContext()
|
||||||
@ -56,6 +61,19 @@ const Embedded = ({ isShow, onClose, appBaseUrl, accessToken }: Props) => {
|
|||||||
setIsCopied({ ...isCopied, [option]: true })
|
setIsCopied({ ...isCopied, [option]: true })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// when toggle option, reset then copy status
|
||||||
|
const resetCopyStatus = () => {
|
||||||
|
const cache = { ...isCopied }
|
||||||
|
Object.keys(cache).forEach((key) => {
|
||||||
|
cache[key as keyof OptionStatus] = false
|
||||||
|
})
|
||||||
|
setIsCopied(cache)
|
||||||
|
}
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
resetCopyStatus()
|
||||||
|
}, [isShow])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal
|
||||||
title={t(`${prefixEmbedded}.title`)}
|
title={t(`${prefixEmbedded}.title`)}
|
||||||
@ -77,7 +95,10 @@ const Embedded = ({ isShow, onClose, appBaseUrl, accessToken }: Props) => {
|
|||||||
style[`${v}Icon`],
|
style[`${v}Icon`],
|
||||||
option === v && style.active,
|
option === v && style.active,
|
||||||
)}
|
)}
|
||||||
onClick={() => setOption(v as Option)}
|
onClick={() => {
|
||||||
|
setOption(v as Option)
|
||||||
|
resetCopyStatus()
|
||||||
|
}}
|
||||||
></div>
|
></div>
|
||||||
)
|
)
|
||||||
})}
|
})}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user