diff --git a/web/contract/console/app-asset.ts b/web/contract/console/app-asset.ts index af2d7ed30f..e63eeada8d 100644 --- a/web/contract/console/app-asset.ts +++ b/web/contract/console/app-asset.ts @@ -1,6 +1,5 @@ import type { AppAssetDeleteResponse, - AppAssetFileContentResponse, AppAssetFileDownloadUrlResponse, AppAssetNode, AppAssetPublishResponse, @@ -9,7 +8,6 @@ import type { MoveNodePayload, RenameNodePayload, ReorderNodePayload, - UpdateFileContentPayload, } from '@/types/app-asset' import { type } from '@orpc/contract' import { base } from '../base' @@ -53,7 +51,7 @@ export const getFileContentContract = base .input(type<{ params: { appId: string, nodeId: string } }>()) - .output(type()) + .output(type<{ content: string }>()) export const getFileDownloadUrlContract = base .route({ @@ -72,7 +70,7 @@ export const updateFileContentContract = base }) .input(type<{ params: { appId: string, nodeId: string } - body: UpdateFileContentPayload + body: { content: string } }>()) .output(type()) diff --git a/web/service/use-app-asset.ts b/web/service/use-app-asset.ts index a963305e84..66aed305ab 100644 --- a/web/service/use-app-asset.ts +++ b/web/service/use-app-asset.ts @@ -100,6 +100,17 @@ export const useGetAppAssetFileContent = (appId: string, nodeId: string) => { return useQuery({ queryKey: consoleQuery.appAsset.getFileContent.queryKey({ input: { params: { appId, nodeId } } }), queryFn: () => consoleClient.appAsset.getFileContent({ params: { appId, nodeId } }), + select: (data) => { + try { + const result = JSON.parse(data.content) + return result + } + catch { + return { + content: '', + } + } + }, enabled: !!appId && !!nodeId, }) } @@ -127,7 +138,7 @@ export const useUpdateAppAssetFileContent = () => { }) => { return consoleClient.appAsset.updateFileContent({ params: { appId, nodeId }, - body: payload, + body: { content: JSON.stringify(payload) }, }) }, onSuccess: (_, variables) => {