mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-18 02:25:52 +08:00
fix: layout shift on app card hover (#7872)
This commit is contained in:
parent
bf63c5d1e3
commit
5e4907e940
@ -255,7 +255,7 @@ const AppCard = ({ app, onRefresh }: AppCardProps) => {
|
|||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
getRedirection(isCurrentWorkspaceEditor, app, push)
|
getRedirection(isCurrentWorkspaceEditor, app, push)
|
||||||
}}
|
}}
|
||||||
className='group flex col-span-1 bg-white border-2 border-solid border-transparent rounded-xl shadow-sm min-h-[160px] flex flex-col transition-all duration-200 ease-in-out cursor-pointer hover:shadow-lg'
|
className='relative group col-span-1 bg-white border-2 border-solid border-transparent rounded-xl shadow-sm 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'>
|
||||||
<div className='relative shrink-0'>
|
<div className='relative shrink-0'>
|
||||||
@ -297,17 +297,16 @@ const AppCard = ({ app, onRefresh }: AppCardProps) => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div className='title-wrapper h-[90px] px-[14px] text-xs leading-normal text-gray-500'>
|
||||||
<div
|
<div
|
||||||
className={cn(
|
className={cn(tags.length ? 'line-clamp-2' : 'line-clamp-4', 'group-hover:line-clamp-2')}
|
||||||
'grow mb-2 px-[14px] max-h-[72px] text-xs leading-normal text-gray-500 group-hover:line-clamp-2 group-hover:max-h-[36px]',
|
|
||||||
tags.length ? 'line-clamp-2' : 'line-clamp-4',
|
|
||||||
)}
|
|
||||||
title={app.description}
|
title={app.description}
|
||||||
>
|
>
|
||||||
{app.description}
|
{app.description}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<div className={cn(
|
<div className={cn(
|
||||||
'items-center shrink-0 mt-1 pt-1 pl-[14px] pr-[6px] pb-[6px] h-[42px]',
|
'absolute bottom-1 left-0 right-0 items-center shrink-0 pt-1 pl-[14px] pr-[6px] pb-[6px] h-[42px]',
|
||||||
tags.length ? 'flex' : '!hidden group-hover:!flex',
|
tags.length ? 'flex' : '!hidden group-hover:!flex',
|
||||||
)}>
|
)}>
|
||||||
{isCurrentWorkspaceEditor && (
|
{isCurrentWorkspaceEditor && (
|
||||||
|
@ -23,7 +23,7 @@ const AppCard = ({
|
|||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
const { app: appBasicInfo } = app
|
const { app: appBasicInfo } = app
|
||||||
return (
|
return (
|
||||||
<div className={cn('group flex 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={cn('relative overflow-hidden pb-2 group col-span-1 bg-white border-2 border-solid border-transparent rounded-lg shadow-sm 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'>
|
||||||
<div className='relative shrink-0'>
|
<div className='relative shrink-0'>
|
||||||
<AppIcon
|
<AppIcon
|
||||||
@ -64,9 +64,13 @@ const AppCard = ({
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className='mb-1 px-[14px] text-xs leading-normal text-gray-500 line-clamp-4 group-hover:line-clamp-2 group-hover:h-9'>{app.description}</div>
|
<div className="description-wrapper h-[90px] px-[14px] text-xs leading-normal text-gray-500 ">
|
||||||
|
<div className='line-clamp-4 group-hover:line-clamp-2'>
|
||||||
|
{app.description}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{isExplore && canCreate && (
|
{isExplore && canCreate && (
|
||||||
<div className={cn('hidden items-center flex-wrap min-h-[42px] px-[14px] pt-2 pb-[10px] group-hover:flex')}>
|
<div className={cn('hidden items-center flex-wrap min-h-[42px] px-[14px] pt-2 pb-[10px] bg-white group-hover:flex absolute bottom-0 left-0 right-0')}>
|
||||||
<div className={cn('flex items-center w-full space-x-2')}>
|
<div className={cn('flex items-center w-full space-x-2')}>
|
||||||
<Button variant='primary' className='grow h-7' onClick={() => onCreate()}>
|
<Button variant='primary' className='grow h-7' onClick={() => onCreate()}>
|
||||||
<PlusIcon className='w-4 h-4 mr-1' />
|
<PlusIcon className='w-4 h-4 mr-1' />
|
||||||
@ -76,7 +80,7 @@ const AppCard = ({
|
|||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
{!isExplore && (
|
{!isExplore && (
|
||||||
<div className={cn('hidden items-center flex-wrap min-h-[42px] px-[14px] pt-2 pb-[10px] group-hover:flex')}>
|
<div className={cn('hidden items-center flex-wrap min-h-[42px] px-[14px] pt-2 pb-[10px] bg-white group-hover:flex absolute bottom-0 left-0 right-0')}>
|
||||||
<div className={cn('flex items-center w-full space-x-2')}>
|
<div className={cn('flex items-center w-full space-x-2')}>
|
||||||
<Button variant='primary' className='grow h-7' onClick={() => onCreate()}>
|
<Button variant='primary' className='grow h-7' onClick={() => onCreate()}>
|
||||||
<PlusIcon className='w-4 h-4 mr-1' />
|
<PlusIcon className='w-4 h-4 mr-1' />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user