dify/web/app/components/plugins/plugin-detail-panel/subscription-list/index.tsx
Yeuoly b76e17b25d
feat: introduce trigger functionality (#27644)
Signed-off-by: lyzno1 <yuanyouhuilyz@gmail.com>
Co-authored-by: Stream <Stream_2@qq.com>
Co-authored-by: lyzno1 <92089059+lyzno1@users.noreply.github.com>
Co-authored-by: zhsama <torvalds@linux.do>
Co-authored-by: Harry <xh001x@hotmail.com>
Co-authored-by: lyzno1 <yuanyouhuilyz@gmail.com>
Co-authored-by: yessenia <yessenia.contact@gmail.com>
Co-authored-by: hjlarry <hjlarry@163.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: WTW0313 <twwu@dify.ai>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-12 17:59:37 +08:00

52 lines
1.2 KiB
TypeScript

import { withErrorBoundary } from '@/app/components/base/error-boundary'
import Loading from '@/app/components/base/loading'
import { SubscriptionListView } from './list-view'
import { SubscriptionSelectorView } from './selector-view'
import { useSubscriptionList } from './use-subscription-list'
export enum SubscriptionListMode {
PANEL = 'panel',
SELECTOR = 'selector',
}
export type SimpleSubscription = {
id: string,
name: string
}
type SubscriptionListProps = {
mode?: SubscriptionListMode
selectedId?: string
onSelect?: (v: SimpleSubscription, callback?: () => void) => void
}
export { SubscriptionSelectorEntry } from './selector-entry'
export const SubscriptionList = withErrorBoundary(({
mode = SubscriptionListMode.PANEL,
selectedId,
onSelect,
}: SubscriptionListProps) => {
const { isLoading, refetch } = useSubscriptionList()
if (isLoading) {
return (
<div className='flex items-center justify-center py-4'>
<Loading />
</div>
)
}
if (mode === SubscriptionListMode.SELECTOR) {
return (
<SubscriptionSelectorView
selectedId={selectedId}
onSelect={(v) => {
onSelect?.(v, refetch)
}}
/>
)
}
return <SubscriptionListView />
})