Skip to content

Commit 52a6eda

Browse files
upcoming: [M3-10674] - Add pendo ids for VM analytics (#12983)
* upcoming: [M3-10674] - Add pendo ids for VM analytics * Add learn more links * Added changeset: Add pendo ids for VM Host Maintenance analytics --------- Co-authored-by: Jaalah Ramos <[email protected]>
1 parent fdb5493 commit 52a6eda

File tree

9 files changed

+46
-6
lines changed

9 files changed

+46
-6
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@linode/manager": Upcoming Features
3+
---
4+
5+
Add pendo ids for VM Host Maintenance analytics ([#12983](https://github.com/linode/manager/pull/12983))

packages/manager/src/components/Link.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ export interface LinkProps extends Omit<_LinkProps, 'to'> {
5353
* Optional prop to pass a onClick handler to the link.
5454
*/
5555
onClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;
56+
/**
57+
* Optional prop to pass a pendo id to the link.
58+
*/
59+
pendoId?: string;
5660
/**
5761
* Optional prop to pass a sx style to the link.
5862
*/
@@ -99,6 +103,7 @@ export const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(
99103
forceCopyColor,
100104
hideIcon,
101105
onClick,
106+
pendoId,
102107
style,
103108
title,
104109
to,
@@ -131,6 +136,7 @@ export const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(
131136
'external',
132137
'forceCopyColor',
133138
'to',
139+
'pendoId',
134140
]);
135141

136142
return shouldOpenInNewTab ? (
@@ -143,6 +149,7 @@ export const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(
143149
},
144150
className
145151
)}
152+
data-pendo-id={pendoId}
146153
data-testid={external ? 'external-site-link' : 'external-link'}
147154
href={processedUrl()}
148155
onClick={onClick}
@@ -166,6 +173,7 @@ export const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(
166173
) : (
167174
<RouterLink
168175
aria-label={ariaLabel}
176+
data-pendo-id={pendoId}
169177
data-testid="internal-link"
170178
{...routerLinkProps}
171179
className={cx(

packages/manager/src/components/MaintenanceBanner/LinodeMaintenanceBanner.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,13 @@ export const LinodeMaintenanceBanner = ({ linodeId }: Props) => {
6262
)}
6363
</strong>
6464
. For more details, view{' '}
65-
<Link to="/account/maintenance">Account Maintenance</Link>.
65+
<Link
66+
pendoId="linode-maintenance-banner-link"
67+
to="/account/maintenance"
68+
>
69+
Account Maintenance
70+
</Link>
71+
.
6672
</Typography>
6773
</Notice>
6874
);

packages/manager/src/components/MaintenanceBanner/MaintenanceBannerV2.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,10 @@ export const MaintenanceBannerV2 = () => {
4747
<span data-testid="maintenance-link-section">
4848
{' '}
4949
For more details, view{' '}
50-
<Link to="/maintenance">Account Maintenance</Link>.
50+
<Link pendoId="maintenance-banner-link" to="/maintenance">
51+
Account Maintenance
52+
</Link>
53+
.
5154
</span>
5255
)}
5356
</Typography>

packages/manager/src/components/MaintenancePolicySelect/MaintenancePolicySelect.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ export const MaintenancePolicySelect = (
6060

6161
return (
6262
<Autocomplete
63+
data-pendo-id="maintenance-policy-select"
6364
disableClearable={!!selectedOption}
6465
disabled={disabled}
6566
errorText={errorText}
@@ -75,7 +76,7 @@ export const MaintenancePolicySelect = (
7576
renderOption={(props, policy, state) => {
7677
const { key } = props;
7778
return (
78-
<li {...props} key={key}>
79+
<li {...props} data-pendo-id={policy.slug} key={key}>
7980
<Stack gap={0.5} width="100%">
8081
<Stack
8182
alignItems="center"

packages/manager/src/components/PlatformMaintenanceBanner/PlatformMaintenanceBanner.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,10 @@ export const PlatformMaintenanceBanner = () => {
3737
<span data-testid="platform-maintenance-link-section">
3838
{' '}
3939
See which Linodes are <strong>scheduled</strong> for reboot on the{' '}
40-
<Link to="/maintenance">Account Maintenance</Link> page.
40+
<Link pendoId="platform-maintenance-banner-link" to="/maintenance">
41+
Account Maintenance
42+
</Link>{' '}
43+
page.
4144
</span>
4245
)}
4346
</Typography>

packages/manager/src/features/Account/MaintenancePolicy.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ export const MaintenancePolicy = () => {
105105
<Box marginTop={2}>
106106
<Button
107107
buttonType="outlined"
108+
data-pendo-id="maintenance-policy-save-button"
108109
disabled={!isDirty || !permissions.update_account_settings}
109110
loading={isSubmitting}
110111
type="submit"

packages/manager/src/features/Linodes/LinodeCreate/AdditionalOptions/MaintenancePolicy.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,13 @@ export const MaintenancePolicy = () => {
5252
subHeading={
5353
<>
5454
{MAINTENANCE_POLICY_DESCRIPTION}{' '}
55-
<Link to={MAINTENANCE_POLICY_LEARN_MORE_URL}>Learn more</Link>.
55+
<Link
56+
data-pendo-id="linode-create-maintenance-policy-learn-more"
57+
to={MAINTENANCE_POLICY_LEARN_MORE_URL}
58+
>
59+
Learn more
60+
</Link>
61+
.
5662
</>
5763
}
5864
summaryProps={{ sx: { p: 0 } }}

packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettingsMaintenancePolicyPanel.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,13 @@ export const LinodeSettingsMaintenancePolicyPanel = (props: Props) => {
100100
<Stack spacing={2}>
101101
<Typography>
102102
{MAINTENANCE_POLICY_DESCRIPTION}{' '}
103-
<Link to={MAINTENANCE_POLICY_LEARN_MORE_URL}>Learn more</Link>.
103+
<Link
104+
data-pendo-id="linode-detail-maintenance-policy-learn-more"
105+
to={MAINTENANCE_POLICY_LEARN_MORE_URL}
106+
>
107+
Learn more
108+
</Link>
109+
.
104110
</Typography>
105111
{showUpcomingMaintenanceNotice && (
106112
<Notice variant="warning">
@@ -133,6 +139,7 @@ export const LinodeSettingsMaintenancePolicyPanel = (props: Props) => {
133139
<Box>
134140
<Button
135141
buttonType="outlined"
142+
data-pendo-id="linode-maintenance-policy-save-button"
136143
disabled={!isDirty || isDisabled}
137144
loading={isSubmitting}
138145
type="submit"

0 commit comments

Comments
 (0)