Skip to content

Commit 16259ca

Browse files
authored
feat(ui): curate client libary list for sql (#6556)
* feat(ui): curate client libary list for sql * chore: appease linter * refactor: move useSelector outside of return * refactor: change relative import
1 parent 6bc2be2 commit 16259ca

File tree

2 files changed

+91
-1
lines changed

2 files changed

+91
-1
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
// Libraries
2+
import React, {useContext} from 'react'
3+
import {useSelector} from 'react-redux'
4+
import {useHistory} from 'react-router-dom'
5+
import {ORGS} from 'src/shared/constants/routes'
6+
import {searchClients} from 'src/writeData'
7+
8+
// Utils
9+
import {getOrg} from 'src/organizations/selectors'
10+
import {event} from 'src/cloud/utils/reporting'
11+
12+
// Contexts
13+
import {WriteDataSearchContext} from 'src/writeData/containers/WriteDataPage'
14+
15+
// Components
16+
import {
17+
SquareGrid,
18+
ComponentSize,
19+
Heading,
20+
HeadingElement,
21+
FontWeight,
22+
} from '@influxdata/clockface'
23+
import WriteDataItem from 'src/writeData/components/WriteDataItem'
24+
25+
const ClientLibrarySectionSql = () => {
26+
const {searchTerm} = useContext(WriteDataSearchContext)
27+
const items = searchClients(searchTerm)
28+
29+
const history = useHistory()
30+
const org = useSelector(getOrg)
31+
32+
const onBoardingItems = {
33+
python: 'python',
34+
}
35+
36+
if (!items.length) {
37+
return null
38+
}
39+
40+
return (
41+
<div
42+
className="write-data--section"
43+
data-testid="write-data--section client-libraries"
44+
>
45+
<Heading
46+
element={HeadingElement.H2}
47+
weight={FontWeight.Regular}
48+
style={{marginTop: '24px', marginBottom: '4px'}}
49+
>
50+
Client Libraries
51+
</Heading>
52+
<Heading
53+
element={HeadingElement.H5}
54+
weight={FontWeight.Regular}
55+
style={{marginBottom: '24px'}}
56+
>
57+
Back-end, front-end, and mobile applications
58+
</Heading>
59+
<SquareGrid cardSize="170px" gutter={ComponentSize.Small}>
60+
{items.map(item => {
61+
const goto = () => {
62+
event('Load data client library clicked', {type: item.name})
63+
if (onBoardingItems.hasOwnProperty(`${item.id}`)) {
64+
return history.push(
65+
`/${ORGS}/${org.id}/new-user-setup/${onBoardingItems[item.id]}`
66+
)
67+
}
68+
}
69+
if (onBoardingItems.hasOwnProperty(`${item.id}`)) {
70+
return (
71+
<WriteDataItem
72+
key={item.id}
73+
id={item.id}
74+
name={item.name}
75+
image={item.logo}
76+
onClick={goto}
77+
/>
78+
)
79+
}
80+
})}
81+
</SquareGrid>
82+
</div>
83+
)
84+
}
85+
86+
export default ClientLibrarySectionSql

src/writeData/components/WriteDataSections.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// Libraries
22
import React, {FC, useContext} from 'react'
3+
import {useSelector} from 'react-redux'
34

45
// Contexts
56
import {WriteDataSearchContext} from 'src/writeData/containers/WriteDataPage'
@@ -14,14 +15,17 @@ import {CLOUD} from 'src/shared/constants'
1415
import {EmptyState, ComponentSize} from '@influxdata/clockface'
1516
import FileUploadSection from 'src/writeData/components/FileUploadSection'
1617
import ClientLibrarySection from 'src/writeData/components/ClientLibrarySection'
18+
import ClientLibrarySectionSql from 'src/writeData/components/ClientLibrarySectionSql'
1719
import TelegrafPluginSection from 'src/writeData/components/TelegrafPluginSection'
1820
import CloudNativeSources from 'src/writeData/subscriptions/components/CloudNativeSources'
1921

2022
// Utils
2123
import {isFlagEnabled} from 'src/shared/utils/featureFlag'
24+
import {isOrgIOx} from 'src/organizations/selectors'
2225

2326
const WriteDataSections: FC = () => {
2427
const {searchTerm} = useContext(WriteDataSearchContext)
28+
const isIOxOrg = useSelector(isOrgIOx)
2529
const hasResults =
2630
!!searchUploads(searchTerm).length ||
2731
!!searchClients(searchTerm).length ||
@@ -40,7 +44,7 @@ const WriteDataSections: FC = () => {
4044
return (
4145
<>
4246
<FileUploadSection />
43-
<ClientLibrarySection />
47+
{isIOxOrg ? <ClientLibrarySectionSql /> : <ClientLibrarySection />}
4448
{CLOUD && isFlagEnabled('subscriptionsUI') && <CloudNativeSources />}
4549
<TelegrafPluginSection />
4650
</>

0 commit comments

Comments
 (0)