Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
6c59ada
refactor: app details
arunjaindev Dec 23, 2025
696c68e
Merge pull request #3028 from devtron-labs/fix/param-redirection
arunjaindev Dec 24, 2025
5c1ddd2
feat: temporarily add option from params in selected filters
arunjaindev Dec 26, 2025
3d560d8
refactor: improve code clarity and maintainability in AppDetails and …
arunjaindev Dec 26, 2025
9c04a21
Merge branch 'hotfix-v0.43.0' of https://github.com/devtron-labs/dash…
arunjaindev Dec 26, 2025
1e16c2b
Merge branch 'refactor/app-details' of https://github.com/devtron-lab…
arunjaindev Dec 26, 2025
a37bd69
chore: version bump
arunjaindev Dec 26, 2025
aeb7589
Merge branch 'main' into refactor/app-details
shivani170 Dec 29, 2025
1ed07fe
Merge branch 'refactor/app-details' into chore/retain-filter
shivani170 Dec 29, 2025
527c113
chore: version bump
shivani170 Dec 29, 2025
e3afb44
Merge pull request #3030 from devtron-labs/chore/retain-filter
shivani170 Dec 29, 2025
4a8d478
Merge branch 'main' into refactor/app-details
arunjaindev Jan 5, 2026
8967e34
chore: version bump
arunjaindev Jan 5, 2026
65fad56
feat: integrate analytics event handling in navigation components and…
arunjaindev Jan 5, 2026
ff923fc
feat: enhance app details handling with release mode checks and impro…
arunjaindev Jan 5, 2026
4be042c
refactor: simplify conditional rendering for SecurityVulnerabilityCar…
arunjaindev Jan 5, 2026
bace00c
refactor: update conditional rendering logic in SourceInfo component …
arunjaindev Jan 5, 2026
6d3fe69
refactor: update deployment status query to include pipeline and exte…
arunjaindev Jan 5, 2026
4f09708
chore: parse interval to number
arunjaindev Jan 5, 2026
80528c1
refactor: change queryClient.invalidateQueries to refetchQueries for …
arunjaindev Jan 5, 2026
db85680
refactor: add conditional rendering for ExplainWithAIButton based on …
arunjaindev Jan 6, 2026
bcb489f
refactor: add analytics event tracking for command bar shortcut and b…
arunjaindev Jan 6, 2026
b6c471d
Merge branch 'main' of https://github.com/devtron-labs/dashboard into…
arunjaindev Jan 15, 2026
70cdc09
feat: enhance CommandBarBackdrop with refetch capability and update A…
arunjaindev Jan 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,6 @@ src/components/app/list/__tests__/AppListView.test.tsx
src/components/app/list/appList.modal.ts
src/components/app/list/emptyView/Empty.tsx
src/components/app/list/expandedRow/ExpandedRow.tsx
src/components/app/service.ts
src/components/bulkEdits/bulkedit.utils.tsx
src/components/cdPipeline/BuildCD.tsx
src/components/cdPipeline/CDPipeline.tsx
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"private": true,
"homepage": "/dashboard",
"dependencies": {
"@devtron-labs/devtron-fe-common-lib": "1.22.5",
"@devtron-labs/devtron-fe-common-lib": "1.22.6",
"@esbuild-plugins/node-globals-polyfill": "0.2.3",
"@rjsf/core": "^5.13.3",
"@rjsf/utils": "^5.13.3",
Expand Down
8 changes: 7 additions & 1 deletion src/Pages/Shared/CommandBar/CommandBarBackdrop.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,11 @@ const CommandBarBackdrop = ({ handleClose, isLoadingResourceList, resourceList }
[resourceList],
)

const { data: recentActionsGroup, isLoading } = useQuery({
const {
data: recentActionsGroup,
isLoading,
refetch: refetchActionsGroup,
} = useQuery({
queryFn: ({ signal }) =>
getUserPreferences(signal).then((response) => {
const responseData: ResponseType<typeof response> = {
Expand Down Expand Up @@ -176,6 +180,8 @@ const CommandBarBackdrop = ({ handleClose, isLoadingResourceList, resourceList }
return
}

await refetchActionsGroup()

const currentItemId = sanitizeItemId(item)

// In this now we will put the id as first item in the list and keep first 5 items then
Expand Down
2 changes: 0 additions & 2 deletions src/components/ApplicationGroup/AppGroup.types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -271,8 +271,6 @@ export interface GroupFilterType {
appListOptions: OptionType[]
selectedAppList: MultiValue<OptionType>
setSelectedAppList: React.Dispatch<React.SetStateAction<MultiValue<OptionType>>>
selectedFilterTab: AppFilterTabs
setSelectedFilterTab: React.Dispatch<React.SetStateAction<AppFilterTabs>>
groupFilterOptions: GroupOptionType[]
selectedGroupFilter: MultiValue<GroupOptionType>
setSelectedGroupFilter: React.Dispatch<React.SetStateAction<MultiValue<GroupOptionType>>>
Expand Down
15 changes: 8 additions & 7 deletions src/components/ApplicationGroup/AppGroupDetailsRoute.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,6 @@ export default function AppGroupDetailsRoute({ isSuperAdmin }: AppGroupAdminType
const [appListOptions, setAppListOptions] = useState<OptionType[]>([])
const [selectedAppList, setSelectedAppList] = useState<MultiValue<OptionType>>([])
const [appGroupListData, setAppGroupListData] = useState<AppGroupListType>()
const [selectedFilterTab, setSelectedFilterTab] = useState<AppFilterTabs>(AppFilterTabs.GROUP_FILTER)
const [groupFilterOptions, setGroupFilterOptions] = useState<GroupOptionType[]>([])
const [selectedGroupFilter, setSelectedGroupFilter] = useState<MultiValue<GroupOptionType>>([])
const [showCreateGroup, setShowCreateGroup] = useState<boolean>(false)
Expand Down Expand Up @@ -440,7 +439,12 @@ export default function AppGroupDetailsRoute({ isSuperAdmin }: AppGroupAdminType
/>
</Route>
<Route path={`${path}${URLS.DETAILS}/:appId(\\d+)?`}>
<AppDetail detailsType="app-group" filteredResourceIds={_filteredAppsIds} />
<AppDetail
detailsType="app-group"
filteredResourceIds={_filteredAppsIds}
resourceList={appListOptions}
setSelectedResourceList={setSelectedAppList}
/>
</Route>
<Route path={`${path}/${URLS.APP_TRIGGER}`}>
<EnvTriggerView filteredAppIds={_filteredAppsIds} isVirtualEnv={isVirtualEnv} />
Expand Down Expand Up @@ -473,8 +477,6 @@ export default function AppGroupDetailsRoute({ isSuperAdmin }: AppGroupAdminType
appListOptions={appListOptions}
selectedAppList={selectedAppList}
setSelectedAppList={setSelectedAppList}
selectedFilterTab={selectedFilterTab}
setSelectedFilterTab={setSelectedFilterTab}
groupFilterOptions={groupFilterOptions}
selectedGroupFilter={selectedGroupFilter}
setSelectedGroupFilter={setSelectedGroupFilter}
Expand Down Expand Up @@ -504,16 +506,14 @@ export default function AppGroupDetailsRoute({ isSuperAdmin }: AppGroupAdminType
)
}

export const EnvHeader = ({
const EnvHeader = ({
envName,
setEnvName,
setShowEmpty,
showEmpty,
appListOptions,
selectedAppList,
setSelectedAppList,
selectedFilterTab,
setSelectedFilterTab,
groupFilterOptions,
selectedGroupFilter,
setSelectedGroupFilter,
Expand All @@ -529,6 +529,7 @@ export const EnvHeader = ({
const { setCurrentEnvironmentName } = useAppContext()

const [isMenuOpen, setMenuOpen] = useState(false)
const [selectedFilterTab, setSelectedFilterTab] = useState<AppFilterTabs>(AppFilterTabs.GROUP_FILTER)

const contextValue = useMemo(
() => ({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,6 @@ import {
getTriggerHistory,
useScrollable,
TRIGGER_STATUS_PROGRESSING,
STAGE_TYPE,
DeploymentStageType,
DeploymentNodeType,
} from '@devtron-labs/devtron-fe-common-lib'
import { useHistory, useRouteMatch, useParams, generatePath, Route } from 'react-router-dom'
import { useAppContext } from '../../../common'
Expand Down
9 changes: 4 additions & 5 deletions src/components/app/details/AppHeader.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
*/

import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
import ReactGA from 'react-ga4'
import { generatePath, useHistory, useLocation, useParams, useRouteMatch } from 'react-router-dom'

import {
Expand All @@ -31,6 +30,8 @@ import {
useBreadcrumb,
} from '@devtron-labs/devtron-fe-common-lib'

import { AppFilterTabs } from '@Components/ApplicationGroup/Constants'

import { URLS } from '../../../config'
import { FilterParentType } from '../../ApplicationGroup/AppGroup.types'
import AppGroupAppFilter from '../../ApplicationGroup/AppGroupAppFilter'
Expand All @@ -52,8 +53,6 @@ export const AppHeader = ({
appListOptions,
selectedAppList,
setSelectedAppList,
selectedFilterTab,
setSelectedFilterTab,
groupFilterOptions,
selectedGroupFilter,
setSelectedGroupFilter,
Expand All @@ -69,6 +68,7 @@ export const AppHeader = ({
const { setCurrentAppName } = useAppContext()

const [isMenuOpen, setMenuOpen] = useState(false)
const [selectedFilterTab, setSelectedFilterTab] = useState<AppFilterTabs>(AppFilterTabs.GROUP_FILTER)

const contextValue = useMemo(
() => ({
Expand Down Expand Up @@ -125,10 +125,9 @@ export const AppHeader = ({
const tab = currentPathname.current.replace(match.url, '').split('/')[1]
const newUrl = generatePath(match.path, { appId: value })
history.push(`${newUrl}/${tab}`)
ReactGA.event({
handleAnalyticsEvent({
category: 'App Selector',
action: 'DA_SWITCH_SEARCHED_APP_CLICKED',
label: tab,
})
},
[location.pathname],
Expand Down
Loading
Loading