From 5942f4ff588ec3a3957909be7ac0bff7bdc63e67 Mon Sep 17 00:00:00 2001 From: Chaim Lev-Ari Date: Thu, 19 Jan 2023 10:16:34 +0200 Subject: [PATCH] fix(home): dark mode for edit buttons [EE-4828] (#8241) --- app/assets/css/app.css | 13 --- app/assets/css/theme.css | 7 +- app/react/components/LinkButton.tsx | 1 - .../EnvironmentItem/EditButtons.tsx | 16 ++- .../EnvironmentBrowseButtons.tsx | 97 +++++++++++++------ .../EnvironmentItem.stories.tsx | 1 + .../EnvironmentItem/EnvironmentItem.test.tsx | 1 + .../EnvironmentItem/EnvironmentItem.tsx | 5 +- .../EnvironmentList/EnvironmentList.tsx | 9 +- 9 files changed, 96 insertions(+), 54 deletions(-) diff --git a/app/assets/css/app.css b/app/assets/css/app.css index 53d3982e5..cb3544195 100644 --- a/app/assets/css/app.css +++ b/app/assets/css/app.css @@ -210,25 +210,12 @@ input[type='checkbox'] { margin-right: 10px; } -.blocklist-item--disabled { - cursor: auto; - background-color: var(--grey-12); -} - .blocklist-item--selected { background-color: var(--bg-blocklist-item-selected-color); border: 2px solid var(--border-blocklist-item-selected-color); color: var(--text-blocklist-item-selected-color); } -.blocklist-item:not(.blocklist-item-not-interactive):hover { - @apply border border-blue-7; - cursor: pointer; - - background-color: var(--bg-blocklist-hover-color); - color: var(--text-blocklist-hover-color); -} - .blocklist-item-box { display: flex; } diff --git a/app/assets/css/theme.css b/app/assets/css/theme.css index d917f54c8..e4f6cf70e 100644 --- a/app/assets/css/theme.css +++ b/app/assets/css/theme.css @@ -222,7 +222,6 @@ --border-table-color: var(--grey-19); --border-table-top-color: var(--grey-19); --border-datatable-top-color: var(--grey-10); - --border-blocklist-color: var(--grey-44); --border-input-group-addon-color: var(--grey-44); --border-btn-default-color: var(--grey-44); --border-boxselector-color: var(--grey-6); @@ -231,7 +230,6 @@ --border-navtabs-color: var(--ui-white); --border-codemirror-cursor-color: var(--black-color); --border-pre-color: var(--grey-43); - --border-blocklist-item-selected-color: var(--grey-46); --border-pagination-span-color: var(--ui-white); --border-pagination-hover-color: var(--ui-white); --border-panel-color: var(--white-color); @@ -245,6 +243,7 @@ --border-sortbutton: var(--grey-8); --border-bootbox: var(--ui-gray-5); --border-blocklist: var(--ui-gray-5); + --border-blocklist-item-selected-color: var(--grey-46); --border-widget: var(--ui-gray-5); --border-nav-container-color: var(--ui-gray-5); --border-stepper-color: var(--ui-gray-4); @@ -408,7 +407,6 @@ --border-table-color: var(--grey-3); --border-table-top-color: var(--grey-3); --border-datatable-top-color: var(--grey-3); - --border-blocklist-color: var(--grey-3); --border-input-group-addon-color: var(--grey-38); --border-btn-default-color: var(--grey-38); --border-boxselector-color: var(--grey-1); @@ -417,6 +415,7 @@ --border-navtabs-color: var(--grey-38); --border-codemirror-cursor-color: var(--white-color); --border-pre-color: var(--grey-3); + --border-blocklist: var(--ui-gray-9); --border-blocklist-item-selected-color: var(--grey-38); --border-pagination-span-color: var(--grey-1); --border-pagination-hover-color: var(--grey-3); @@ -430,7 +429,6 @@ --border-modal: 0px; --border-sortbutton: var(--grey-3); --border-bootbox: var(--ui-gray-9); - --border-blocklist: var(--ui-gray-9); --border-widget: var(--grey-3); --border-pagination-color: var(--grey-1); --border-nav-container-color: var(--ui-gray-neutral-8); @@ -600,7 +598,6 @@ --border-pre-color: var(--grey-3); --border-codemirror-cursor-color: var(--white-color); --border-modal: 1px solid var(--white-color); - --border-blocklist-color: var(--white-color); --border-sortbutton: var(--black-color); --border-bootbox: var(--black-color); --border-blocklist: var(--white-color); diff --git a/app/react/components/LinkButton.tsx b/app/react/components/LinkButton.tsx index f63ca07cd..4d4818695 100644 --- a/app/react/components/LinkButton.tsx +++ b/app/react/components/LinkButton.tsx @@ -16,7 +16,6 @@ export function LinkButton({ return ( + ))} + + {browseStatus !== 'connected' ? ( - Browse snapshot + Live connect + ) : ( + )} - - Live connect - - ); @@ -87,7 +116,7 @@ function BrowseStatusTag({ status }: { status: BrowseStatus }) { function Disconnected() { return ( -
+
Disconnected
@@ -96,8 +125,14 @@ function Disconnected() { function Connected() { return ( -
-
+
+
Connected
); @@ -105,7 +140,13 @@ function Connected() { function Snapshot() { return ( -
+
Browsing Snapshot
diff --git a/app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentItem.stories.tsx b/app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentItem.stories.tsx index 9b69f6d5a..364000981 100644 --- a/app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentItem.stories.tsx +++ b/app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentItem.stories.tsx @@ -23,6 +23,7 @@ function Template({ environment }: Args) { {}} + onClickDisconnect={() => {}} isActive={false} /> ); diff --git a/app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentItem.test.tsx b/app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentItem.test.tsx index d31044b69..779d1532d 100644 --- a/app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentItem.test.tsx +++ b/app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentItem.test.tsx @@ -46,6 +46,7 @@ function renderComponent( {}} + onClickDisconnect={() => {}} environment={env} groupName={group.Name} /> diff --git a/app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentItem.tsx b/app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentItem.tsx index 56ca35c56..6e745be1e 100644 --- a/app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentItem.tsx +++ b/app/react/portainer/HomeView/EnvironmentList/EnvironmentItem/EnvironmentItem.tsx @@ -33,12 +33,14 @@ interface Props { environment: Environment; groupName?: string; onClickBrowse(): void; + onClickDisconnect(): void; isActive: boolean; } export function EnvironmentItem({ environment, onClickBrowse, + onClickDisconnect, groupName, isActive, }: Props) { @@ -113,10 +115,11 @@ export function EnvironmentItem({ see https://stackoverflow.com/questions/66409964/warning-validatedomnesting-a-cannot-appear-as-a-descendant-of-a */}
-
+
diff --git a/app/react/portainer/HomeView/EnvironmentList/EnvironmentList.tsx b/app/react/portainer/HomeView/EnvironmentList/EnvironmentList.tsx index dff24298f..2f5d8e069 100644 --- a/app/react/portainer/HomeView/EnvironmentList/EnvironmentList.tsx +++ b/app/react/portainer/HomeView/EnvironmentList/EnvironmentList.tsx @@ -46,7 +46,7 @@ const storageKey = 'home_endpoints'; export function EnvironmentList({ onClickBrowse, onRefresh }: Props) { const { isAdmin } = useUser(); - const { environmentId: currentEnvironmentId } = useStore(environmentStore); + const currentEnvStore = useStore(environmentStore); const [platformTypes, setPlatformTypes] = useHomePageFilter< Filter[] @@ -223,7 +223,12 @@ export function EnvironmentList({ onClickBrowse, onRefresh }: Props) { groupsQuery.data?.find((g) => g.Id === env.GroupId)?.Name } onClickBrowse={() => onClickBrowse(env)} - isActive={env.Id === currentEnvironmentId} + onClickDisconnect={() => + env.Id === currentEnvStore.environmentId + ? currentEnvStore.clear() + : null + } + isActive={env.Id === currentEnvStore.environmentId} /> )) )}