diff --git a/packages/asc-web-components/row/styled-row.js b/packages/asc-web-components/row/styled-row.js index 758d139be2c..22eef2621b7 100644 --- a/packages/asc-web-components/row/styled-row.js +++ b/packages/asc-web-components/row/styled-row.js @@ -29,7 +29,7 @@ const StyledRow = styled.div` align-content: center; .row-loader { - padding: 16px 12px 12px 0px; + padding: 15px 12px 12px 0px; } `; StyledRow.defaultProps = { theme: Base }; diff --git a/products/ASC.Files/Client/src/pages/Home/Section/Body/RowsView/CommonStyles.js b/products/ASC.Files/Client/src/pages/Home/Section/Body/RowsView/CommonStyles.js new file mode 100644 index 00000000000..f3e2f2e18ad --- /dev/null +++ b/products/ASC.Files/Client/src/pages/Home/Section/Body/RowsView/CommonStyles.js @@ -0,0 +1,17 @@ +import { css } from "styled-components"; + +const marginStyles = css` + margin-left: -24px; + margin-right: -24px; + padding-left: 24px; + padding-right: 24px; + + @media (max-width: 1024px) { + margin-left: -16px; + margin-right: -16px; + padding-left: 16px; + padding-right: 16px; + } +`; + +export default marginStyles; diff --git a/products/ASC.Files/Client/src/pages/Home/Section/Body/RowsView/FilesRowContainer.js b/products/ASC.Files/Client/src/pages/Home/Section/Body/RowsView/FilesRowContainer.js index 49317edce69..ef949ce6ab6 100644 --- a/products/ASC.Files/Client/src/pages/Home/Section/Body/RowsView/FilesRowContainer.js +++ b/products/ASC.Files/Client/src/pages/Home/Section/Body/RowsView/FilesRowContainer.js @@ -3,7 +3,46 @@ import { inject, observer } from "mobx-react"; import RowContainer from "@appserver/components/row-container"; import SimpleFilesRow from "./SimpleFilesRow"; import { isMobile } from "react-device-detect"; +import styled from "styled-components"; +import marginStyles from "./CommonStyles"; +const borderColor = "#ECEEF1"; + +const StyledRowContainer = styled(RowContainer)` + .row-selected + .row-wrapper:not(.row-selected) { + .files-row { + border-top: ${`1px ${borderColor} solid`}; + margin-top: -3px; + ${marginStyles} + } + } + + .row-wrapper:not(.row-selected) + .row-selected { + .files-row { + border-top: ${`1px ${borderColor} solid`}; + margin-top: -3px; + ${marginStyles} + } + } + + .row-selected:last-child { + .files-row { + border-bottom: ${`1px ${borderColor} solid`}; + padding-bottom: 1px; + ${marginStyles} + } + .files-row::after { + height: 0px; + } + } + .row-selected:first-child { + .files-row { + border-top: ${`1px ${borderColor} solid`}; + margin-top: -3px; + ${marginStyles} + } + } +`; const FilesRowContainer = ({ filesList, sectionWidth, viewAs, setViewAs }) => { useEffect(() => { if ((viewAs !== "table" && viewAs !== "row") || !sectionWidth) return; @@ -16,7 +55,7 @@ const FilesRowContainer = ({ filesList, sectionWidth, viewAs, setViewAs }) => { }, [sectionWidth]); return ( - { sectionWidth={sectionWidth} /> ))} - + ); }; diff --git a/products/ASC.Files/Client/src/pages/Home/Section/Body/RowsView/SimpleFilesRow.js b/products/ASC.Files/Client/src/pages/Home/Section/Body/RowsView/SimpleFilesRow.js index 23c50dff4bb..638fb0c9209 100644 --- a/products/ASC.Files/Client/src/pages/Home/Section/Body/RowsView/SimpleFilesRow.js +++ b/products/ASC.Files/Client/src/pages/Home/Section/Body/RowsView/SimpleFilesRow.js @@ -10,20 +10,11 @@ import withFileActions from "../../../../../HOCs/withFileActions"; import withContextOptions from "../../../../../HOCs/withContextOptions"; import SharedButton from "../../../../../components/SharedButton"; import ItemIcon from "../../../../../components/ItemIcon"; +import marginStyles from "./CommonStyles"; const checkedStyle = css` background: #f3f4f4; - margin-left: -24px; - margin-right: -24px; - padding-left: 24px; - padding-right: 24px; - - @media (max-width: 1024px) { - margin-left: -16px; - margin-right: -16px; - padding-left: 16px; - padding-right: 16px; - } + ${marginStyles} `; const draggingStyle = css` @@ -31,17 +22,7 @@ const draggingStyle = css` &:hover { background: #efefb2; } - margin-left: -24px; - margin-right: -24px; - padding-left: 24px; - padding-right: 24px; - - @media (max-width: 1024px) { - margin-left: -16px; - margin-right: -16px; - padding-left: 16px; - padding-right: 16px; - } + ${marginStyles} `; const StyledWrapper = styled.div` @@ -144,7 +125,11 @@ const SimpleFilesRow = (props) => { ); return ( - + { isActive={isActive} inProgress={inProgress} isThirdPartyFolder={item.isThirdPartyFolder} + className="files-row" > { const ref = useRef(null); @@ -20,14 +77,14 @@ const Table = ({ filesList, sectionWidth, viewAs, setViewAs }) => { }, [sectionWidth]); return ( - + {filesList.map((item) => ( ))} - + ); }; diff --git a/products/ASC.Files/Client/src/pages/Home/Section/Body/TableView/TableRow.js b/products/ASC.Files/Client/src/pages/Home/Section/Body/TableView/TableRow.js index cf8baf38004..e8cf58100ff 100644 --- a/products/ASC.Files/Client/src/pages/Home/Section/Body/TableView/TableRow.js +++ b/products/ASC.Files/Client/src/pages/Home/Section/Body/TableView/TableRow.js @@ -22,13 +22,6 @@ import { isSafari } from "react-device-detect"; const sideColor = globalColors.gray; const { acceptBackground, background } = Base.dragAndDrop; -const rowCheckboxCheckedStyle = css` - border-image-source: linear-gradient(to right, #f3f4f4 24px, #eceef1 24px); -`; -const contextMenuWrapperCheckedStyle = css` - border-image-source: linear-gradient(to left, #f3f4f4 24px, #eceef1 24px); -`; - const rowCheckboxDraggingStyle = css` border-image-source: linear-gradient(to right, #f8f7bf 24px, #eceef1 24px); `; @@ -54,7 +47,7 @@ const contextMenuWrapperDraggingHoverStyle = css` const StyledTableRow = styled(TableRow)` .table-container_cell { - ${isSafari && `border-image-slice: 0 !important`}; + /* ${isSafari && `border-image-slice: 0 !important`}; */ background: ${(props) => (props.checked || props.isActive) && "#F3F4F4 !important"}; cursor: ${(props) => @@ -87,14 +80,24 @@ const StyledTableRow = styled(TableRow)` width: 50px; margin-left: -24px; padding-left: 24px; - border-bottom: 1px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, #ffffff 24px, #eceef1 24px); + + ${(props) => + !props.isActive && + !props.checked && + css` + border-image-slice: 1; + border-bottom: 1px solid; + border-image-source: linear-gradient( + to right, + #ffffff 24px, + #eceef1 24px + ); + `}; border-top: 0; border-right: 0; + border-left: 0; - ${(props) => props.checked && rowCheckboxCheckedStyle}; ${(props) => props.dragging && rowCheckboxDraggingStyle}; } @@ -102,14 +105,23 @@ const StyledTableRow = styled(TableRow)` margin-right: -20x; width: 28px; padding-right: 18px; - border-bottom: 1px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to left, #ffffff 24px, #eceef1 24px); + + ${(props) => + !props.isActive && + !props.checked && + css` + border-bottom: 1px solid; + border-image-slice: 1; + border-image-source: linear-gradient( + to left, + #ffffff 24px, + #eceef1 24px + ); + `}; border-top: 0; border-left: 0; - ${(props) => props.checked && contextMenuWrapperCheckedStyle}; ${(props) => props.dragging && contextMenuWrapperDraggingStyle}; } `; @@ -234,7 +246,9 @@ const FilesTableRow = (props) => { { onDragLeave={onDragLeave} >