| @@ -33,20 +33,18 @@ const CardView: FC<ICardViewProps> = ({ appId }) => { | |||
| if (!response) | |||
| return <Loading /> | |||
| const handleError = (err: Error | null) => { | |||
| if (!err) { | |||
| notify({ | |||
| type: 'success', | |||
| message: t('common.actionMsg.modifiedSuccessfully'), | |||
| }) | |||
| const handleCallbackResult = (err: Error | null, message?: string) => { | |||
| const type = err ? 'error' : 'success' | |||
| message ||= (type === 'success' ? 'modifiedSuccessfully' : 'modifiedUnsuccessfully') | |||
| if (type === 'success') { | |||
| mutate(detailParams) | |||
| } | |||
| else { | |||
| notify({ | |||
| type: 'error', | |||
| message: t('common.actionMsg.modificationFailed'), | |||
| }) | |||
| } | |||
| notify({ | |||
| type, | |||
| message: t(`common.actionMsg.${message}`), | |||
| }) | |||
| } | |||
| const onChangeSiteStatus = async (value: boolean) => { | |||
| @@ -56,7 +54,8 @@ const CardView: FC<ICardViewProps> = ({ appId }) => { | |||
| body: { enable_site: value }, | |||
| }) as Promise<App>, | |||
| ) | |||
| handleError(err) | |||
| handleCallbackResult(err) | |||
| } | |||
| const onChangeApiStatus = async (value: boolean) => { | |||
| @@ -66,7 +65,8 @@ const CardView: FC<ICardViewProps> = ({ appId }) => { | |||
| body: { enable_api: value }, | |||
| }) as Promise<App>, | |||
| ) | |||
| handleError(err) | |||
| handleCallbackResult(err) | |||
| } | |||
| const onSaveSiteConfig: IAppCardProps['onSaveSiteConfig'] = async (params) => { | |||
| @@ -79,7 +79,7 @@ const CardView: FC<ICardViewProps> = ({ appId }) => { | |||
| if (!err) | |||
| localStorage.setItem(NEED_REFRESH_APP_LIST_KEY, '1') | |||
| handleError(err) | |||
| handleCallbackResult(err) | |||
| } | |||
| const onGenerateCode = async () => { | |||
| @@ -88,7 +88,8 @@ const CardView: FC<ICardViewProps> = ({ appId }) => { | |||
| url: `/apps/${appId}/site/access-token-reset`, | |||
| }) as Promise<UpdateAppSiteCodeResponse>, | |||
| ) | |||
| handleError(err) | |||
| handleCallbackResult(err, err ? 'generatedUnsuccessfully' : 'generatedSuccessfully') | |||
| } | |||
| return ( | |||
| @@ -93,7 +93,7 @@ const AppCard = ({ app, onRefresh }: AppCardProps) => { | |||
| else { | |||
| notify({ | |||
| type: 'error', | |||
| message: t('common.actionMsg.modificationFailed'), | |||
| message: t('common.actionMsg.modifiedUnsuccessfully'), | |||
| }) | |||
| } | |||
| }, | |||
| @@ -134,7 +134,7 @@ const PromptValuePanel: FC<IPromptValuePanelProps> = ({ | |||
| <div className="space-y-3 "> | |||
| {promptVariables.map(({ key, name, type, options, max_length, required }) => ( | |||
| <div key={key} className="flex items-center justify-between"> | |||
| <div className="mr-1 shrink-0 w-[120px] text-sm text-gray-900">{name || key}</div> | |||
| <div className="mr-1 shrink-0 w-[120px] text-sm text-gray-900 break-all">{name || key}</div> | |||
| {type === 'select' | |||
| ? ( | |||
| <Select | |||
| @@ -288,7 +288,7 @@ const CompletionConversationDetailComp: FC<{ appId?: string; conversationId?: st | |||
| return true | |||
| } | |||
| catch (err) { | |||
| notify({ type: 'error', message: t('common.actionMsg.modificationFailed') }) | |||
| notify({ type: 'error', message: t('common.actionMsg.modifiedUnsuccessfully') }) | |||
| return false | |||
| } | |||
| } | |||
| @@ -301,7 +301,7 @@ const CompletionConversationDetailComp: FC<{ appId?: string; conversationId?: st | |||
| return true | |||
| } | |||
| catch (err) { | |||
| notify({ type: 'error', message: t('common.actionMsg.modificationFailed') }) | |||
| notify({ type: 'error', message: t('common.actionMsg.modifiedUnsuccessfully') }) | |||
| return false | |||
| } | |||
| } | |||
| @@ -332,7 +332,7 @@ const ChatConversationDetailComp: FC<{ appId?: string; conversationId?: string } | |||
| return true | |||
| } | |||
| catch (err) { | |||
| notify({ type: 'error', message: t('common.actionMsg.modificationFailed') }) | |||
| notify({ type: 'error', message: t('common.actionMsg.modifiedUnsuccessfully') }) | |||
| return false | |||
| } | |||
| } | |||
| @@ -344,7 +344,7 @@ const ChatConversationDetailComp: FC<{ appId?: string; conversationId?: string } | |||
| return true | |||
| } | |||
| catch (err) { | |||
| notify({ type: 'error', message: t('common.actionMsg.modificationFailed') }) | |||
| notify({ type: 'error', message: t('common.actionMsg.modifiedUnsuccessfully') }) | |||
| return false | |||
| } | |||
| } | |||
| @@ -119,9 +119,11 @@ function AppCard({ | |||
| } | |||
| const onGenCode = async () => { | |||
| setGenLoading(true) | |||
| await asyncRunSafe(onGenerateCode?.() as any) | |||
| setGenLoading(false) | |||
| if (onGenerateCode) { | |||
| setGenLoading(true) | |||
| await asyncRunSafe(onGenerateCode()) | |||
| setGenLoading(false) | |||
| } | |||
| } | |||
| return ( | |||
| @@ -46,7 +46,8 @@ const SettingsModal: FC<ISettingsModalProps> = ({ | |||
| onSave, | |||
| }) => { | |||
| const [isShowMore, setIsShowMore] = useState(false) | |||
| const { title, description, copyright, privacy_policy, default_language, icon, icon_background } = appInfo.site | |||
| const { icon, icon_background } = appInfo | |||
| const { title, description, copyright, privacy_policy, default_language } = appInfo.site | |||
| const [inputInfo, setInputInfo] = useState({ title, desc: description, copyright, privacyPolicy: privacy_policy }) | |||
| const [language, setLanguage] = useState(default_language) | |||
| const [saveLoading, setSaveLoading] = useState(false) | |||
| @@ -41,8 +41,8 @@ const ConfirmUI: FC<IConfirmUIProps> = ({ | |||
| </div> | |||
| <div className='flex gap-3 mt-4 ml-12'> | |||
| <div onClick={onConfirm} className='w-20 leading-[34px] text-center text-white border rounded-lg cursor-pointer h-9 border-color-primary-700 bg-primary-700'>{confirmText || t('common.operation.confirm')}</div> | |||
| <div onClick={onCancel} className='w-20 leading-[34px] text-center text-gray-500 border rounded-lg cursor-pointer h-9 border-color-gray-200'>{cancelText || t('common.operation.cancel')}</div> | |||
| <div onClick={onConfirm} className='w-20 leading-9 text-center text-white border rounded-lg cursor-pointer h-9 border-color-primary-700 bg-primary-700'>{confirmText || t('common.operation.confirm')}</div> | |||
| <div onClick={onCancel} className='w-20 leading-9 text-center text-gray-500 border rounded-lg cursor-pointer h-9 border-color-gray-200'>{cancelText || t('common.operation.cancel')}</div> | |||
| </div> | |||
| </div> | |||
| @@ -304,7 +304,7 @@ const Completed: FC<ICompletedProps> = ({ | |||
| setAllSegments([...allSegments]) | |||
| } | |||
| else { | |||
| notify({ type: 'error', message: t('common.actionMsg.modificationFailed') }) | |||
| notify({ type: 'error', message: t('common.actionMsg.modifiedUnsuccessfully') }) | |||
| } | |||
| } | |||
| @@ -315,7 +315,7 @@ const Completed: FC<ICompletedProps> = ({ | |||
| resetList() | |||
| } | |||
| else { | |||
| notify({ type: 'error', message: t('common.actionMsg.modificationFailed') }) | |||
| notify({ type: 'error', message: t('common.actionMsg.modifiedUnsuccessfully') }) | |||
| } | |||
| } | |||
| @@ -206,7 +206,7 @@ const EmbeddingDetail: FC<Props> = ({ detail, stopPosition = 'top', datasetId: d | |||
| setIndexingStatusDetail(null) | |||
| } | |||
| else { | |||
| notify({ type: 'error', message: t('common.actionMsg.modificationFailed') }) | |||
| notify({ type: 'error', message: t('common.actionMsg.modifiedUnsuccessfully') }) | |||
| } | |||
| } | |||
| @@ -292,7 +292,7 @@ const Metadata: FC<IMetadataProps> = ({ docDetail, loading, onUpdate }) => { | |||
| if (!e) | |||
| notify({ type: 'success', message: t('common.actionMsg.modifiedSuccessfully') }) | |||
| else | |||
| notify({ type: 'error', message: t('common.actionMsg.modificationFailed') }) | |||
| notify({ type: 'error', message: t('common.actionMsg.modifiedUnsuccessfully') }) | |||
| onUpdate?.() | |||
| setEditStatus(false) | |||
| setSaveLoading(false) | |||
| @@ -150,7 +150,7 @@ export const OperationAction: FC<{ | |||
| if (!e) | |||
| notify({ type: 'success', message: t('common.actionMsg.modifiedSuccessfully') }) | |||
| else | |||
| notify({ type: 'error', message: t('common.actionMsg.modificationFailed') }) | |||
| notify({ type: 'error', message: t('common.actionMsg.modifiedUnsuccessfully') }) | |||
| onUpdate(operationName) | |||
| } | |||
| @@ -70,7 +70,7 @@ const Form = ({ | |||
| await mutateDatasets() | |||
| } | |||
| catch (e) { | |||
| notify({ type: 'error', message: t('common.actionMsg.modificationFailed') }) | |||
| notify({ type: 'error', message: t('common.actionMsg.modifiedUnsuccessfully') }) | |||
| } | |||
| finally { | |||
| setLoading(false) | |||
| @@ -44,7 +44,7 @@ export const ChatBtn: FC<{ onClick: () => void; className?: string }> = ({ | |||
| return ( | |||
| <Button | |||
| type='primary' | |||
| className={cn(className, `flex items-center ${s.customBtn} gap-2`)} | |||
| className={cn(className, `!px-0 flex items-center ${s.customBtn} gap-2`)} | |||
| onClick={onClick}> | |||
| <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |||
| <path fillRule="evenodd" clipRule="evenodd" d="M18 10.5C18 14.366 14.418 17.5 10 17.5C8.58005 17.506 7.17955 17.1698 5.917 16.52L2 17.5L3.338 14.377C2.493 13.267 2 11.934 2 10.5C2 6.634 5.582 3.5 10 3.5C14.418 3.5 18 6.634 18 10.5ZM7 9.5H5V11.5H7V9.5ZM15 9.5H13V11.5H15V9.5ZM9 9.5H11V11.5H9V9.5Z" fill="white" /> | |||
| @@ -40,10 +40,12 @@ const translation = { | |||
| actionMsg: { | |||
| noModification: 'No modifications at the moment.', | |||
| modifiedSuccessfully: 'Modified successfully', | |||
| modificationFailed: 'Modification failed', | |||
| modifiedUnsuccessfully: 'Modified unsuccessfully', | |||
| copySuccessfully: 'Copied successfully', | |||
| paySucceeded: 'Payment succeeded', | |||
| payCancelled: 'Payment cancelled', | |||
| generatedSuccessfully: 'Generated successfully', | |||
| generatedUnsuccessfully: 'Generated unsuccessfully', | |||
| }, | |||
| model: { | |||
| params: { | |||
| @@ -40,8 +40,10 @@ const translation = { | |||
| actionMsg: { | |||
| noModification: '暂无修改', | |||
| modifiedSuccessfully: '修改成功', | |||
| modificationFailed: '修改失败', | |||
| modifiedUnsuccessfully: '修改失败', | |||
| copySuccessfully: '复制成功', | |||
| generatedSuccessfully: '已重新生成', | |||
| generatedUnsuccessfully: '生成失败', | |||
| paySucceeded: '已支付成功', | |||
| payCancelled: '已取消支付', | |||
| }, | |||