Skip to content
Merged
Show file tree
Hide file tree
Changes from 87 commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
fb446f6
ONBOARDING GUIDE: added ui foe landing [age
shivani170 Jul 11, 2022
438a6b8
merge main
shivani170 Jul 12, 2022
6484508
ONBOARDING: added position of cards
shivani170 Jul 12, 2022
0374d86
DEPLOY & MANAGE:wip ui added after landing
shivani170 Jul 18, 2022
34a7671
MERGE
shivani170 Jul 18, 2022
a3a59d5
ONBOARDING: absolute position of cards fixed
shivani170 Jul 19, 2022
f3b933d
NAVIGATION: added between guided and landing page
shivani170 Jul 19, 2022
37ba2ee
Merge main
shivani170 Jul 19, 2022
dd31ef8
common guided component added
shivani170 Jul 20, 2022
aadcb8b
navigation issues fixed
shivani170 Jul 21, 2022
c550656
added sample ui
shivani170 Jul 26, 2022
fb65779
MERGE
shivani170 Aug 4, 2022
3f97eee
MERGE
shivani170 Aug 8, 2022
6f42a02
GUIDE PAGE: added toast
shivani170 Aug 9, 2022
8a4a972
Merge branch 'main' into guided-onboarding
shivani170 Aug 11, 2022
35d1b28
added getting started card
shivani170 Aug 16, 2022
a620db9
Merge branch 'main' into guided-onboarding
shivani170 Aug 16, 2022
61601bd
GUIDED ONBOARDING: UI completion and navigation
shivani170 Aug 17, 2022
0548e74
GUIDE PAGE: api integration
shivani170 Aug 22, 2022
2d70daa
Merge branch 'main' into guided-onboarding
shivani170 Aug 22, 2022
91b0be7
Merge with main
shivani170 Aug 22, 2022
6ca881c
APP LIST: testing for no app result with negation
shivani170 Aug 22, 2022
a90761e
self review done
shivani170 Aug 22, 2022
7009f29
ONBOARDING GUIDE: renaming of classname
shivani170 Aug 22, 2022
3942b0f
Merge branch 'main' into guided-onboarding
shivani170 Aug 22, 2022
ad42606
Merge branch 'main' into guided-onboarding
shivani170 Aug 23, 2022
89a1b26
code refactoring
shivani170 Aug 23, 2022
27032cc
Merge branch 'guided-onboarding' of https://github.com/devtron-labs/d…
shivani170 Aug 23, 2022
84b9cc2
NAVIGATIONROUTE: app count check added for onboard
shivani170 Aug 23, 2022
8849051
CODE REFACTORING
shivani170 Aug 23, 2022
8530a48
GETTING STARTED: tippy gandling on login fixed
shivani170 Aug 23, 2022
5eeb0a4
APP LIST: formatting removed
shivani170 Aug 23, 2022
3f0c72c
second level code review fixes
shivani170 Aug 23, 2022
4693dcb
NAVIGATION ROUTE: action click on onboarding via local storage
shivani170 Aug 24, 2022
3d37097
ONBOARDING GUIDE: close button on onboarding added
shivani170 Aug 24, 2022
13a326b
ONBOARDING: close icon navigation fixed
shivani170 Aug 24, 2022
ec5f491
FIXES
shivani170 Aug 24, 2022
14af7f5
added helm count in guide page
shivani170 Aug 24, 2022
c50e4a3
FIXED for setting all apis on onboarding
shivani170 Aug 24, 2022
5b71e15
PAGE HEADER: moved started tippy to page header
shivani170 Aug 25, 2022
54cae61
CODE FEEDNACK: second level done
shivani170 Aug 25, 2022
d40c1f2
Merge branch 'main' into guided-onboarding
vivek-devtron Aug 25, 2022
13aaf3d
code optimization
shivani170 Aug 25, 2022
ee2291a
Merge branch 'guided-onboarding' of https://github.com/devtron-labs/d…
shivani170 Aug 25, 2022
6f0c9fe
css fixes
shivani170 Aug 25, 2022
eea2289
deploye and manage card navigation fixed
shivani170 Aug 25, 2022
2fb904d
left nav flicker fixed
shivani170 Aug 25, 2022
b8f0119
css fixes
shivani170 Aug 25, 2022
c9df9db
GUIDED ONBOARDING: functinality issue fixed
shivani170 Aug 26, 2022
d38dd93
Tiles & text overlap isssue fix
sohel-rp Aug 29, 2022
94c2830
DEPLOY MANAGE: skip position fixed
shivani170 Aug 29, 2022
036dd02
NAVIGATION ROUTE: login count handled for ea only
shivani170 Aug 29, 2022
87c142a
LOGIN: updating login count in login file
shivani170 Aug 29, 2022
517f557
check role added
shivani170 Aug 29, 2022
c3cf307
ONBOARDING: posthog events added
shivani170 Aug 30, 2022
6794f39
card hover added
shivani170 Aug 30, 2022
281acff
ONBOARDING: replaced backward icon
shivani170 Aug 31, 2022
7042f47
NAVIGATION ROUTE: UNCOMMNETED code
shivani170 Aug 31, 2022
6d47347
GETTINGSTARTED: posthog events added on tippy
shivani170 Aug 31, 2022
4b6aeca
NO FOUND : bug fixed
shivani170 Aug 31, 2022
4dc07ce
SET UP proxy
shivani170 Aug 31, 2022
948d791
EA mode added update call for sso users
shivani170 Aug 31, 2022
70517ed
set expired fixed
shivani170 Aug 31, 2022
bb9f57a
fixed bug around count of first time login user
shivani170 Aug 31, 2022
6303826
Merge branch 'main' into guided-onboarding
shivani170 Aug 31, 2022
200f259
CSS FIXES
shivani170 Sep 1, 2022
2907321
CSS fixsx
shivani170 Sep 1, 2022
b02cfbf
CSS FIX
shivani170 Sep 1, 2022
58d70ee
Revert "CSS FIX"
shivani170 Sep 1, 2022
e3e6ee0
type added
shivani170 Sep 1, 2022
48a3003
Merge branch 'main' into guided-onboarding
shivani170 Sep 1, 2022
7a80782
node sass issue fixed
shivani170 Sep 1, 2022
2cea14b
CSS FIXES
shivani170 Sep 1, 2022
af26ed4
FIXED NAVIGATION OF HELM APPS
shivani170 Sep 2, 2022
057ccd2
redirection bug fix for non superadmin
shivani170 Sep 3, 2022
d9b90e4
REDIRECTION FIX
shivani170 Sep 3, 2022
a801967
NAVIGATION: bug fix
shivani170 Sep 3, 2022
1a9926e
CREATE-APP: border radius fixed
shivani170 Sep 5, 2022
d477182
setup prxy reverted
shivani170 Sep 5, 2022
91dca07
Merge branch 'main' into guided-onboarding
shivani170 Sep 5, 2022
93adbec
Tippy removed
shivani170 Sep 5, 2022
a96d286
CODE DEEDBACKS: incorporated
shivani170 Sep 5, 2022
42a6b83
feedback
shivani170 Sep 5, 2022
aed80ea
PostHogEvent Update
shivani170 Sep 5, 2022
2b40ea1
calling function asynchronously
shivani170 Sep 5, 2022
2bed4e6
code feedback
shivani170 Sep 5, 2022
8fbd630
code feedback
shivani170 Sep 5, 2022
f2b19c5
CODE FEEDBACKS
shivani170 Sep 5, 2022
d02ab81
feedbacks done
shivani170 Sep 5, 2022
a84db91
EVENT POSTHOG: broken fixed
shivani170 Sep 5, 2022
056d85f
DEPLOY GUIDE: added promise all
shivani170 Sep 5, 2022
e44a935
response made optional
shivani170 Sep 5, 2022
0c1f5db
fix
shivani170 Sep 5, 2022
dddf339
messaging fixed
shivani170 Sep 5, 2022
a8f5330
set up proxy reverted to demo1
shivani170 Sep 6, 2022
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
3 changes: 3 additions & 0 deletions src/assets/icons/ic-onboarding.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/img/guide-create-app.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/img/guide-onboard.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/img/guided-chart-repository.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/img/guided-helm-cluster.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/img/guided-helm-collage.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/img/guided-helm-search.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/img/helm-collage.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/img/ic-preview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/img/lifebuoy.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 3 additions & 1 deletion src/components/app/create/createApp.css
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
.create-app-modal {
width: 450px;
max-height: 90vh;
margin-top: 40px;
margin-top: 0px;
border-top-left-radius: 0px;
border-top-right-radius: 0px;
}

.footer {
Expand Down
3 changes: 2 additions & 1 deletion src/components/app/details/main.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import { ReactComponent as Settings } from '../../../assets/icons/ic-settings.sv
import { ReactComponent as Info } from '../../../assets/icons/ic-info-outlined.svg'
import { EnvType } from '../../v2/appDetails/appDetails.type'
import PageHeader from '../../common/header/PageHeader'
import { AppDetailsProps } from './triggerView/types'

const TriggerView = lazy(() => import('./triggerView/TriggerView'))
const DeploymentMetrics = lazy(() => import('./metrics/DeploymentMetrics'))
Expand All @@ -29,7 +30,7 @@ const IndexComponent = lazy(() => import('../../v2/index'))
const CDDetails = lazy(() => import('./cdDetails/CDDetails'))
const TestRunList = lazy(() => import('./testViewer/TestRunList'))

export default function AppDetailsPage({ isV2 }) {
export default function AppDetailsPage({ isV2 }: AppDetailsProps) {
const { path } = useRouteMatch()
const { appId } = useParams<{ appId }>()

Expand Down
3 changes: 3 additions & 0 deletions src/components/app/details/triggerView/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -469,3 +469,6 @@ export interface BranchRegexModalProps {
regexValue
onCloseBranchRegexModal
}
export interface AppDetailsProps {
isV2: boolean
}
103 changes: 52 additions & 51 deletions src/components/app/list-new/AppList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ import {
import { ReactComponent as Search } from '../../../assets/icons/ic-search.svg'
import { ReactComponent as ChartIcon } from '../../../assets/icons/ic-charts.svg'
import { ReactComponent as AddIcon } from '../../../assets/icons/ic-add.svg'
import InstallDevtronFullImage from '../../../assets/img/[email protected]'
import EmptyState from '../../EmptyState/EmptyState'
import { getInitData, buildClusterVsNamespace, getNamespaces } from './AppListService'
import { ServerErrors } from '../../../modals/commonTypes'
import { AppListViewType } from '../config'
Expand All @@ -24,7 +22,7 @@ import { ReactComponent as Clear } from '../../../assets/icons/ic-error.svg'
import DevtronAppListContainer from '../list/DevtronAppListContainer'
import HelmAppList from './HelmAppList'
import * as queryString from 'query-string'
import { OrderBy, SortBy } from '../list/types'
import { AppListPropType, OrderBy, SortBy } from '../list/types'
import { AddNewApp } from '../create/CreateApp'
import { mainContext } from '../../common/navigation/NavigationRoutes'
import '../list/list.css'
Expand All @@ -37,9 +35,8 @@ import { FILE_NAMES } from '../../common/ExportToCsv/constants'
import { getAppList } from '../service'
import moment from 'moment'
import { getUserRole } from '../../userGroups/userGroup.service'
import Tippy from '@tippyjs/react'

export default function AppList() {
export default function AppList({isSuperAdmin, appListCount} : AppListPropType) {
const location = useLocation()
const history = useHistory()
const params = useParams<{ appType: string }>()
Expand All @@ -50,7 +47,6 @@ export default function AppList() {
const [lastDataSync, setLastDataSync] = useState(false)
const [fetchingNamespaces, setFetchingNamespaces] = useState(false)
const [fetchingNamespacesErrored, setFetchingNamespacesErrored] = useState(false)

const [parsedPayloadOnUrlChange, setParsedPayloadOnUrlChange] = useState({})
const [currentTab, setCurrentTab] = useState(undefined)
const [showCreateNewAppSelectionModal, setShowCreateNewAppSelectionModal] = useState(false)
Expand Down Expand Up @@ -79,7 +75,7 @@ export default function AppList() {
// on page load
useEffect(() => {
let _currentTab =
params.appType == AppListConstants.AppType.DEVTRON_APPS
params.appType === AppListConstants.AppType.DEVTRON_APPS
? AppListConstants.AppTabs.DEVTRON_APPS
: AppListConstants.AppTabs.HELM_APPS
setCurrentTab(_currentTab)
Expand All @@ -104,7 +100,7 @@ export default function AppList() {
setEnvironmentListRes(initData.environmentListRes)
setMasterFilters(initData.filters)
setDataStateType(AppListViewType.LIST)
if (serverMode == SERVER_MODE.EA_ONLY) {
if (serverMode === SERVER_MODE.EA_ONLY) {
applyClusterSelectionFilterOnPageLoadIfSingle(initData.filters.clusters, _currentTab)
}
})
Expand Down Expand Up @@ -1014,65 +1010,70 @@ export default function AppList() {

return (
<div>
{dataStateType == AppListViewType.LOADING && (
{dataStateType === AppListViewType.LOADING && (
<div className="loading-wrapper">
<Progressing pageLoader />
</div>
)}
{dataStateType == AppListViewType.ERROR && (
{dataStateType === AppListViewType.ERROR && (
<div className="loading-wrapper">
<ErrorScreenManager code={errorResponseCode} />
</div>
)}
{dataStateType == AppListViewType.LIST && (
{dataStateType === AppListViewType.LIST && (
<>
{renderPageHeader()}
{renderMasterFilters()}
{renderAppliedFilters()}
{renderAppTabs()}
{serverMode == SERVER_MODE.FULL && renderAppCreateRouter()}
{params.appType == AppListConstants.AppType.DEVTRON_APPS && serverMode == SERVER_MODE.FULL && (
<DevtronAppListContainer
payloadParsedFromUrl={parsedPayloadOnUrlChange}
appCheckListRes={appCheckListRes}
clearAllFilters={removeAllFilters}
sortApplicationList={sortApplicationList}
updateLastDataSync={updateLastDataSync}
setAppCount={setAppCount}
/>
)}
{params.appType == AppListConstants.AppType.DEVTRON_APPS && serverMode == SERVER_MODE.EA_ONLY && (
<div style={{ height: 'calc(100vh - 250px)' }}>
<EAEmptyState
title={'Create, build, deploy and debug custom apps'}
msg={
'Create custom application by connecting your code repository. Build and deploy images at the click of a button. Debug your applications using the interactive UI.'
}
stateType={EAEmptyStateType.DEVTRONAPPS}
knowMoreLink={DOCUMENTATION.HOME_PAGE}
/>
</div>
)}
{params.appType == AppListConstants.AppType.HELM_APPS && (
{serverMode === SERVER_MODE.FULL && renderAppCreateRouter()}
<>
<HelmAppList
serverMode={serverMode}
payloadParsedFromUrl={parsedPayloadOnUrlChange}
sortApplicationList={sortApplicationList}
clearAllFilters={removeAllFilters}
fetchingExternalApps={fetchingExternalApps}
setFetchingExternalAppsState={setFetchingExternalAppsState}
updateLastDataSync={updateLastDataSync}
setShowPulsatingDotState={setShowPulsatingDotState}
masterFilters={masterFilters}
/>
{fetchingExternalApps && (
<div className="mt-16">
<Progressing size={32} />
</div>
{params.appType === AppListConstants.AppType.DEVTRON_APPS &&
serverMode === SERVER_MODE.FULL && (
<DevtronAppListContainer
payloadParsedFromUrl={parsedPayloadOnUrlChange}
appCheckListRes={appCheckListRes}
clearAllFilters={removeAllFilters}
sortApplicationList={sortApplicationList}
updateLastDataSync={updateLastDataSync}
appListCount={appListCount}
isSuperAdmin={isSuperAdmin}
openDevtronAppCreateModel={openDevtronAppCreateModel}
setAppCount={setAppCount}
/>
)}
{params.appType === AppListConstants.AppType.DEVTRON_APPS &&
serverMode === SERVER_MODE.EA_ONLY && (
<div style={{ height: 'calc(100vh - 250px)' }}>
<EAEmptyState
title='Create, build, deploy and debug custom apps'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should use " instead of ' in HTML properties

msg='Create custom application by connecting your code repository. Build and deploy images at the click of a button. Debug your applications using the interactive UI.'
stateType={EAEmptyStateType.DEVTRONAPPS}
knowMoreLink={DOCUMENTATION.HOME_PAGE}
/>
</div>
)}
{params.appType === AppListConstants.AppType.HELM_APPS && (
<>
<HelmAppList
serverMode={serverMode}
payloadParsedFromUrl={parsedPayloadOnUrlChange}
sortApplicationList={sortApplicationList}
clearAllFilters={removeAllFilters}
fetchingExternalApps={fetchingExternalApps}
setFetchingExternalAppsState={setFetchingExternalAppsState}
updateLastDataSync={updateLastDataSync}
setShowPulsatingDotState={setShowPulsatingDotState}
masterFilters={masterFilters}
/>
{fetchingExternalApps && (
<div className="mt-16">
<Progressing size={32} />
</div>
)}
</>
)}
</>
)}
</>
)}
</div>
Expand Down
1 change: 0 additions & 1 deletion src/components/app/list-new/HelmAppList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import {
Pagination,
LazyImage,
handleUTCTime,
useEventSource,
} from '../../common';
import { Host, SERVER_MODE, URLS, DOCUMENTATION } from '../../../config';
import { AppListViewType } from '../config';
Expand Down
17 changes: 7 additions & 10 deletions src/components/app/list/AppListView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@ import { ReactComponent as Edit } from '../../../assets/icons/ic-settings.svg';
import {ReactComponent as DevtronAppIcon} from '../../../assets/icons/ic-devtron-app.svg';
import {ReactComponent as HelpOutlineIcon} from '../../../assets/icons/ic-help-outline.svg';
import Tippy from '@tippyjs/react';


import DevtronAppGuidePage from '../../onboardingGuide/DevtronAppGuidePage';
interface AppListViewProps extends AppListState, RouteComponentProps<{}> {
expandRow: (app: App | null) => void;
closeExpandedRow: () => void;
Expand All @@ -21,6 +20,9 @@ interface AppListViewProps extends AppListState, RouteComponentProps<{}> {
clearAll: () => void;
changePage: (pageNo: number) => void;
changePageSize: (size: number) => void;
appListCount: number
isSuperAdmin: boolean
openDevtronAppCreateModel: (event) => void
}

export class AppListView extends Component<AppListViewProps>{
Expand Down Expand Up @@ -129,18 +131,13 @@ export class AppListView extends Component<AppListViewProps>{
</div>
</React.Fragment>
}

else if (this.props.view === AppListViewType.EMPTY) {
return <React.Fragment>
<AppCheckListModal history={this.props.history}
location={this.props.location}
match={this.props.match}
appChecklist={this.props.appChecklist}
chartChecklist={this.props.chartChecklist}
appStageCompleted={this.props.appStageCompleted}
chartStageCompleted={this.props.chartStageCompleted}
/>
<DevtronAppGuidePage openDevtronAppCreateModel={this.props.openDevtronAppCreateModel} />
</React.Fragment>
}

else if (this.props.view === AppListViewType.NO_RESULT) {
return <React.Fragment>
<Empty view={this.props.view}
Expand Down
3 changes: 3 additions & 0 deletions src/components/app/list/DevtronAppListContainer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,9 @@ class DevtronAppListContainer extends Component<AppListProps, AppListState>{
clearAll={this.props.clearAllFilters}
changePage={this.changePage}
changePageSize={this.changePageSize}
isSuperAdmin={this.props.isSuperAdmin}
appListCount={this.props.appListCount}
openDevtronAppCreateModel={this.props.openDevtronAppCreateModel}
/>
}
}
Expand Down
4 changes: 4 additions & 0 deletions src/components/app/list/list.css
Original file line number Diff line number Diff line change
Expand Up @@ -482,3 +482,7 @@
background-color: var(--R100);
border: solid 1px var(--R200);
}

.first-app-container {
margin-top: 60px;
}
7 changes: 7 additions & 0 deletions src/components/app/list/types.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,9 @@ export interface AppListProps extends RouteComponentProps<{ route: string }> {
clearAllFilters: () => void;
sortApplicationList : (key: string) => void;
updateLastDataSync : () => void;
appListCount: number
isSuperAdmin: boolean
openDevtronAppCreateModel: (event) => void
setAppCount: React.Dispatch<React.SetStateAction<number>>
}

Expand Down Expand Up @@ -114,3 +117,7 @@ export const SortBy = {
ENVIRONMENT: "environmentSort",
}

export interface AppListPropType {
isSuperAdmin: boolean
appListCount: number
}
57 changes: 37 additions & 20 deletions src/components/common/HelpNav.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,21 @@ import { ReactComponent as Discord } from '../../assets/icons/ic-discord-fill.sv
import { ReactComponent as Edit } from '../../assets/icons/ic-pencil.svg'
import { ReactComponent as Chat } from '../../assets/icons/ic-chat-circle-dots.svg'
import { InstallationType, ServerInfo } from '../v2/devtronStackManager/DevtronStackManager.type'
import { NavLink } from 'react-router-dom'
import { NavLink, useHistory } from 'react-router-dom'
import { ReactComponent as GettingStartedIcon } from '../../assets/icons/ic-onboarding.svg'

export interface HelpNavType {
className: string
showHelpCard: boolean
setShowHelpCard: React.Dispatch<React.SetStateAction<boolean>>
serverInfo: ServerInfo
fetchingServerInfo: boolean
setGettingStartedClicked: (isClicked: boolean) => void
}

function HelpNav({ className, showHelpCard, setShowHelpCard, serverInfo, fetchingServerInfo }: HelpNavType) {
function HelpNav({ className, showHelpCard, setShowHelpCard, serverInfo, fetchingServerInfo, setGettingStartedClicked }: HelpNavType) {
const history = useHistory()

const HelpOptions = [
{
name: 'View documentation',
Expand All @@ -28,6 +32,7 @@ function HelpNav({ className, showHelpCard, setShowHelpCard, serverInfo, fetchin
name: 'Chat with support',
link: 'https://discord.devtron.ai/',
icon: Chat,
showSeparator: true,
},
{
name: 'Join discord community',
Expand All @@ -42,30 +47,42 @@ function HelpNav({ className, showHelpCard, setShowHelpCard, serverInfo, fetchin
},
]

const onClickGettingStarted = () => {
setGettingStartedClicked(true)
}

return (
<div className="transparent-div" onClick={() => setShowHelpCard(!showHelpCard)}>
<div className={`help-card pt-4 pb-4 ${className}`}>
<NavLink
to={`/${URLS.GETTING_STARTED}`}
className="help-card__option no-decor help-card__link flex left cn-9"
activeClassName="active"
onClick={onClickGettingStarted}
>
<GettingStartedIcon />
<div className="help-card__option-name ml-12 cn-9 fs-14">Getting started</div>
</NavLink>

{HelpOptions.map((option) => {
return (
<Fragment key={option.name}>
<div className="help-card__option">
<a
key={option.name}
className="help-card__link flex left cn-9"
href={option.link}
target="_blank"
rel="noreferrer noopener"
onClick={(event) => {
ReactGA.event({
category: 'Main Navigation',
action: `${option.name} Clicked`,
})
}}
>
<option.icon />
<div className="help-card__option-name ml-12 cn-9 fs-14">{option.name}</div>
</a>
</div>
<a
key={option.name}
className="no-decor help-card__option help-card__link flex left cn-9"
href={option.link}
target="_blank"
rel="noreferrer noopener"
onClick={(event) => {
ReactGA.event({
category: 'Main Navigation',
action: `${option.name} Clicked`,
})
}}
>
<option.icon />
<div className="help-card__option-name ml-12 cn-9 fs-14">{option.name}</div>
</a>
{option.showSeparator && <div className="help-card__option-separator" />}
</Fragment>
)
Expand Down
Loading