fix: fix duplicate app lose custom image (#19775)

This commit is contained in:
CorrectRoad
2025-05-20 16:44:51 +08:00
committed by GitHub
parent b2ae46b80f
commit 618981f1ae
5 changed files with 19 additions and 7 deletions

View File

@@ -111,14 +111,16 @@ const AppCard = ({ app, onRefresh }: AppCardProps) => {
}
}, [app.id, mutateApps, notify, onRefresh, t])
const onCopy: DuplicateAppModalProps['onConfirm'] = async ({ name, icon_type, icon, icon_background }) => {
const onCopy: DuplicateAppModalProps['onConfirm'] = async ({ name, icon_type, icon, icon_background, icon_url }) => {
try {
console.log('icon_url', icon_url)
const newApp = await copyApp({
appID: app.id,
name,
icon_type,
icon,
icon_background,
icon_url,
mode: app.mode,
})
setShowDuplicateModal(false)

View File

@@ -24,6 +24,7 @@ export type DuplicateAppModalProps = {
onConfirm: (info: {
name: string
icon_type: AppIconType
icon_url?: string | null
icon: string
icon_background?: string | null
}) => Promise<void>
@@ -63,6 +64,7 @@ const DuplicateAppModal = ({
name,
icon_type: appIcon.type,
icon: appIcon.type === 'emoji' ? appIcon.icon : appIcon.fileId,
icon_url: appIcon.type === 'image' ? appIcon.url : undefined,
icon_background: appIcon.type === 'emoji' ? appIcon.background : undefined,
})
onHide()

View File

@@ -21,12 +21,12 @@ export const createApp: Fetcher<AppDetailResponse, { name: string; icon_type?: A
return post<AppDetailResponse>('apps', { body: { name, icon_type, icon, icon_background, mode, description, model_config: config } })
}
export const updateAppInfo: Fetcher<AppDetailResponse, { appID: string; name: string; icon_type: AppIconType; icon: string; icon_background?: string; description: string; use_icon_as_answer_icon?: boolean }> = ({ appID, name, icon_type, icon, icon_background, description, use_icon_as_answer_icon }) => {
return put<AppDetailResponse>(`apps/${appID}`, { body: { name, icon_type, icon, icon_background, description, use_icon_as_answer_icon } })
export const updateAppInfo: Fetcher<AppDetailResponse, { appID: string; name: string; icon_type: AppIconType; icon: string; icon_background?: string; icon_url?: string; description: string; use_icon_as_answer_icon?: boolean }> = ({ appID, name, icon_type, icon, icon_background, icon_url, description, use_icon_as_answer_icon }) => {
return put<AppDetailResponse>(`apps/${appID}`, { body: { name, icon_type, icon, icon_background, icon_url, description, use_icon_as_answer_icon } })
}
export const copyApp: Fetcher<AppDetailResponse, { appID: string; name: string; icon_type: AppIconType; icon: string; icon_background?: string | null; mode: AppMode; description?: string }> = ({ appID, name, icon_type, icon, icon_background, mode, description }) => {
return post<AppDetailResponse>(`apps/${appID}/copy`, { body: { name, icon_type, icon, icon_background, mode, description } })
export const copyApp: Fetcher<AppDetailResponse, { appID: string; name: string; icon_type: AppIconType; icon: string; icon_background?: string | null; icon_url?: string | null; mode: AppMode; description?: string }> = ({ appID, name, icon_type, icon, icon_background, icon_url, mode, description }) => {
return post<AppDetailResponse>(`apps/${appID}/copy`, { body: { name, icon_type, icon, icon_background, icon_url, mode, description } })
}
export const exportAppConfig: Fetcher<{ data: string }, { appID: string; include?: boolean }> = ({ appID, include = false }) => {