Skip to content

Commit 16b027f

Browse files
authored
fix: disable form if not pay as you go or free flag customer (#5357)
1 parent 1af5e2b commit 16b027f

File tree

12 files changed

+69
-48
lines changed

12 files changed

+69
-48
lines changed

src/buckets/components/CreateBucketButton.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@ import React, {FC, useEffect} from 'react'
33
import {connect, ConnectedProps, useDispatch} from 'react-redux'
44

55
// Components
6-
import {Button, IconFont, ComponentColor} from '@influxdata/clockface'
6+
import {
7+
Button,
8+
IconFont,
9+
ComponentColor,
10+
ComponentStatus,
11+
} from '@influxdata/clockface'
712
import AssetLimitButton from 'src/cloud/components/AssetLimitButton'
813

914
// Actions
@@ -25,6 +30,7 @@ type ReduxProps = ConnectedProps<typeof connector>
2530
type CreateButtonProps = {
2631
useSimplifiedBucketForm?: boolean
2732
callbackAfterBucketCreation?: (bucket: OwnBucket) => void
33+
disabled?: boolean
2834
}
2935

3036
type Props = ReduxProps & CreateButtonProps
@@ -35,6 +41,7 @@ const CreateBucketButton: FC<Props> = ({
3541
onDismissOverlay,
3642
useSimplifiedBucketForm = false,
3743
callbackAfterBucketCreation = () => {},
44+
disabled = false,
3845
}) => {
3946
const dispatch = useDispatch()
4047
useEffect(() => {
@@ -63,6 +70,7 @@ const CreateBucketButton: FC<Props> = ({
6370
titleText="Click to create a bucket"
6471
onClick={handleItemClick}
6572
testID="Create Bucket"
73+
status={disabled ? ComponentStatus.Disabled : ComponentStatus.Default}
6674
/>
6775
)
6876
}

src/writeData/components/WriteDataHelperBuckets.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,13 @@ import {
2222
interface Props {
2323
className?: string
2424
useSimplifiedBucketForm?: boolean
25+
disabled?: boolean
2526
}
2627

2728
const WriteDataHelperBuckets: FC<Props> = ({
2829
className = 'write-data--details-widget-title',
2930
useSimplifiedBucketForm = false,
31+
disabled = false,
3032
}) => {
3133
const {bucket, buckets, changeBucket} = useContext(WriteDataDetailsContext)
3234
const isSelected = (bucketID: string): boolean => {
@@ -74,6 +76,7 @@ const WriteDataHelperBuckets: FC<Props> = ({
7476
>
7577
{filteredBuckets.map(b => (
7678
<List.Item
79+
disabled={disabled}
7780
size={ComponentSize.Small}
7881
key={b.id}
7982
selected={isSelected(b.id)}
@@ -96,6 +99,7 @@ const WriteDataHelperBuckets: FC<Props> = ({
9699
<CreateBucketButton
97100
useSimplifiedBucketForm={useSimplifiedBucketForm}
98101
callbackAfterBucketCreation={changeBucket}
102+
disabled={disabled}
99103
/>
100104
</Heading>
101105
{body}

src/writeData/subscriptions/components/BrokerForm.scss

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -47,35 +47,19 @@
4747
-webkit-appearance: none;
4848
margin: 0;
4949
}
50-
&__upgrade-button {
51-
background: linear-gradient(45deg, #0098f0 0%, $c-pulsar 100%) !important;
52-
color: $cf-white;
53-
padding: 0 $cf-space-xs;
54-
height: 40px;
55-
font-weight: 500;
56-
font-family: 'Proxima Nova', Helvetica, Arial, Tahoma, Verdana, sans-serif;
57-
border-style: solid;
58-
border-width: 0;
59-
text-decoration: none;
60-
transition: background-color 200ms cubic-bezier(0.18, 0.16, 0.2, 1),
61-
box-shadow 200ms cubic-bezier(0.18, 0.16, 0.2, 1),
62-
color 200ms cubic-bezier(0.18, 0.16, 0.2, 1);
63-
outline: none;
64-
border-radius: 2px;
65-
white-space: nowrap;
66-
position: relative;
67-
z-index: 1;
68-
display: inline-flex;
69-
justify-content: center;
70-
align-items: center;
71-
}
7250
&__header {
7351
text-transform: uppercase;
7452
margin: $cf-space-l 0;
7553
}
7654
&__text {
7755
color: $cf-grey-95;
7856
}
57+
&__upgrade-text {
58+
background: -webkit-linear-gradient(45deg, #34bb55 0%, $c-pool 100%);
59+
-webkit-background-clip: text;
60+
-webkit-text-fill-color: transparent;
61+
font-weight: 700;
62+
}
7963
&__container {
8064
.cf-flex-box__margin-lg.cf-flex-box__row.cf-flex-box__justify-flex-start
8165
> * {

src/writeData/subscriptions/components/BrokerForm.tsx

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,15 @@ import CloudUpgradeButton from 'src/shared/components/CloudUpgradeButton'
2424

2525
// Utils
2626
import {getOrg} from 'src/organizations/selectors'
27-
import {
28-
shouldGetCredit250Experience,
29-
shouldShowUpgradeButton,
30-
} from 'src/me/selectors'
27+
import {shouldGetCredit250Experience} from 'src/me/selectors'
3128
import {event} from 'src/cloud/utils/reporting'
3229
import {checkRequiredFields} from 'src/writeData/subscriptions/utils/form'
33-
import {isFlagEnabled} from 'src/shared/utils/featureFlag'
3430
import {
3531
getDataLayerIdentity,
3632
getExperimentVariantId,
3733
} from 'src/cloud/utils/experiments'
3834
import {AppSettingContext} from 'src/shared/contexts/app'
35+
import {isFlagEnabled} from 'src/shared/utils/featureFlag'
3936

4037
// Constants
4138
import {CREDIT_250_EXPERIMENT_ID} from 'src/shared/constants'
@@ -52,20 +49,18 @@ interface Props {
5249
updateForm: (any) => void
5350
saveForm: (any) => void
5451
onFocus?: (any) => void
52+
showUpgradeButton: boolean
5553
}
5654

5755
const BrokerForm: FC<Props> = ({
5856
formContent,
5957
updateForm,
6058
saveForm,
6159
onFocus,
60+
showUpgradeButton,
6261
}) => {
6362
const history = useHistory()
6463
const org = useSelector(getOrg)
65-
// enabled for PAYG accounts and specific free accounts where a flag is enabled
66-
const showUpgradeButton =
67-
useSelector(shouldShowUpgradeButton) &&
68-
!isFlagEnabled('enableFreeSubscriptions')
6964
const isCredit250ExperienceActive = useSelector(shouldGetCredit250Experience)
7065
const requiredFields = checkRequiredFields(formContent)
7166
const {navbarMode} = useContext(AppSettingContext)
@@ -108,7 +103,6 @@ const BrokerForm: FC<Props> = ({
108103
/>
109104
{showUpgradeButton ? (
110105
<CloudUpgradeButton
111-
className="create-broker-form__upgrade-button"
112106
metric={() => {
113107
const experimentVariantId = getExperimentVariantId(
114108
CREDIT_250_EXPERIMENT_ID
@@ -164,9 +158,17 @@ const BrokerForm: FC<Props> = ({
164158
weight={FontWeight.Regular}
165159
className="create-broker-form__text"
166160
>
167-
{showUpgradeButton
168-
? 'Upgrade Now to create a new connection to collect data from an MQTT broker and parse messages into metrics.'
169-
: 'Create a new connection to collect data from an MQTT broker and parse messages into metrics.'}
161+
{showUpgradeButton ? (
162+
<p>
163+
<strong className="create-broker-form__upgrade-text">
164+
Upgrade Now
165+
</strong>{' '}
166+
to create a new connection to collect data from an MQTT broker
167+
and parse messages into metrics.
168+
</p>
169+
) : (
170+
'Create a new connection to collect data from an MQTT broker and parse messages into metrics.'
171+
)}
170172
</Heading>
171173
<p className="create-broker-form__text">
172174
See our{' '}
@@ -190,7 +192,7 @@ const BrokerForm: FC<Props> = ({
190192
updateForm={updateForm}
191193
formContent={formContent}
192194
className="create"
193-
edit={true}
195+
edit={showUpgradeButton ? false : true}
194196
/>
195197
</Overlay.Body>
196198
<div className="create-broker-form__line"></div>

src/writeData/subscriptions/components/CreateSubscriptionPage.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import {
3838

3939
// Utils
4040
import {getAll} from 'src/resources/selectors'
41-
import {getQuartzMe} from 'src/me/selectors'
41+
import {getQuartzMe, shouldShowUpgradeButton} from 'src/me/selectors'
4242
import {event} from 'src/cloud/utils/reporting'
4343
import {
4444
DEFAULT_COMPLETED_STEPS,
@@ -47,6 +47,7 @@ import {
4747
getFormStatus,
4848
SUBSCRIPTION_NAVIGATION_STEPS,
4949
} from 'src/writeData/subscriptions/utils/form'
50+
import {isFlagEnabled} from 'src/shared/utils/featureFlag'
5051

5152
// Styles
5253
import 'src/writeData/subscriptions/components/CreateSubscriptionPage.scss'
@@ -111,6 +112,11 @@ const CreateSubscriptionPage: FC = () => {
111112
})
112113
}
113114

115+
// enabled for PAYG accounts and specific free accounts where a flag is enabled
116+
const showUpgradeButton =
117+
useSelector(shouldShowUpgradeButton) &&
118+
!isFlagEnabled('enableFreeSubscriptions')
119+
114120
return (
115121
<GetResources resources={[ResourceType.Buckets]}>
116122
<Page>
@@ -138,18 +144,21 @@ const CreateSubscriptionPage: FC = () => {
138144
updateForm={updateForm}
139145
saveForm={saveForm}
140146
onFocus={() => setFormActive(Steps.BrokerForm)}
147+
showUpgradeButton={showUpgradeButton}
141148
/>
142149
<SubscriptionForm
143150
formContent={formContent}
144151
updateForm={updateForm}
145152
buckets={buckets}
146153
bucket={bucket}
147154
onFocus={() => setFormActive(Steps.SubscriptionForm)}
155+
showUpgradeButton={showUpgradeButton}
148156
/>
149157
<ParsingForm
150158
formContent={formContent}
151159
updateForm={updateForm}
152160
onFocus={() => setFormActive(Steps.ParsingForm)}
161+
showUpgradeButton={showUpgradeButton}
153162
/>
154163
</Page.Contents>
155164
</SpinnerContainer>

src/writeData/subscriptions/components/JsonParsingForm.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ const JsonParsingForm: FC<Props> = ({formContent, updateForm, edit}) => {
232232
formContent.jsonMeasurementKey.name
233233
)
234234
}}
235-
placeholder="nonDescriptName"
235+
placeholder="measurement_name"
236236
name="name"
237237
onChange={e => {
238238
updateForm({

src/writeData/subscriptions/components/JsonPathInput.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ const JsonPathInput: FC<Props> = ({
111111
: formContent.jsonFieldKeys[itemNum].name
112112
)
113113
}
114-
placeholder="nonDescriptName"
114+
placeholder={`${name}_name`.toLowerCase()}
115115
name={`${name}=name`}
116116
onChange={e => {
117117
let newArr

src/writeData/subscriptions/components/ParsingForm.tsx

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,15 @@ interface Props {
2525
formContent: Subscription
2626
updateForm: (any) => void
2727
onFocus?: (any) => void
28+
showUpgradeButton: boolean
2829
}
2930

30-
const ParsingForm: FC<Props> = ({formContent, updateForm, onFocus}) =>
31+
const ParsingForm: FC<Props> = ({
32+
formContent,
33+
updateForm,
34+
onFocus,
35+
showUpgradeButton,
36+
}) =>
3137
formContent && (
3238
<div
3339
className={
@@ -58,20 +64,23 @@ const ParsingForm: FC<Props> = ({formContent, updateForm, onFocus}) =>
5864
className="create"
5965
/>
6066
{formContent.dataFormat === 'lineprotocol' && (
61-
<LineProtocolForm edit={true} formContent={formContent} />
67+
<LineProtocolForm
68+
edit={showUpgradeButton ? false : true}
69+
formContent={formContent}
70+
/>
6271
)}
6372
{formContent.dataFormat === 'json' && (
6473
<JsonParsingForm
6574
formContent={formContent}
6675
updateForm={updateForm}
67-
edit={true}
76+
edit={showUpgradeButton ? false : true}
6877
/>
6978
)}
7079
{formContent.dataFormat === 'string' && (
7180
<StringParsingForm
7281
formContent={formContent}
7382
updateForm={updateForm}
74-
edit={true}
83+
edit={showUpgradeButton ? false : true}
7584
/>
7685
)}
7786
</Grid.Row>

src/writeData/subscriptions/components/StringParsingForm.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ const StringParsingForm: FC<Props> = ({formContent, updateForm, edit}) => {
225225
formContent.stringMeasurement.name
226226
)
227227
}}
228-
placeholder="nonDescriptName"
228+
placeholder="measurement_name"
229229
name="name"
230230
onChange={e => {
231231
updateForm({

src/writeData/subscriptions/components/StringPatternInput.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ const StringPatternInput: FC<Props> = ({
9898
: formContent.stringFields[itemNum].name
9999
)
100100
}
101-
placeholder="nonDescriptName"
101+
placeholder={`${name}_name`.toLowerCase()}
102102
onChange={e => {
103103
let newArr
104104
if (tagType) {

0 commit comments

Comments
 (0)