diff --git a/libs/pages/application/src/lib/ui/container/container.tsx b/libs/pages/application/src/lib/ui/container/container.tsx index 20db0fe23c..1eac56eeac 100644 --- a/libs/pages/application/src/lib/ui/container/container.tsx +++ b/libs/pages/application/src/lib/ui/container/container.tsx @@ -1,11 +1,12 @@ import { Environment, ServiceDeploymentStatusEnum } from 'qovery-typescript-axios' import { createContext, useState } from 'react' -import { useDispatch } from 'react-redux' +import { useDispatch, useSelector } from 'react-redux' import { useParams } from 'react-router-dom' import { postApplicationActionsDeploy, postApplicationActionsRestart } from '@qovery/domains/application' +import { selectClusterById } from '@qovery/domains/organization' import { ApplicationButtonsActions } from '@qovery/shared/console-shared' import { IconEnum, getServiceType, isCronJob, isLifeCycleJob } from '@qovery/shared/enums' -import { ApplicationEntity } from '@qovery/shared/interfaces' +import { ApplicationEntity, ClusterEntity } from '@qovery/shared/interfaces' import { Button, ButtonSize, @@ -20,7 +21,7 @@ import { TagMode, TagSize, } from '@qovery/shared/ui' -import { AppDispatch } from '@qovery/store' +import { AppDispatch, RootState } from '@qovery/store' import TabsFeature from '../../feature/tabs-feature/tabs-feature' import NeedRedeployFlag from '../need-redeploy-flag/need-redeploy-flag' @@ -43,6 +44,10 @@ export function Container(props: ContainerProps) { const { environmentId = '', applicationId = '' } = useParams() const [showHideAllEnvironmentVariablesValues, setShowHideAllEnvironmentVariablesValues] = useState(false) + const cluster = useSelector((state: RootState) => + selectClusterById(state, environment?.cluster_id || '') + ) + const dispatch = useDispatch() const redeployApplication = () => { @@ -120,10 +125,10 @@ export function Container(props: ContainerProps) { {application && } - +
-

{environment?.cloud_provider.cluster}

+

{cluster?.name}

diff --git a/libs/pages/database/src/lib/ui/container/container.tsx b/libs/pages/database/src/lib/ui/container/container.tsx index 82b94ff344..5396ecb2d1 100644 --- a/libs/pages/database/src/lib/ui/container/container.tsx +++ b/libs/pages/database/src/lib/ui/container/container.tsx @@ -1,8 +1,10 @@ import { Environment } from 'qovery-typescript-axios' +import { useSelector } from 'react-redux' import { useLocation, useParams } from 'react-router-dom' +import { selectClusterById } from '@qovery/domains/organization' import { DatabaseButtonsActions } from '@qovery/shared/console-shared' import { IconEnum, RunningStatus } from '@qovery/shared/enums' -import { DatabaseEntity } from '@qovery/shared/interfaces' +import { ClusterEntity, DatabaseEntity } from '@qovery/shared/interfaces' import { DATABASE_DEPLOYMENTS_URL, DATABASE_GENERAL_URL, @@ -10,6 +12,7 @@ import { DATABASE_URL, } from '@qovery/shared/router' import { Header, Icon, Skeleton, StatusChip, Tabs, Tag, TagMode, TagSize } from '@qovery/shared/ui' +import { RootState } from '@qovery/store' export interface ContainerProps { database?: DatabaseEntity @@ -23,6 +26,10 @@ export function Container(props: ContainerProps) { const { organizationId, projectId, environmentId, databaseId } = useParams() const location = useLocation() + const cluster = useSelector((state: RootState) => + selectClusterById(state, environment?.cluster_id || '') + ) + const headerActions = ( <> @@ -40,10 +47,10 @@ export function Container(props: ContainerProps) { )} - +
-

{environment?.cloud_provider.cluster}

+

{cluster?.name}

diff --git a/libs/pages/services/src/lib/ui/container/container.tsx b/libs/pages/services/src/lib/ui/container/container.tsx index 5cc05bd909..19ccb11956 100644 --- a/libs/pages/services/src/lib/ui/container/container.tsx +++ b/libs/pages/services/src/lib/ui/container/container.tsx @@ -3,9 +3,10 @@ import { useSelector } from 'react-redux' import { useLocation, useNavigate, useParams } from 'react-router-dom' import { selectApplicationsEntitiesByEnvId } from '@qovery/domains/application' import { selectDatabasesEntitiesByEnvId } from '@qovery/domains/database' +import { selectClusterById } from '@qovery/domains/organization' import { EnvironmentButtonsActions } from '@qovery/shared/console-shared' import { IconEnum, RunningStatus } from '@qovery/shared/enums' -import { ApplicationEntity, DatabaseEntity, EnvironmentEntity } from '@qovery/shared/interfaces' +import { ApplicationEntity, ClusterEntity, DatabaseEntity, EnvironmentEntity } from '@qovery/shared/interfaces' import { SERVICES_APPLICATION_CREATION_URL, SERVICES_CRONJOB_CREATION_URL, @@ -53,6 +54,10 @@ export function Container(props: ContainerProps) { selectDatabasesEntitiesByEnvId(state, environment?.id || '') ) + const cluster = useSelector((state: RootState) => + selectClusterById(state, environment?.cluster_id || '') + ) + const headerButtons = (
{/* )} - +
-

{environment?.cloud_provider.cluster}

+

{cluster?.name}

diff --git a/libs/shared/console-shared/src/lib/deploy-other-commit-modal/ui/deploy-other-commit-modal.tsx b/libs/shared/console-shared/src/lib/deploy-other-commit-modal/ui/deploy-other-commit-modal.tsx index 0d2927e359..949041f29d 100644 --- a/libs/shared/console-shared/src/lib/deploy-other-commit-modal/ui/deploy-other-commit-modal.tsx +++ b/libs/shared/console-shared/src/lib/deploy-other-commit-modal/ui/deploy-other-commit-modal.tsx @@ -1,5 +1,7 @@ import { Commit } from 'qovery-typescript-axios' import { + Avatar, + AvatarStyle, Button, ButtonSize, ButtonStyle, @@ -75,6 +77,7 @@ export function DeployOtherCommitModal(props: DeployOtherCommitModalProps) { ? 'bg-brand-50 outline-brand-500 outline' : '' } ${commitsByDay[date].length - 1 === index ? '' : 'border-b'} + ${selectedCommitId === commit.git_commit_id ? 'z-50' : ''} ${currentCommitId === commit.git_commit_id ? 'bg-green-50' : ''} ${index === 0 ? 'rounded-t-md' : ''} ${ index === commitsByDay[date].length - 1 ? 'rounded-b-md' : '' @@ -93,7 +96,16 @@ export function DeployOtherCommitModal(props: DeployOtherCommitModalProps) {

- +
+ + +
diff --git a/libs/shared/ui/src/lib/components/avatar/avatar.tsx b/libs/shared/ui/src/lib/components/avatar/avatar.tsx index daa6280b62..263c091ddb 100644 --- a/libs/shared/ui/src/lib/components/avatar/avatar.tsx +++ b/libs/shared/ui/src/lib/components/avatar/avatar.tsx @@ -37,7 +37,7 @@ export function Avatar(props: AvatarProps) { noTooltip = false, } = props - const defineClass = `${style === AvatarStyle.STROKED ? 'border-2 border-element-light-lighter-400' : ''} ${ + const defineClass = `${style === AvatarStyle.STROKED ? 'border border-element-light-lighter-400' : ''} ${ onClick ? 'cursor-pointer' : '' }` diff --git a/libs/shared/ui/src/lib/components/scroll-shadow-wrapper/scroll-shadow-wrapper.tsx b/libs/shared/ui/src/lib/components/scroll-shadow-wrapper/scroll-shadow-wrapper.tsx index 93cccdd137..e816d91b9c 100644 --- a/libs/shared/ui/src/lib/components/scroll-shadow-wrapper/scroll-shadow-wrapper.tsx +++ b/libs/shared/ui/src/lib/components/scroll-shadow-wrapper/scroll-shadow-wrapper.tsx @@ -49,7 +49,7 @@ export function ScrollShadowWrapper(props: ScrollShadowWrapperProps) { data-testid="scroll-shadow-wrapper" ref={wrapperRef} style={style} - className={`relative overflow-auto ${className}`} + className={`relative overflow-y-auto pr-[1px] ${className}`} onScroll={onScrollHandler} >
+ {!hover ? (
diff --git a/libs/shared/ui/src/lib/components/tag/tag.tsx b/libs/shared/ui/src/lib/components/tag/tag.tsx index 6b4d561504..2e2fcd92d6 100644 --- a/libs/shared/ui/src/lib/components/tag/tag.tsx +++ b/libs/shared/ui/src/lib/components/tag/tag.tsx @@ -13,7 +13,7 @@ export interface TagProps { export function Tag(props: TagProps) { const { children, className = '', size = TagSize.NORMAL, dataTestId = 'tag' } = props - const normalClassName = size === TagSize.NORMAL ? 'h-6 px-2' : '' + const normalClassName = size === TagSize.NORMAL ? 'h-7 px-2' : '' const bigClassName = size === TagSize.BIG ? 'h-8 px-3' : '' return ( diff --git a/libs/shared/utils/src/lib/tools/status-actions-available.tsx b/libs/shared/utils/src/lib/tools/status-actions-available.tsx index b39dcbfdb2..5dfdf8a250 100644 --- a/libs/shared/utils/src/lib/tools/status-actions-available.tsx +++ b/libs/shared/utils/src/lib/tools/status-actions-available.tsx @@ -39,6 +39,7 @@ export const isStopAvailable = (status: StateEnum): boolean => { status === StateEnum.RUNNING || status === StateEnum.DEPLOYMENT_ERROR || status === StateEnum.DEPLOYMENT_QUEUED || + status === StateEnum.STOP_ERROR || status === StateEnum.CANCELED) && !isCancelBuildAvailable(status) )