diff --git a/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/welcome-banner.tsx b/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/welcome-banner.tsx index 9b323eaa4b..b5c544106b 100644 --- a/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/welcome-banner.tsx +++ b/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/welcome-banner.tsx @@ -19,16 +19,16 @@ import I18n from '@/context/i18n' type IStatusType = 'normal' | 'verified' | 'error' | 'error-api-key-exceed-bill' const STATUS_COLOR_MAP = { - normal: { color: '', bgColor: 'bg-primary-50', borderColor: 'border-primary-100' }, - error: { color: 'text-red-600', bgColor: 'bg-red-50', borderColor: 'border-red-100' }, - verified: { color: '', bgColor: 'bg-green-50', borderColor: 'border-green-100' }, + 'normal': { color: '', bgColor: 'bg-primary-50', borderColor: 'border-primary-100' }, + 'error': { color: 'text-red-600', bgColor: 'bg-red-50', borderColor: 'border-red-100' }, + 'verified': { color: '', bgColor: 'bg-green-50', borderColor: 'border-green-100' }, 'error-api-key-exceed-bill': { color: 'text-red-600', bgColor: 'bg-red-50', borderColor: 'border-red-100' }, } const CheckCircleIcon: FC<{ className?: string }> = ({ className }) => { return - + } @@ -81,11 +81,11 @@ const EditKeyDiv: FC = ({ className = '', showInPopover = false, on catch (err: any) { if (err.status === 400) { err.json().then(({ code }: any) => { - if (code === 'provider_request_failed') { + if (code === 'provider_request_failed') setEditStatus('error-api-key-exceed-bill') - } }) - } else { + } + else { setEditStatus('error') } } @@ -96,19 +96,19 @@ const EditKeyDiv: FC = ({ className = '', showInPopover = false, on const renderErrorMessage = () => { if (validating) { return ( -
+
{t('common.provider.validating')}
) } if (editStatus === 'error-api-key-exceed-bill') { return ( -
+
{t('common.provider.apiKeyExceedBill')} {locale === 'en' ? ' ' : ''} - {locale === 'en' ? 'this link' : '这篇文档'} @@ -117,7 +117,7 @@ const EditKeyDiv: FC = ({ className = '', showInPopover = false, on } if (editStatus === 'error') { return ( -
+
{t('common.provider.invalidKey')}
) diff --git a/web/app/(commonLayout)/datasets/(datasetDetailLayout)/[datasetId]/layout.tsx b/web/app/(commonLayout)/datasets/(datasetDetailLayout)/[datasetId]/layout.tsx index b420573ea0..ad198d329e 100644 --- a/web/app/(commonLayout)/datasets/(datasetDetailLayout)/[datasetId]/layout.tsx +++ b/web/app/(commonLayout)/datasets/(datasetDetailLayout)/[datasetId]/layout.tsx @@ -71,7 +71,7 @@ const TargetIcon: FC<{ className?: string }> = ({ className }) => { const TargetSolidIcon: FC<{ className?: string }> = ({ className }) => { return - + diff --git a/web/app/components/app-sidebar/basic.tsx b/web/app/components/app-sidebar/basic.tsx index 1a8c0f03f1..a0fb95d169 100644 --- a/web/app/components/app-sidebar/basic.tsx +++ b/web/app/components/app-sidebar/basic.tsx @@ -33,7 +33,7 @@ const AlgorithmSvg = const DatasetSvg = - + const ICON_MAP = { diff --git a/web/app/components/app/chat/index.tsx b/web/app/components/app/chat/index.tsx index c8cdab3e78..591fca47b5 100644 --- a/web/app/components/app/chat/index.tsx +++ b/web/app/components/app/chat/index.tsx @@ -1,6 +1,6 @@ 'use client' import type { FC } from 'react' -import React, { useEffect, useRef, useState } from 'react' +import React, { useEffect, useLayoutEffect, useRef, useState } from 'react' import { useContext } from 'use-context-selector' import cn from 'classnames' import { HandThumbDownIcon, HandThumbUpIcon } from '@heroicons/react/24/outline' @@ -22,7 +22,7 @@ import useBreakpoints, { MediaType } from '@/hooks/use-breakpoints' const stopIcon = ( - + ) export type Feedbacktype = { @@ -132,8 +132,8 @@ const EditIcon: FC<{ className?: string }> = ({ className }) => { export const EditIconSolid: FC<{ className?: string }> = ({ className }) => { return - - + + } @@ -474,6 +474,16 @@ const Chat: FC = ({ const isMobile = media === MediaType.mobile const sendBtn =
+ const suggestionListRef = useRef(null) + const [hasScrollbar, setHasScrollbar] = useState(false) + useLayoutEffect(() => { + if (suggestionListRef.current) { + const listDom = suggestionListRef.current + const hasScrollbar = listDom.scrollWidth > listDom.clientWidth + setHasScrollbar(hasScrollbar) + } + }, [suggestionList]) + return (
{/* Chat List */} @@ -523,7 +533,8 @@ const Chat: FC = ({ background: 'linear-gradient(270deg, rgba(243, 244, 246, 0) 0%, #F3F4F6 100%)', }}>
-
+ {/* has scrollbar would hide part of first item */} +
{suggestionList?.map((item, index) => (