Unverified Commit 3c37fd37 authored by Yuhao's avatar Yuhao Committed by GitHub

fix: batch mobile layout fixes (#1641)

parent cf0ba794
...@@ -6,11 +6,9 @@ const Layout: FC<{ ...@@ -6,11 +6,9 @@ const Layout: FC<{
children: React.ReactNode children: React.ReactNode
}> = ({ children }) => { }> = ({ children }) => {
return ( return (
<div className=''> <div className="min-w-[300px] h-full pb-[env(safe-area-inset-bottom)]">
<div className="min-w-[300px]"> <GA gaType={GaType.webapp} />
<GA gaType={GaType.webapp} /> {children}
{children}
</div>
</div> </div>
) )
} }
......
...@@ -17,6 +17,7 @@ import ModifyRetrievalModal from './modify-retrieval-modal' ...@@ -17,6 +17,7 @@ import ModifyRetrievalModal from './modify-retrieval-modal'
import type { HitTestingResponse, HitTesting as HitTestingType } from '@/models/datasets' import type { HitTestingResponse, HitTesting as HitTestingType } from '@/models/datasets'
import Loading from '@/app/components/base/loading' import Loading from '@/app/components/base/loading'
import Modal from '@/app/components/base/modal' import Modal from '@/app/components/base/modal'
import Drawer from '@/app/components/base/drawer'
import Pagination from '@/app/components/base/pagination' import Pagination from '@/app/components/base/pagination'
import FloatRightContainer from '@/app/components/base/float-right-container' import FloatRightContainer from '@/app/components/base/float-right-container'
import { fetchTestingRecords } from '@/service/datasets' import { fetchTestingRecords } from '@/service/datasets'
...@@ -206,7 +207,7 @@ const HitTesting: FC<Props> = ({ datasetId }: Props) => { ...@@ -206,7 +207,7 @@ const HitTesting: FC<Props> = ({ datasetId }: Props) => {
}} }}
/>} />}
</Modal> </Modal>
{isShowModifyRetrievalModal && ( <Drawer isOpen={isShowModifyRetrievalModal} onClose={() => setIsShowModifyRetrievalModal(false)} footer={null} mask={isMobile} panelClassname='mt-16 mx-2 sm:mr-2 mb-3 !p-0 !max-w-[640px] rounded-xl'>
<ModifyRetrievalModal <ModifyRetrievalModal
indexMethod={currentDataset?.indexing_technique || ''} indexMethod={currentDataset?.indexing_technique || ''}
value={retrievalConfig} value={retrievalConfig}
...@@ -217,7 +218,7 @@ const HitTesting: FC<Props> = ({ datasetId }: Props) => { ...@@ -217,7 +218,7 @@ const HitTesting: FC<Props> = ({ datasetId }: Props) => {
setIsShowModifyRetrievalModal(false) setIsShowModifyRetrievalModal(false)
}} }}
/> />
)} </Drawer>
</div> </div>
) )
} }
......
...@@ -66,9 +66,8 @@ const ModifyRetrievalModal: FC<Props> = ({ ...@@ -66,9 +66,8 @@ const ModifyRetrievalModal: FC<Props> = ({
return ( return (
<div <div
className='fixed top-16 right-2 flex flex-col bg-white border-[0.5px] border-gray-200 rounded-xl shadow-xl z-10' className='w-full flex flex-col bg-white border-[0.5px] border-gray-200 rounded-xl shadow-xl'
style={{ style={{
width: 632,
height: 'calc(100vh - 72px)', height: 'calc(100vh - 72px)',
}} }}
ref={ref} ref={ref}
......
...@@ -30,31 +30,29 @@ const AppCard = ({ ...@@ -30,31 +30,29 @@ const AppCard = ({
const { t } = useTranslation() const { t } = useTranslation()
const { app: appBasicInfo } = app const { app: appBasicInfo } = app
return ( return (
<div className={s.wrap}> <div className='col-span-1 bg-white border-2 border-solid border-transparent rounded-lg shadow-sm min-h-[160px] flex flex-col transition-all duration-200 ease-in-out cursor-pointer hover:shadow-lg'>
<div className='col-span-1 bg-white border-2 border-solid border-transparent rounded-lg shadow-sm min-h-[160px] flex flex-col transition-all duration-200 ease-in-out cursor-pointer hover:shadow-lg'> <div className='flex pt-[14px] px-[14px] pb-3 h-[66px] items-center gap-3 grow-0 shrink-0'>
<div className='flex pt-[14px] px-[14px] pb-3 h-[66px] items-center gap-3 grow-0 shrink-0'> <AppIcon size='small' icon={app.app.icon} background={app.app.icon_background} />
<AppIcon size='small' icon={app.app.icon} background={app.app.icon_background} /> <div className='relative h-8 text-sm font-medium leading-8 grow'>
<div className='relative h-8 text-sm font-medium leading-8 grow'> <div className='absolute top-0 left-0 w-full h-full overflow-hidden text-ellipsis whitespace-nowrap'>{appBasicInfo.name}</div>
<div className='absolute top-0 left-0 w-full h-full overflow-hidden text-ellipsis whitespace-nowrap'>{appBasicInfo.name}</div>
</div>
</div> </div>
<div className='mb-3 px-[14px] h-9 text-xs leading-normal text-gray-500 line-clamp-2'>{app.description}</div> </div>
<div className='flex items-center flex-wrap min-h-[42px] px-[14px] pt-2 pb-[10px]'> <div className='mb-3 px-[14px] h-9 text-xs leading-normal text-gray-500 line-clamp-2'>{app.description}</div>
<div className={s.mode}> <div className='flex items-center flex-wrap min-h-[42px] px-[14px] pt-2 pb-[10px]'>
<AppModeLabel mode={appBasicInfo.mode} /> <div className={s.mode}>
</div> <AppModeLabel mode={appBasicInfo.mode} />
<div className={cn(s.opWrap, 'flex items-center w-full space-x-2')}> </div>
<Button type='primary' className='grow flex items-center !h-7' onClick={() => onAddToWorkspace(appBasicInfo.id)}> <div className={cn(s.opWrap, 'flex items-center w-full space-x-2')}>
<PlusIcon className='w-4 h-4 mr-1' /> <Button type='primary' className='grow flex items-center !h-7' onClick={() => onAddToWorkspace(appBasicInfo.id)}>
<span className='text-xs'>{t('explore.appCard.addToWorkspace')}</span> <PlusIcon className='w-4 h-4 mr-1' />
<span className='text-xs'>{t('explore.appCard.addToWorkspace')}</span>
</Button>
{canCreate && (
<Button className='grow flex items-center !h-7 space-x-1' onClick={onCreate}>
{CustomizeBtn}
<span className='text-xs'>{t('explore.appCard.customize')}</span>
</Button> </Button>
{canCreate && ( )}
<Button className='grow flex items-center !h-7 space-x-1' onClick={onCreate}>
{CustomizeBtn}
<span className='text-xs'>{t('explore.appCard.customize')}</span>
</Button>
)}
</div>
</div> </div>
</div> </div>
</div> </div>
......
.wrap {
min-width: 312px;
}
.mode { .mode {
display: flex; display: flex;
height: 28px; height: 28px;
......
...@@ -97,14 +97,9 @@ const Apps: FC = () => { ...@@ -97,14 +97,9 @@ const Apps: FC = () => {
value={currCategory} value={currCategory}
onChange={setCurrCategory} onChange={setCurrCategory}
/> />
<div <div className='flex flex-1 mt-6 pb-6 flex-col overflow-auto bg-gray-100 shrink-0 grow'>
className='flex mt-6 pb-6 flex-col overflow-auto bg-gray-100 shrink-0 grow'
style={{
maxHeight: 'calc(100vh - 243px)',
}}
>
<nav <nav
className={`${s.appList} grid content-start gap-4 px-12 shrink-0`}> className={`${s.appList} grid content-start gap-4 px-6 sm:px-12 shrink-0`}>
{currList.map(app => ( {currList.map(app => (
<AppCard <AppCard
key={app.app_id} key={app.app_id}
......
...@@ -33,7 +33,7 @@ const Explore: FC<IExploreProps> = ({ ...@@ -33,7 +33,7 @@ const Explore: FC<IExploreProps> = ({
}, []) }, [])
return ( return (
<div className='flex h-full bg-gray-100 border-t border-gray-200'> <div className='flex h-full bg-gray-100 border-t border-gray-200 overflow-hidden'>
<ExploreContext.Provider <ExploreContext.Provider
value={ value={
{ {
......
...@@ -141,7 +141,7 @@ export default function AccountSetting({ ...@@ -141,7 +141,7 @@ export default function AccountSetting({
{ {
menuItems.map(menuItem => ( menuItems.map(menuItem => (
<div key={menuItem.key} className='mb-4'> <div key={menuItem.key} className='mb-4'>
<div className='px-2 mb-[6px] text-xs font-medium text-gray-500'>{menuItem.name}</div> <div className='px-2 mb-[6px] text-[10px] sm:text-xs font-medium text-gray-500'>{menuItem.name}</div>
<div> <div>
{ {
menuItem.items.map(item => ( menuItem.items.map(item => (
......
...@@ -19,7 +19,7 @@ import LogoSite from '@/app/components/base/logo/logo-site' ...@@ -19,7 +19,7 @@ import LogoSite from '@/app/components/base/logo/logo-site'
import useBreakpoints, { MediaType } from '@/hooks/use-breakpoints' import useBreakpoints, { MediaType } from '@/hooks/use-breakpoints'
const navClassName = ` const navClassName = `
flex items-center relative mr-3 px-3 h-9 rounded-xl flex items-center relative mr-0 sm:mr-3 px-3 h-9 rounded-xl
font-medium text-sm font-medium text-sm
cursor-pointer cursor-pointer
` `
......
...@@ -682,7 +682,7 @@ const Main: FC<IMainProps> = ({ ...@@ -682,7 +682,7 @@ const Main: FC<IMainProps> = ({
} }
return ( return (
<div className='bg-gray-100 h-full'> <div className='bg-gray-100 h-full flex flex-col'>
{!isInstalledApp && ( {!isInstalledApp && (
<Header <Header
title={siteInfo.title} title={siteInfo.title}
...@@ -719,8 +719,7 @@ const Main: FC<IMainProps> = ({ ...@@ -719,8 +719,7 @@ const Main: FC<IMainProps> = ({
)} )}
{/* main */} {/* main */}
<div className={cn( <div className={cn(
isInstalledApp ? 'h-full' : 'h-[calc(100vh_-_3rem)] tablet:h-screen', 'h-full flex-grow flex flex-col overflow-y-auto',
'flex-grow flex flex-col overflow-y-auto',
) )
}> }>
<ConfigSence <ConfigSence
......
...@@ -8,6 +8,7 @@ import './styles/markdown.scss' ...@@ -8,6 +8,7 @@ import './styles/markdown.scss'
export const metadata = { export const metadata = {
title: 'Dify', title: 'Dify',
viewport: 'width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover, user-scalable=no',
} }
const LocaleLayout = ({ const LocaleLayout = ({
...@@ -19,6 +20,12 @@ const LocaleLayout = ({ ...@@ -19,6 +20,12 @@ const LocaleLayout = ({
return ( return (
<html lang={locale ?? 'en'} className="h-full"> <html lang={locale ?? 'en'} className="h-full">
<head>
<meta name="theme-color" content="#FFFFFF" />
<meta name="mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
</head>
<body <body
className="h-full select-auto" className="h-full select-auto"
data-api-prefix={process.env.NEXT_PUBLIC_API_PREFIX} data-api-prefix={process.env.NEXT_PUBLIC_API_PREFIX}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment