diff --git a/webapp/packages/core-blocks/src/FolderExplorer/FolderExplorerPath.m.css b/webapp/packages/core-blocks/src/FolderExplorer/FolderExplorerPath.m.css new file mode 100644 index 0000000000..6069bbea3e --- /dev/null +++ b/webapp/packages/core-blocks/src/FolderExplorer/FolderExplorerPath.m.css @@ -0,0 +1,5 @@ +.folderExplorerPath { + composes: theme-typography--caption from global; + display: flex; + flex-wrap: wrap; +} diff --git a/webapp/packages/core-blocks/src/FolderExplorer/FolderExplorerPath.tsx b/webapp/packages/core-blocks/src/FolderExplorer/FolderExplorerPath.tsx index 7a11ad662f..50e23740a6 100644 --- a/webapp/packages/core-blocks/src/FolderExplorer/FolderExplorerPath.tsx +++ b/webapp/packages/core-blocks/src/FolderExplorer/FolderExplorerPath.tsx @@ -7,10 +7,11 @@ */ import { observer } from 'mobx-react-lite'; import { useContext } from 'react'; -import styled from 'reshadow'; +import { s } from '../s'; +import { useS } from '../useS'; import { FolderExplorerContext } from './FolderExplorerContext'; -import { folderExplorerStyles } from './folderExplorerStyles'; +import style from './FolderExplorerPath.m.css'; import { FolderName } from './FolderName'; interface Props { @@ -20,6 +21,7 @@ interface Props { } export const FolderExplorerPath = observer(function FolderExplorerPath({ getName, canSkip, className }) { + const styles = useS(style); const context = useContext(FolderExplorerContext); if (!context) { @@ -60,5 +62,5 @@ export const FolderExplorerPath = observer(function FolderExplorerPath({ } } - return styled(folderExplorerStyles)({pathElements}); + return
{pathElements}
; }); diff --git a/webapp/packages/core-blocks/src/FolderExplorer/FolderName.m.css b/webapp/packages/core-blocks/src/FolderExplorer/FolderName.m.css new file mode 100644 index 0000000000..e443aa8525 --- /dev/null +++ b/webapp/packages/core-blocks/src/FolderExplorer/FolderName.m.css @@ -0,0 +1,30 @@ +.path { + composes: theme-typography--caption from global; + display: flex; + flex-wrap: wrap; +} + +.pathElement { + display: flex; + align-items: center; + + &:first-child { + & .pathElementArrow { + display: none; + } + } +} + +.pathElementArrow { + width: 16px; + height: 16px; + transform: rotate(-90deg); + opacity: 0.5; +} + +.pathElementName { + max-width: 150px; + overflow: hidden; + text-overflow: ellipsis; + padding: 0 4px; +} diff --git a/webapp/packages/core-blocks/src/FolderExplorer/FolderName.tsx b/webapp/packages/core-blocks/src/FolderExplorer/FolderName.tsx index 6edbd1cfc5..8fb4f05047 100644 --- a/webapp/packages/core-blocks/src/FolderExplorer/FolderName.tsx +++ b/webapp/packages/core-blocks/src/FolderExplorer/FolderName.tsx @@ -7,12 +7,13 @@ */ import { observer } from 'mobx-react-lite'; import { useContext } from 'react'; -import styled from 'reshadow'; import { Icon } from '../Icon'; import { Link } from '../Link'; +import { s } from '../s'; +import { useS } from '../useS'; import { FolderExplorerContext } from './FolderExplorerContext'; -import { folderExplorerStyles } from './folderExplorerStyles'; +import style from './FolderName.m.css'; interface BaseProps { folder?: string; @@ -36,6 +37,7 @@ interface ShortProps extends BaseProps { } export const FolderName = observer(function FolderName({ folder, path, title, short, last, getName }) { + const styles = useS(style); const context = useContext(FolderExplorerContext); if (!context) { @@ -57,14 +59,12 @@ export const FolderName = observer(function FolderName path = path.slice(0, path.length - 1); } - return styled(folderExplorerStyles)( - - + return ( +
+
- - - {last ? name : context.open(path, folder!)}>{name}} - - , +
+
{last ? name : context.open(path, folder!)}>{name}}
+
); }); diff --git a/webapp/packages/core-blocks/src/FolderExplorer/folderExplorerStyles.ts b/webapp/packages/core-blocks/src/FolderExplorer/folderExplorerStyles.ts deleted file mode 100644 index e6dd4adf51..0000000000 --- a/webapp/packages/core-blocks/src/FolderExplorer/folderExplorerStyles.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* - * CloudBeaver - Cloud Database Manager - * Copyright (C) 2020-2023 DBeaver Corp and others - * - * Licensed under the Apache License, Version 2.0. - * you may not use this file except in compliance with the License. - */ -import { css } from 'reshadow'; - -export const folderExplorerStyles = css` - folder-explorer-path { - composes: theme-typography--caption from global; - display: flex; - flex-wrap: wrap; - } - - folder-explorer-path-element { - display: flex; - align-items: center; - } - - folder-explorer-path-element-arrow { - width: 16px; - height: 16px; - transform: rotate(-90deg); - opacity: 0.5; - } - - folder-explorer-path-element-name { - max-width: 150px; - overflow: hidden; - text-overflow: ellipsis; - padding: 0 4px; - } - - folder-explorer-path-element:first-child folder-explorer-path-element-arrow { - display: none; - } -`; diff --git a/webapp/packages/plugin-navigation-tree/src/NavigationTree/ElementsTree/ElementsTree.m.css b/webapp/packages/plugin-navigation-tree/src/NavigationTree/ElementsTree/ElementsTree.m.css new file mode 100644 index 0000000000..e6aa563260 --- /dev/null +++ b/webapp/packages/plugin-navigation-tree/src/NavigationTree/ElementsTree/ElementsTree.m.css @@ -0,0 +1,3 @@ +.folderExplorerPath { + padding: 0 4px 8px 4px; +} diff --git a/webapp/packages/plugin-navigation-tree/src/NavigationTree/ElementsTree/ElementsTree.tsx b/webapp/packages/plugin-navigation-tree/src/NavigationTree/ElementsTree/ElementsTree.tsx index 00a95c0df6..5dc3a73a93 100644 --- a/webapp/packages/plugin-navigation-tree/src/NavigationTree/ElementsTree/ElementsTree.tsx +++ b/webapp/packages/plugin-navigation-tree/src/NavigationTree/ElementsTree/ElementsTree.tsx @@ -8,6 +8,7 @@ import { observer } from 'mobx-react-lite'; import { useCallback, useMemo, useState } from 'react'; import styled, { css, use } from 'reshadow'; +import elementsTreeStyles from './ElementsTree.m.css'; import { EventTreeNodeClickFlag, @@ -16,10 +17,12 @@ import { FolderExplorer, FolderExplorerPath, PlaceholderElement, + s, Translate, TREE_NODE_STYLES, TreeNodeNested, TreeNodeNestedMessage, + useS, useStyles, } from '@cloudbeaver/core-blocks'; import { useService } from '@cloudbeaver/core-di'; @@ -43,7 +46,7 @@ import { useDropOutside } from './useDropOutside'; import { IElementsTreeOptions, useElementsTree } from './useElementsTree'; import { useElementsTreeFolderExplorer } from './useElementsTreeFolderExplorer'; -const styles = css` +const oldStyles = css` box { display: flex; flex-direction: column; @@ -75,10 +78,6 @@ const styles = css` max-width: 100%; } - FolderExplorerPath { - padding: 0 4px 8px 4px; - } - drop-outside { composes: theme-border-color-background from global; border: dashed 2px; @@ -143,6 +142,7 @@ export const ElementsTree = observer(function ElementsTree({ onSelect, onFilter, }) { + const styles = useS(elementsTreeStyles); const navTreeResource = useService(NavTreeResource); const navNodeInfoResource = useService(NavNodeInfoResource); const [treeRootRef, setTreeRootRef] = useState(null); @@ -217,7 +217,7 @@ export const ElementsTree = observer(function ElementsTree({ tree.resetSelection(); } - return styled(useStyles(TREE_NODE_STYLES, styles, style))( + return styled(useStyles(TREE_NODE_STYLES, oldStyles, style))( <> @@ -225,7 +225,9 @@ export const ElementsTree = observer(function ElementsTree({ - {settings?.showFolderExplorerPath && } + {settings?.showFolderExplorerPath && ( + + )}