diff --git a/build/build.sh b/build/build.sh new file mode 100755 index 0000000000..62194a1be2 --- /dev/null +++ b/build/build.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +echo off + +echo "##########################################################" +echo "######### Start build and deploy #######################" +echo "##########################################################" + +echo "" + +rd="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +echo "Run script directory:" $rd + +dir=$(builtin cd $rd/../; pwd) +echo "Root directory:" $dir + +pushd $dir + +echo "FRONT-END (for start run command 'yarn start' inside the root folder)" +yarn install + +echo "BACK-END" +dotnet build $dir/asc.web.slnf /fl1 /flp1:logfile=asc.web.log;verbosity=normal + +echo "install nodejs projects dependencies..." +pushd $dir/common/ASC.Socket.IO/ +yarn install +pushd $dir/common/ASC.SsoAuth/ +yarn install +pushd $dir/common/ASC.WebDav/ +yarn install +pushd $dir/common/ASC.UrlShortener/ +yarn install +pushd $dir/common/ASC.WebPlugins/ +yarn install \ No newline at end of file diff --git a/build/run/macos/api.sh b/build/run/macos/api.sh new file mode 100755 index 0000000000..238d3cee69 --- /dev/null +++ b/build/run/macos/api.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +rd="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +echo "Run script directory:" $rd + +dir=$(builtin cd $rd/../../../; pwd) +echo "Root directory:" $dir + +# Web API Root +dotnet $dir/web/ASC.Web.Api/bin/Debug/ASC.Web.Api.dll urls=http://0.0.0.0:5000 $STORAGE_ROOT=$dir/Data log:dir=$dir/Logs log:name=api pathToConf=$dir/config core:products:folder=$dir/products \ No newline at end of file diff --git a/build/run/macos/backend.sh b/build/run/macos/backend.sh new file mode 100755 index 0000000000..6bde5ca7d6 --- /dev/null +++ b/build/run/macos/backend.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +echo "Root directory:" $dir + +$dir/api.sh & +$dir/studio.sh & +$dir/people.sh & +$dir/files.sh & +$dir/files.service.sh & \ No newline at end of file diff --git a/build/run/macos/docker-tools/docker-compose.yml b/build/run/macos/docker-tools/docker-compose.yml new file mode 100644 index 0000000000..1f5378f8e8 --- /dev/null +++ b/build/run/macos/docker-tools/docker-compose.yml @@ -0,0 +1,20 @@ +version: "3.8" + +services: + rhonda_rabbitmq: + image: rabbitmq:3-management-alpine + container_name: "rabbitmq" + ports: + - 5672:5672 + - 15672:15672 + volumes: + - ~/.container-data/rabbitmq/data/:/var/lib/rabbitmq/ + - ~/.container-data/rabbitmq/log/:/var/log/rabbitmq + redis: + image: redis:latest + volumes: + - ~/.container-data/redis/log/:/var/log/redis + ports: + - 6379:6379 +volumes: + container-data: diff --git a/build/run/macos/files.service.sh b/build/run/macos/files.service.sh new file mode 100755 index 0000000000..ae06ee9944 --- /dev/null +++ b/build/run/macos/files.service.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +rd="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +echo "Run script directory:" $rd + +dir=$(builtin cd $rd/../../../; pwd) +echo "Root directory:" $dir + +# Web API Files.Service +# set servicepath=%cd%\products\ASC.Files\Service\bin\Debug\ASC.Files.Service.exe urls=http://0.0.0.0:5009 $STORAGE_ROOT=%cd%\Data log:dir=%cd%\Logs log:name=files.service pathToConf=%cd%\config core:products:folder=%cd%\products +dotnet $dir/products/ASC.Files/Service/bin/Debug/ASC.Files.Service.dll urls=http://0.0.0.0:5009 $STORAGE_ROOT=$dir/Data log:dir=$dir/Logs log:name=files.service pathToConf=$dir/config core:products:folder=$dir/products \ No newline at end of file diff --git a/build/run/macos/files.sh b/build/run/macos/files.sh new file mode 100755 index 0000000000..dbba634148 --- /dev/null +++ b/build/run/macos/files.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +rd="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +echo "Run script directory:" $rd + +dir=$(builtin cd $rd/../../../; pwd) +echo "Root directory:" $dir + +# Web API Files +# set servicepath=%cd%\products\ASC.Files\Server\bin\Debug\ASC.Files.exe urls=http://0.0.0.0:5007 $STORAGE_ROOT=%cd%\Data log:dir=%cd%\Logs log:name=files pathToConf=%cd%\config core:products:folder=%cd%\products +dotnet $dir/products/ASC.Files/Server/bin/Debug/ASC.Files.dll urls=http://0.0.0.0:5007 $STORAGE_ROOT=$dir/Data log:dir=$dir/Logs log:name=files pathToConf=$dir/config core:products:folder=$dir/products \ No newline at end of file diff --git a/build/run/macos/people.sh b/build/run/macos/people.sh new file mode 100755 index 0000000000..6e14fd0b53 --- /dev/null +++ b/build/run/macos/people.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +rd="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +echo "Run script directory:" $rd + +dir=$(builtin cd $rd/../../../; pwd) +echo "Root directory:" $dir + +# Web API People +# set servicepath=%cd%\products\ASC.People\Server\bin\Debug\ASC.People.exe urls=http://0.0.0.0:5004 $STORAGE_ROOT=%cd%\Data log:dir=%cd%\Logs log:name=people pathToConf=%cd%\config core:products:folder=%cd%\products +dotnet $dir/products/ASC.People/Server/bin/Debug/ASC.People.dll urls=http://0.0.0.0:5004 $STORAGE_ROOT=$dir/Data log:dir=$dir/Logs log:name=people pathToConf=$dir/config core:products:folder=$dir/products \ No newline at end of file diff --git a/build/run/macos/socket.sh b/build/run/macos/socket.sh new file mode 100755 index 0000000000..903b8ee958 --- /dev/null +++ b/build/run/macos/socket.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +rd="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +echo "Run script directory:" $rd + +dir=$(builtin cd $rd/../../../; pwd) +echo "Root directory:" $dir + +# Web Socket IO +node $dir/common/ASC.Socket.IO/server.js --logPath=$dir/Logs \ No newline at end of file diff --git a/build/run/macos/studio.sh b/build/run/macos/studio.sh new file mode 100755 index 0000000000..38001b0206 --- /dev/null +++ b/build/run/macos/studio.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +rd="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +echo "Run script directory:" $rd + +dir=$(builtin cd $rd/../../../; pwd) +echo "Root directory:" $dir + +# Web Studio +# set servicepath=%cd%\web\ASC.Web.Studio\bin\Debug\ASC.Web.Studio.exe urls=http://0.0.0.0:5003 $STORAGE_ROOT=%cd%\Data log:dir=%cd%\Logs log:name=studio pathToConf=%cd%\config core:products:folder=%cd%\products +dotnet $dir/web/ASC.Web.Studio/bin/Debug/ASC.Web.Studio.dll urls=http://0.0.0.0:5003 $STORAGE_ROOT=$dir/Data log:dir=$dir/Logs log:name=studio pathToConf=$dir/config core:products:folder=$dir/products \ No newline at end of file diff --git a/build/runMigrations.sh b/build/runMigrations.sh new file mode 100755 index 0000000000..7758e245c1 --- /dev/null +++ b/build/runMigrations.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +echo "MIGRATIONS" +echo off + +rd="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +echo "Run script directory:" $rd + +dir=$(builtin cd $rd/../; pwd) +echo "Root directory:" $dir + +dotnet build $dir/asc.web.slnf +dotnet build $dir/ASC.Migrations.sln + +pushd $dir/common/Tools/ASC.Migration.Runner/bin/Debug/net6.0 +dotnet ASC.Migration.Runner.dll \ No newline at end of file diff --git a/build/start/command.ps1 b/build/start/command.ps1 index 8eef959102..d542fc0239 100644 --- a/build/start/command.ps1 +++ b/build/start/command.ps1 @@ -13,7 +13,7 @@ $CommandName = "$($args[0])"; #Write-Output "Starting $($CommandName) services at time: $(Get-Date -Format HH:mm:ss)" #Write-Output "" -Get-ChildItem -Path $WorkDir | ForEach-Object -ThrottleLimit 20 -Parallel { +Get-ChildItem -Path $WorkDir -File | ForEach-Object -ThrottleLimit 20 -Parallel { $ServiceName = "Onlyoffice$([System.IO.Path]::GetFileNameWithoutExtension($_))"; switch ( $Using:CommandName ) diff --git a/frontend.macos.code-workspace b/frontend.macos.code-workspace new file mode 100644 index 0000000000..a9b9b1117d --- /dev/null +++ b/frontend.macos.code-workspace @@ -0,0 +1,43 @@ +{ + "folders": [ + { + "name": "🌐 root", + "path": "." + }, + { + "name": "🚀 @docspace/client", + "path": "packages/client" + }, + { + "name": "🔑 @docspace/login", + "path": "packages/login" + }, + { + "name": "📄 @docspace/editor", + "path": "packages/editor" + }, + { + "name": "📦 @docspace/common", + "path": "packages/common" + }, + { + "name": "📦 @docspace/components", + "path": "packages/components" + } + ], + "settings": { + "window.zoomLevel": 0, + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "liveServer.settings.multiRootWorkspaceName": "✨ docspace", + "cSpell.words": ["docspace", "browserslist", "debuginfo", "doceditor"], + "jest.autoRun": "false" + }, + "extensions": { + "recommendations": [ + "folke.vscode-monorepo-workspace", + "orta.vscode-jest", + "firsttris.vscode-jest-runner" + ] + } +} diff --git a/packages/client/src/components/Article/Body/Items.js b/packages/client/src/components/Article/Body/Items.js index ba7d9c9281..4c4bc6c432 100644 --- a/packages/client/src/components/Article/Body/Items.js +++ b/packages/client/src/components/Article/Body/Items.js @@ -342,7 +342,7 @@ const Items = ({ /> ); - items.splice(3, 0, filesHeader); + isAdmin && items.splice(3, 0, filesHeader); items.unshift(roomsHeader); items.push(otherHeader); @@ -363,6 +363,7 @@ const Items = ({ startUpload, uploadEmptyFolders, trashIsEmpty, + isAdmin, ] ); diff --git a/packages/client/src/components/Article/MainButton/index.js b/packages/client/src/components/Article/MainButton/index.js index 4fb9dcd2b8..f0e257bfb3 100644 --- a/packages/client/src/components/Article/MainButton/index.js +++ b/packages/client/src/components/Article/MainButton/index.js @@ -526,7 +526,7 @@ export default inject( )( withTranslation(["Article", "UploadPanel", "Common", "Files", "People"])( withLoader(observer(withRouter(ArticleMainButtonContent)))( - + ) ) ); diff --git a/packages/client/src/components/EmptyContainer/EmptyContainer.js b/packages/client/src/components/EmptyContainer/EmptyContainer.js index 85e7fab37e..3ffd106382 100644 --- a/packages/client/src/components/EmptyContainer/EmptyContainer.js +++ b/packages/client/src/components/EmptyContainer/EmptyContainer.js @@ -7,6 +7,7 @@ import { smallTablet, desktop, } from "@docspace/components/utils/device"; +import { isMobile } from "react-device-detect"; const EmptyPageStyles = css` padding: 44px 0px 64px 0px; @@ -29,8 +30,9 @@ const EmptyPageStyles = css` } @media ${tablet} { - padding: 44px 0px 64px 97px; + padding: 44px 0px 64px 0px; grid-column-gap: 33px; + margin-left: auto; } @media ${smallTablet} { @@ -88,6 +90,13 @@ const EmptyFolderWrapper = styled.div` bottom: 16px; } + @media screen and (max-width: 1325px) { + ${!isMobile && + css` + margin-left: 98px; + `}; + } + ${(props) => props.isEmptyPage && `${EmptyPageStyles}`} } `; diff --git a/packages/client/src/pages/Home/Section/Body/RowsView/FilesRowContainer.js b/packages/client/src/pages/Home/Section/Body/RowsView/FilesRowContainer.js index e896bb84bb..348381b325 100644 --- a/packages/client/src/pages/Home/Section/Body/RowsView/FilesRowContainer.js +++ b/packages/client/src/pages/Home/Section/Body/RowsView/FilesRowContainer.js @@ -50,7 +50,7 @@ const StyledRowContainer = styled(RowContainer)` .files-row { border-top: ${(props) => `1px ${props.theme.filesSection.tableView.row.borderColor} solid`}; - margin-top: -3px; + margin-top: -1px; ${marginStyles} } } @@ -94,7 +94,7 @@ const FilesRowContainer = ({ hasMoreFiles={hasMoreFiles} draggable useReactWindow={!withPaging} - itemHeight={58} + itemHeight={59} > {filesList.map((item, index) => ( (props.checked || props.isActive) && checkedStyle}; ${(props) => props.dragging && draggingStyle} - height: 57px; + height: 56px; ${(props) => !isMobile && @@ -49,7 +49,7 @@ const StyledSimpleFilesRow = styled(Row)` cursor: pointer; ${checkedStyle} - margin-top: -3px; + margin-top: -1px; border-top: ${(props) => `1px ${props.theme.filesSection.tableView.row.borderColor} solid`}; } @@ -67,13 +67,13 @@ const StyledSimpleFilesRow = styled(Row)` /* cursor: wait; */ `} - margin-top: -2px; + margin-top: 0px; ${(props) => props.showHotkeyBorder && css` border-top: 1px solid #2da7db !important; - margin-top: -3px; + margin-top: -1px; margin-left: -24px; margin-right: -24px; padding-left: 24px; diff --git a/packages/client/src/store/ContextOptionsStore.js b/packages/client/src/store/ContextOptionsStore.js index 0f02c576f7..193b811af7 100644 --- a/packages/client/src/store/ContextOptionsStore.js +++ b/packages/client/src/store/ContextOptionsStore.js @@ -551,7 +551,7 @@ class ContextOptionsStore { { key: "room-info", label: "Info", - icon: "/static/images/info.react.svg", + icon: "/static/images/info.outline.react.svg", onClick: this.onShowInfoPanel, disabled: false, }, diff --git a/packages/client/src/store/FilesActionsStore.js b/packages/client/src/store/FilesActionsStore.js index 25db00ecc5..247281c845 100644 --- a/packages/client/src/store/FilesActionsStore.js +++ b/packages/client/src/store/FilesActionsStore.js @@ -664,7 +664,7 @@ class FilesActionStore { toastr.success(translations.successRemoveFolder); } else { this.updateFilesAfterDelete([itemId]); - this.filesStore.removeFiles([itemId], null, () => + this.filesStore.removeFiles(null, [itemId], () => toastr.success(translations.successRemoveFolder) ); } diff --git a/packages/client/src/store/FilesStore.js b/packages/client/src/store/FilesStore.js index f2fe1cb2d9..5f7ec3f51b 100644 --- a/packages/client/src/store/FilesStore.js +++ b/packages/client/src/store/FilesStore.js @@ -664,6 +664,9 @@ class FilesStore { const filterData = filter ? filter.clone() : FilesFilter.getDefault(); filterData.folder = folderId; + if (folderId === "@my" && this.authStore.userStore.user.isVisitor) + return this.fetchRooms(); + const filterStorageItem = this.authStore.userStore.user?.id && localStorage.getItem(`UserFilter=${this.authStore.userStore.user.id}`); @@ -1703,7 +1706,8 @@ class FilesStore { removeFiles = (fileIds, folderIds, showToast) => { const newFilter = this.filter.clone(); - const deleteCount = fileIds.length + folderIds.length; + const deleteCount = (fileIds?.length ?? 0) + (folderIds?.length ?? 0); + newFilter.startIndex = (newFilter.page + 1) * newFilter.pageCount - deleteCount; newFilter.pageCount = deleteCount; @@ -1713,10 +1717,10 @@ class FilesStore { .then((res) => { const files = fileIds ? this.files.filter((x) => !fileIds.includes(x.id)) - : []; + : this.files; const folders = folderIds ? this.folders.filter((x) => !folderIds.includes(x.id)) - : []; + : this.folders; const newFiles = [...files, ...res.files]; const newFolders = [...folders, ...res.folders]; diff --git a/packages/client/src/store/ProfileActionsStore.js b/packages/client/src/store/ProfileActionsStore.js index 59cda303a6..f277ca82e4 100644 --- a/packages/client/src/store/ProfileActionsStore.js +++ b/packages/client/src/store/ProfileActionsStore.js @@ -190,7 +190,7 @@ class ProfileActionsStore { hotkeys, { key: "AboutBtn", - icon: "/static/images/info.react.svg", + icon: "/static/images/info.outline.react.svg", label: t("Common:AboutCompanyTitle"), onClick: this.onAboutClick, }, @@ -210,7 +210,7 @@ class ProfileActionsStore { if (debugInfo) { actions.splice(3, 0, { key: "DebugBtn", - icon: "/static/images/info.react.svg", + icon: "/static/images/info.outline.react.svg", label: "Debug Info", onClick: this.onDebugClick, }); diff --git a/packages/common/components/Article/styled-article.js b/packages/common/components/Article/styled-article.js index b09577b127..6961142869 100644 --- a/packages/common/components/Article/styled-article.js +++ b/packages/common/components/Article/styled-article.js @@ -289,6 +289,10 @@ const StyledArticleProfile = styled.div` padding: 16px 14px; `} + .profile-avatar { + cursor: pointer; + } + .option-button { margin-left: auto; height: 32px; diff --git a/packages/common/components/Article/sub-components/article-profile.js b/packages/common/components/Article/sub-components/article-profile.js index a8d29dc932..c0e6398cbc 100644 --- a/packages/common/components/Article/sub-components/article-profile.js +++ b/packages/common/components/Article/sub-components/article-profile.js @@ -15,7 +15,7 @@ import { } from "../styled-article"; const ArticleProfile = (props) => { - const { user, showText, getUserRole, getActions } = props; + const { user, showText, getUserRole, getActions, onProfileClick } = props; const { t } = useTranslation("Common"); const [isOpen, setIsOpen] = useState(false); const ref = useRef(null); @@ -31,7 +31,11 @@ const ArticleProfile = (props) => { }; const onAvatarClick = (e) => { - if (isTabletView && !showText) toggle(e, !isOpen); + if (isTabletView && !showText) { + toggle(e, !isOpen); + } else { + onProfileClick(); + } }; const onHide = () => { @@ -46,6 +50,7 @@ const ArticleProfile = (props) => {
{ export default withRouter( inject(({ auth, profileActionsStore }) => { - const { getActions, getUserRole } = profileActionsStore; + const { getActions, getUserRole, onProfileClick } = profileActionsStore; return { + onProfileClick, user: auth.userStore.user, getUserRole, getActions, diff --git a/packages/components/catalog-item/styled-catalog-item.js b/packages/components/catalog-item/styled-catalog-item.js index 297a8267f3..05f2a7583e 100644 --- a/packages/components/catalog-item/styled-catalog-item.js +++ b/packages/components/catalog-item/styled-catalog-item.js @@ -34,7 +34,7 @@ const StyledCatalogItemHeaderContainer = styled.div` height: 24px; - padding: 8px 12px 4px; + padding: 7px 12px 4px; box-sizing: border-box; @@ -44,7 +44,7 @@ const StyledCatalogItemHeaderContainer = styled.div` font-style: normal; font-weight: 600; font-size: 11px; - line-height: 12px; + line-height: 14px; color: #a3a9ae; } diff --git a/packages/components/drop-down-item/styled-drop-down-item.js b/packages/components/drop-down-item/styled-drop-down-item.js index d42c7add4e..f4414189aa 100644 --- a/packages/components/drop-down-item/styled-drop-down-item.js +++ b/packages/components/drop-down-item/styled-drop-down-item.js @@ -56,6 +56,20 @@ const StyledDropdownItem = styled.div` ? props.theme.dropDownItem.icon.disableColor : props.theme.dropDownItem.icon.color}; } + + circle[fill] { + fill: ${(props) => + props.disabled + ? props.theme.dropDownItem.icon.disableColor + : props.theme.dropDownItem.icon.color}; + } + + rect[fill] { + fill: ${(props) => + props.disabled + ? props.theme.dropDownItem.icon.disableColor + : props.theme.dropDownItem.icon.color}; + } } } diff --git a/packages/components/empty-screen-container/styled-empty-screen-container.js b/packages/components/empty-screen-container/styled-empty-screen-container.js index 971a439b8d..dce2f94ced 100644 --- a/packages/components/empty-screen-container/styled-empty-screen-container.js +++ b/packages/components/empty-screen-container/styled-empty-screen-container.js @@ -72,6 +72,7 @@ const EmptyContentBody = styled.div` grid-column-gap: 16px; grid-row-gap: 10px; max-width: 800px; + grid-template-rows: max-content; .ec-image { grid-area: img; @@ -79,6 +80,10 @@ const EmptyContentBody = styled.div` ${NoUserSelect} } + @media ${tablet} { + max-width: 480px; + } + .ec-header { grid-area: headerText; padding-top: 16px; @@ -104,7 +109,6 @@ const EmptyContentBody = styled.div` @media (orientation: portrait) { @media (max-width: 768px) { padding-top: 0px; - max-width: 700px; .ec-image { max-height: 100px; diff --git a/packages/components/infinite-loader/StyledInfiniteLoader.js b/packages/components/infinite-loader/StyledInfiniteLoader.js index a1165903aa..c6fbb67a62 100644 --- a/packages/components/infinite-loader/StyledInfiniteLoader.js +++ b/packages/components/infinite-loader/StyledInfiniteLoader.js @@ -1,7 +1,8 @@ import { List } from "react-virtualized"; import styled, { css } from "styled-components"; import Base from "../themes/base"; -import { desktop, mobile, tablet } from "../utils/device"; +import { mobile, tablet } from "../utils/device"; +import { isMobile } from "react-device-detect"; const StyledScroll = styled.div` overflow: scroll; @@ -31,10 +32,10 @@ const StyledScroll = styled.div` const rowStyles = css` margin-left: -20px; - width: ${({ width }) => width + 36 + "px !important"}; + width: ${({ width }) => width + (isMobile ? 36 : 40) + "px !important"}; .ReactVirtualized__Grid__innerScrollContainer { - max-width: ${({ width }) => width + 36 + "px !important"}; + max-width: ${({ width }) => width + (isMobile ? 36 : 40) + "px !important"}; } @media ${tablet} { diff --git a/packages/components/row-content/styled-row-content.js b/packages/components/row-content/styled-row-content.js index 86adc444bb..af62f9682f 100644 --- a/packages/components/row-content/styled-row-content.js +++ b/packages/components/row-content/styled-row-content.js @@ -79,7 +79,9 @@ const MainContainerWrapper = styled.div` props.widthProp && props.widthProp < size.tablet) || props.isMobile - ? `${mainWrapperTabletStyle}` + ? css` + ${mainWrapperTabletStyle} + ` : ` `} @media ${tablet} { diff --git a/packages/components/themes/dark.js b/packages/components/themes/dark.js index 9a3114c0b0..2e1407edbb 100644 --- a/packages/components/themes/dark.js +++ b/packages/components/themes/dark.js @@ -1614,10 +1614,11 @@ const Dark = { }, toggleButton: { - fillColor: grayMaxLight, + fillColor: "#F0F0F0", fillColorOff: "#292929", disableFillColor: black, + disableFillColorOff: "#545454", borderColor: "#474747", borderColorOff: "#474747", @@ -1625,11 +1626,11 @@ const Dark = { disableBorderColor: "#474747", disableBorderColorOff: "#646464", - fillCircleColor: "#FFFFFF", + fillCircleColor: "#292929", fillCircleColorOff: grayMaxLight, - disableFillCircleColor: "#333333", - disableFillCircleColorOff: "#797979", + disableFillCircleColor: "#545454", + disableFillCircleColorOff: black, }, contextMenuButton: { diff --git a/packages/components/toggle-button/index.js b/packages/components/toggle-button/index.js index 1e874a33ca..74b4534e96 100644 --- a/packages/components/toggle-button/index.js +++ b/packages/components/toggle-button/index.js @@ -1,15 +1,8 @@ import React, { Component } from "react"; import PropTypes from "prop-types"; -import { - ToggleButtonContainer, - HiddenInput, - Container, -} from "./styled-toggle-button"; +import { ToggleButtonContainer, HiddenInput } from "./styled-toggle-button"; import Text from "../text"; -import globalColors from "../utils/globalColors"; import { motion } from "framer-motion"; -import Base from "../themes/base"; - import { ColorTheme, ThemeType } from "@docspace/common/components/ColorTheme"; const ToggleIcon = ({ isChecked, isLoading }) => { @@ -72,16 +65,12 @@ class ToggleButton extends Component { className, style, isLoading, - theme, } = this.props; - const { gray } = globalColors; - const colorProps = isDisabled ? { color: gray } : {}; //console.log("ToggleButton render"); return ( {label && ( - + {label} )} diff --git a/packages/components/toggle-button/styled-toggle-button.js b/packages/components/toggle-button/styled-toggle-button.js index 06263646d8..31bebee6e0 100644 --- a/packages/components/toggle-button/styled-toggle-button.js +++ b/packages/components/toggle-button/styled-toggle-button.js @@ -36,9 +36,12 @@ const ToggleButtonContainer = styled.label` rect { fill: ${props.isChecked ? props.theme.toggleButton.disableFillColor - : props.theme.toggleButton.fillColorOff}; + : props.theme.toggleButton.disableFillColorOff}; stroke-width: 1px; stroke-linecap: round; + stroke: ${props.isChecked + ? props.theme.toggleButton.borderColor + : props.theme.toggleButton.borderColorOff}; } circle { fill: ${props.isChecked @@ -52,6 +55,9 @@ const ToggleButtonContainer = styled.label` ? props.theme.toggleButton.fillColor : props.theme.toggleButton.fillColorOff}; stroke-width: 1px; + stroke: ${props.isChecked + ? props.theme.toggleButton.borderColor + : props.theme.toggleButton.borderColor}; } circle { fill: ${props.isChecked