diff --git a/apps/web/src/components/affine/pinboard/pinboard-render/EmptyItem.tsx b/apps/web/src/components/affine/pinboard/pinboard-render/EmptyItem.tsx index 6d8e45ab85..f898be1134 100644 --- a/apps/web/src/components/affine/pinboard/pinboard-render/EmptyItem.tsx +++ b/apps/web/src/components/affine/pinboard/pinboard-render/EmptyItem.tsx @@ -5,8 +5,8 @@ import { StyledPinboard } from '../styles'; export const EmptyItem = () => { const { t } = useTranslation(); return ( - - {t('No item')} + + {t('Organize pages to build knowledge')} ); }; diff --git a/apps/web/src/components/affine/pinboard/styles.ts b/apps/web/src/components/affine/pinboard/styles.ts index 5f826707c2..f9f489df9f 100644 --- a/apps/web/src/components/affine/pinboard/styles.ts +++ b/apps/web/src/components/affine/pinboard/styles.ts @@ -38,44 +38,62 @@ export const StyledPinboard = styled('div')<{ active?: boolean; isOver?: boolean; disableCollapse?: boolean; -}>(({ disableCollapse, disable = false, active = false, theme, isOver }) => { - return { - width: '100%', - height: '32px', - borderRadius: '8px', - ...displayFlex('flex-start', 'center'), - padding: disableCollapse ? '0 5px' : '0 2px 0 16px', - position: 'relative', - color: disable - ? theme.colors.disableColor - : active - ? theme.colors.primaryColor - : theme.colors.textColor, - cursor: disable ? 'not-allowed' : 'pointer', - background: isOver ? alpha(theme.colors.primaryColor, 0.06) : '', - fontSize: theme.font.base, - userSelect: 'none', - span: { - flexGrow: '1', - textAlign: 'left', - ...textEllipsis(1), - }, - '.path-icon': { - fontSize: '16px', - transform: 'translateY(-4px)', - }, - '.mode-icon': { - fontSize: '20px', - marginRight: '8px', - flexShrink: '0', - color: active ? theme.colors.primaryColor : theme.colors.iconColor, - }, + textWrap?: boolean; +}>( + ({ + disableCollapse, + disable = false, + active = false, + theme, + isOver, + textWrap = false, + }) => { + return { + width: '100%', + lineHeight: '1.5', + minHeight: '32px', + borderRadius: '8px', + ...displayFlex('flex-start', 'center'), + padding: disableCollapse ? '0 5px' : '0 2px 0 16px', + position: 'relative', + color: disable + ? theme.colors.disableColor + : active + ? theme.colors.primaryColor + : theme.colors.textColor, + cursor: disable ? 'not-allowed' : 'pointer', + background: isOver ? alpha(theme.colors.primaryColor, 0.06) : '', + fontSize: theme.font.base, + userSelect: 'none', + ...(textWrap + ? { + wordBreak: 'break-all', + whiteSpace: 'pre-wrap', + } + : {}), - ':hover': { - backgroundColor: disable ? '' : theme.colors.hoverBackground, - }, - }; -}); + span: { + flexGrow: '1', + textAlign: 'left', + ...textEllipsis(1), + }, + '.path-icon': { + fontSize: '16px', + transform: 'translateY(-4px)', + }, + '.mode-icon': { + fontSize: '20px', + marginRight: '8px', + flexShrink: '0', + color: active ? theme.colors.primaryColor : theme.colors.iconColor, + }, + + ':hover': { + backgroundColor: disable ? '' : theme.colors.hoverBackground, + }, + }; + } +); export const StyledOperationButton = styled(IconButton, { shouldForwardProp: prop => { diff --git a/apps/web/src/components/pure/workspace-slider-bar/favorite/empty-item.tsx b/apps/web/src/components/pure/workspace-slider-bar/favorite/empty-item.tsx index eccc4f49e6..abd3b6c676 100644 --- a/apps/web/src/components/pure/workspace-slider-bar/favorite/empty-item.tsx +++ b/apps/web/src/components/pure/workspace-slider-bar/favorite/empty-item.tsx @@ -4,7 +4,11 @@ import { StyledCollapseItem } from '../shared-styles'; export const EmptyItem = () => { const { t } = useTranslation(); - return {t('No item')}; + return ( + + {t('Favorite pages for easy access')} + + ); }; export default EmptyItem; diff --git a/apps/web/src/components/pure/workspace-slider-bar/favorite/favorite-list.tsx b/apps/web/src/components/pure/workspace-slider-bar/favorite/favorite-list.tsx index 7236ee254c..3a6f2d607d 100644 --- a/apps/web/src/components/pure/workspace-slider-bar/favorite/favorite-list.tsx +++ b/apps/web/src/components/pure/workspace-slider-bar/favorite/favorite-list.tsx @@ -54,7 +54,7 @@ export const FavoriteList = ({ ) : ( )} - {pageMeta.title || 'Untitled'} + {pageMeta.title || 'Untitled'} ); diff --git a/apps/web/src/components/pure/workspace-slider-bar/shared-styles.ts b/apps/web/src/components/pure/workspace-slider-bar/shared-styles.ts index 9054fb8f56..b659d6ebbe 100644 --- a/apps/web/src/components/pure/workspace-slider-bar/shared-styles.ts +++ b/apps/web/src/components/pure/workspace-slider-bar/shared-styles.ts @@ -70,13 +70,15 @@ export const StyledCollapseItem = styled('div')<{ disable?: boolean; active?: boolean; isOver?: boolean; -}>(({ disable = false, active = false, theme, isOver }) => { + textWrap?: boolean; +}>(({ disable = false, active = false, theme, isOver, textWrap = false }) => { return { width: '100%', - height: '32px', + lineHeight: '1.5', + minHeight: '32px', borderRadius: '8px', ...displayFlex('flex-start', 'center'), - padding: '0 2px 0 16px', + paddingRight: '2px', position: 'relative', color: disable ? theme.colors.disableColor @@ -86,7 +88,12 @@ export const StyledCollapseItem = styled('div')<{ cursor: disable ? 'not-allowed' : 'pointer', background: isOver ? alpha(theme.colors.primaryColor, 0.06) : '', userSelect: 'none', - + ...(textWrap + ? { + wordBreak: 'break-all', + whiteSpace: 'pre-wrap', + } + : {}), span: { flexGrow: '1', textAlign: 'left', @@ -98,9 +105,6 @@ export const StyledCollapseItem = styled('div')<{ flexShrink: '0', color: active ? theme.colors.primaryColor : theme.colors.iconColor, }, - '.operation-button': { - visibility: 'hidden', - }, ':hover': disable ? {} diff --git a/packages/i18n/src/resources/en.json b/packages/i18n/src/resources/en.json index 6014f2ed35..286036d9aa 100644 --- a/packages/i18n/src/resources/en.json +++ b/packages/i18n/src/resources/en.json @@ -212,6 +212,8 @@ "Disable Public Link ?": "Disable Public Link ?", "Disable Public Link Description": "Disabling this public link will prevent anyone with the link from accessing this page.", "Export Shared Pages Description": "Download a static copy of your page to share with others.", + "Organize pages to build knowledge": "Organize pages to build knowledge", + "Favorite pages for easy access": "Favorite pages for easy access", "Shared Pages Description": "Sharing page publicly requires AFFiNE Cloud service.", "Create Shared Link Description": "Create a link you can easily share with anyone.", "Shared Pages In Public Workspace Description": "The entire Workspace is published on the web and can be edited via <1>Workspace Settings.",