fix: propagation from closing tag in filters

This commit is contained in:
Yi 2024-11-07 15:31:11 +08:00
parent 2a590f6d2b
commit 035c9eb147
3 changed files with 15 additions and 18 deletions

View File

@ -1,4 +1,3 @@
import { useState } from 'react'
import Toast from '@/app/components/base/toast' import Toast from '@/app/components/base/toast'
import { uploadGitHub } from '@/service/plugins' import { uploadGitHub } from '@/service/plugins'
import { Octokit } from '@octokit/core' import { Octokit } from '@octokit/core'
@ -42,18 +41,12 @@ export const useGitHubReleases = () => {
} }
export const useGitHubUpload = () => { export const useGitHubUpload = () => {
const [isLoading, setIsLoading] = useState(false)
const [error, setError] = useState<string | null>(null)
const handleUpload = async ( const handleUpload = async (
repoUrl: string, repoUrl: string,
selectedVersion: string, selectedVersion: string,
selectedPackage: string, selectedPackage: string,
onSuccess?: (GitHubPackage: { manifest: any; unique_identifier: string }) => void, onSuccess?: (GitHubPackage: { manifest: any; unique_identifier: string }) => void,
) => { ) => {
setIsLoading(true)
setError(null)
try { try {
const response = await uploadGitHub(repoUrl, selectedVersion, selectedPackage) const response = await uploadGitHub(repoUrl, selectedVersion, selectedPackage)
const GitHubPackage = { const GitHubPackage = {
@ -64,16 +57,13 @@ export const useGitHubUpload = () => {
return GitHubPackage return GitHubPackage
} }
catch (error) { catch (error) {
setError('Error uploading package')
Toast.notify({ Toast.notify({
type: 'error', type: 'error',
message: 'Error uploading package', message: 'Error uploading package',
}) })
} throw error
finally {
setIsLoading(false)
} }
} }
return { handleUpload, isLoading, error } return { handleUpload }
} }

View File

@ -8,6 +8,8 @@ import type { PluginDeclaration, UpdateFromGitHubPayload } from '../../../types'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
import { useGitHubUpload } from '../../hooks' import { useGitHubUpload } from '../../hooks'
const i18nPrefix = 'plugin.installFromGitHub'
type SelectPackageProps = { type SelectPackageProps = {
updatePayload: UpdateFromGitHubPayload updatePayload: UpdateFromGitHubPayload
repoUrl: string repoUrl: string
@ -60,7 +62,7 @@ const SelectPackage: React.FC<SelectPackageProps> = ({
if (e.response?.message) if (e.response?.message)
onFailed(e.response?.message) onFailed(e.response?.message)
else else
onFailed(t('plugin.error.uploadFailed')) onFailed(t(`${i18nPrefix}.uploadFailed`))
} }
finally { finally {
setIsUploading(false) setIsUploading(false)
@ -73,28 +75,28 @@ const SelectPackage: React.FC<SelectPackageProps> = ({
htmlFor='version' htmlFor='version'
className='flex flex-col justify-center items-start self-stretch text-text-secondary' className='flex flex-col justify-center items-start self-stretch text-text-secondary'
> >
<span className='system-sm-semibold'>{t('plugin.installFromGitHub.selectVersion')}</span> <span className='system-sm-semibold'>{t(`${i18nPrefix}.selectVersion`)}</span>
</label> </label>
<PortalSelect <PortalSelect
value={selectedVersion} value={selectedVersion}
onSelect={onSelectVersion} onSelect={onSelectVersion}
items={versions} items={versions}
installedValue={updatePayload?.originalPackageInfo.version} installedValue={updatePayload?.originalPackageInfo.version}
placeholder={t('plugin.installFromGitHub.selectVersionPlaceholder') || ''} placeholder={t(`${i18nPrefix}.selectVersionPlaceholder`) || ''}
popupClassName='w-[512px] z-[1001]' popupClassName='w-[512px] z-[1001]'
/> />
<label <label
htmlFor='package' htmlFor='package'
className='flex flex-col justify-center items-start self-stretch text-text-secondary' className='flex flex-col justify-center items-start self-stretch text-text-secondary'
> >
<span className='system-sm-semibold'>{t('plugin.installFromGitHub.selectPackage')}</span> <span className='system-sm-semibold'>{t(`${i18nPrefix}.selectPackage`)}</span>
</label> </label>
<PortalSelect <PortalSelect
value={selectedPackage} value={selectedPackage}
onSelect={onSelectPackage} onSelect={onSelectPackage}
items={packages} items={packages}
readonly={!selectedVersion} readonly={!selectedVersion}
placeholder={t('plugin.installFromGitHub.selectPackagePlaceholder') || ''} placeholder={t(`${i18nPrefix}.selectPackagePlaceholder`) || ''}
popupClassName='w-[512px] z-[1001]' popupClassName='w-[512px] z-[1001]'
/> />
<div className='flex justify-end items-center gap-2 self-stretch mt-4'> <div className='flex justify-end items-center gap-2 self-stretch mt-4'>

View File

@ -87,7 +87,12 @@ const CategoriesFilter = ({
!!selectedTagsLength && ( !!selectedTagsLength && (
<RiCloseCircleFill <RiCloseCircleFill
className='w-4 h-4 text-text-quaternary cursor-pointer' className='w-4 h-4 text-text-quaternary cursor-pointer'
onClick={() => onChange([])} onClick={
(e) => {
e.stopPropagation()
onChange([])
}
}
/> />
) )
} }