mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 04:18:54 +00:00
style: add text overflow style for collections (#3292)
Co-authored-by: Alex Yang <himself65@outlook.com>
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { Tooltip } from '@affine/component';
|
||||
import { EditCollectionModel } from '@affine/component/page-list';
|
||||
import type { PropertiesMeta } from '@affine/env/filter';
|
||||
import type { GetPageInfoById } from '@affine/env/page-info';
|
||||
@@ -102,9 +103,21 @@ export const CollectionBar = ({
|
||||
width: 20,
|
||||
}}
|
||||
/>
|
||||
<div style={{ marginRight: 10 }}>
|
||||
{setting.currentCollection.name}
|
||||
</div>
|
||||
<Tooltip
|
||||
content={setting.currentCollection.name}
|
||||
pointerEnterDelay={1500}
|
||||
>
|
||||
<div
|
||||
style={{
|
||||
marginRight: 10,
|
||||
maxWidth: 200,
|
||||
overflow: 'hidden',
|
||||
textOverflow: 'ellipsis',
|
||||
}}
|
||||
>
|
||||
{setting.currentCollection.name}
|
||||
</div>
|
||||
</Tooltip>
|
||||
{actions.map(action => {
|
||||
return (
|
||||
<div
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { style } from '@vanilla-extract/css';
|
||||
import { globalStyle, style } from '@vanilla-extract/css';
|
||||
|
||||
export const menuTitleStyle = style({
|
||||
marginLeft: '12px',
|
||||
@@ -20,6 +20,8 @@ export const viewButton = style({
|
||||
padding: '4px 8px',
|
||||
fontSize: 'var(--affine-font-xs)',
|
||||
background: 'var(--affine-white)',
|
||||
maxWidth: '200px',
|
||||
overflow: 'hidden',
|
||||
color: 'var(--affine-text-secondary-color)',
|
||||
border: '1px solid var(--affine-border-color)',
|
||||
transition: 'margin-left 0.2s ease-in-out',
|
||||
@@ -28,6 +30,20 @@ export const viewButton = style({
|
||||
background: 'var(--affine-hover-color)',
|
||||
},
|
||||
marginRight: '20px',
|
||||
'@media': {
|
||||
'(max-width: 1200px)': {
|
||||
maxWidth: '100px',
|
||||
},
|
||||
'(max-width: 900px)': {
|
||||
maxWidth: '150px',
|
||||
marginRight: '10px',
|
||||
},
|
||||
},
|
||||
});
|
||||
globalStyle(`${viewButton} > span`, {
|
||||
overflow: 'hidden',
|
||||
textOverflow: 'ellipsis',
|
||||
whiteSpace: 'nowrap',
|
||||
});
|
||||
export const viewMenu = style({});
|
||||
export const viewOption = style({
|
||||
|
||||
@@ -16,7 +16,7 @@ import { useAtom } from 'jotai';
|
||||
import type { MouseEvent, ReactNode } from 'react';
|
||||
import { useCallback, useMemo, useState } from 'react';
|
||||
|
||||
import { Button, MenuItem } from '../../..';
|
||||
import { Button, MenuItem, Tooltip } from '../../..';
|
||||
import Menu from '../../../ui/menu/menu';
|
||||
import { appSidebarOpenAtom } from '../../app-sidebar';
|
||||
import { CreateFilterMenu } from '../filter/vars';
|
||||
@@ -80,39 +80,53 @@ const CollectionOption = ({
|
||||
key={collection.id}
|
||||
className={styles.viewMenu}
|
||||
>
|
||||
<div
|
||||
style={{
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'space-between',
|
||||
}}
|
||||
<Tooltip
|
||||
content={collection.name}
|
||||
placement="right"
|
||||
pointerEnterDelay={1500}
|
||||
>
|
||||
<div>{collection.name}</div>
|
||||
<div
|
||||
style={{
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'space-between',
|
||||
}}
|
||||
>
|
||||
{actions.map((v, i) => {
|
||||
const onClick = (e: MouseEvent<HTMLDivElement>) => {
|
||||
e.stopPropagation();
|
||||
v.click();
|
||||
};
|
||||
return (
|
||||
<div
|
||||
data-testid={`collection-select-option-${v.name}`}
|
||||
key={i}
|
||||
onClick={onClick}
|
||||
style={{ marginLeft: i === 0 ? 28 : undefined }}
|
||||
className={clsx(styles.viewOption, v.className)}
|
||||
>
|
||||
{v.icon}
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
<div
|
||||
style={{
|
||||
maxWidth: '150px',
|
||||
overflow: 'hidden',
|
||||
textOverflow: 'ellipsis',
|
||||
}}
|
||||
>
|
||||
{collection.name}
|
||||
</div>
|
||||
<div
|
||||
style={{
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
}}
|
||||
>
|
||||
{actions.map((v, i) => {
|
||||
const onClick = (e: MouseEvent<HTMLDivElement>) => {
|
||||
e.stopPropagation();
|
||||
v.click();
|
||||
};
|
||||
return (
|
||||
<div
|
||||
data-testid={`collection-select-option-${v.name}`}
|
||||
key={i}
|
||||
onClick={onClick}
|
||||
style={{ marginLeft: i === 0 ? 28 : undefined }}
|
||||
className={clsx(styles.viewOption, v.className)}
|
||||
>
|
||||
{v.icon}
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Tooltip>
|
||||
</MenuItem>
|
||||
);
|
||||
};
|
||||
@@ -155,7 +169,6 @@ export const CollectionList = ({
|
||||
[styles.filterButtonCollapse]: !open,
|
||||
})}
|
||||
style={{
|
||||
marginLeft: 4,
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
}}
|
||||
@@ -199,7 +212,12 @@ export const CollectionList = ({
|
||||
hoverColor="var(--affine-icon-color)"
|
||||
data-testid="collection-select"
|
||||
>
|
||||
{setting.currentCollection.name}
|
||||
<Tooltip
|
||||
content={setting.currentCollection.name}
|
||||
pointerEnterDelay={1500}
|
||||
>
|
||||
<>{setting.currentCollection.name}</>
|
||||
</Tooltip>
|
||||
</Button>
|
||||
</Menu>
|
||||
)}
|
||||
|
||||
@@ -22,7 +22,7 @@ export const Popper = ({
|
||||
defaultVisible = false,
|
||||
visible: propsVisible,
|
||||
trigger = 'hover',
|
||||
pointerEnterDelay = 100,
|
||||
pointerEnterDelay = 500,
|
||||
pointerLeaveDelay = 100,
|
||||
onVisibleChange,
|
||||
popoverStyle,
|
||||
|
||||
@@ -15,6 +15,7 @@ const StyledTooltip = styled(StyledPopperContainer)(() => {
|
||||
fontSize: 'var(--affine-font-sm)',
|
||||
borderRadius: '8px',
|
||||
marginBottom: '12px',
|
||||
overflowWrap: 'break-word',
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user