From 9305276f0f3420b8774e6f55abadde758ee8ad9c Mon Sep 17 00:00:00 2001 From: Peter Makowski Date: Fri, 20 Oct 2023 14:54:46 +0200 Subject: [PATCH] refactor: use external link (#5199) --- package.json | 2 +- .../CertificateDetails/CertificateDetails.tsx | 10 +++---- .../base/components/DHCPTable/DHCPTable.tsx | 5 ++-- .../SSHKeyFormFields/SSHKeyFormFields.tsx | 11 ++++--- .../MachineStatusCard/MachineStatusCard.tsx | 9 +++--- .../AddController/AddController.tsx | 10 ++----- .../ControllerListTable.tsx | 27 +++++++---------- .../StatusColumn/StatusColumn.tsx | 9 +++--- .../ClearAllForm/ClearAllForm.tsx | 10 ++----- .../AuthenticationForm/AuthenticationForm.tsx | 11 +++---- .../AddChassisForm/AddChassisForm.tsx | 11 +++---- .../AddMachineForm/AddMachineForm.tsx | 11 +++---- .../CloneForm/CloneForm.tsx | 10 ++----- .../DeployFormFields/DeployFormFields.tsx | 29 ++++++------------- .../MachineStorage/MachineStorage.tsx | 9 +++--- .../WorkloadCard/WorkloadCard.tsx | 11 ++++--- .../views/SSHKeys/SSHKeyList/SSHKeyList.tsx | 6 ++-- .../Configuration/GeneralForm/GeneralForm.tsx | 12 +++----- .../IpmiFormFields/IpmiFormFields.tsx | 10 ++----- .../VaultSettings/VaultSettings.tsx | 10 ++----- .../TLSDisabled/TLSDisabled.tsx | 9 ++---- .../TLSEnabledFields/TLSEnabledFields.tsx | 9 ++---- .../ReservedRanges/ReservedRanges.tsx | 5 ++-- .../ConfigureDHCP/ConfigureDHCP.tsx | 5 ++-- .../VLANDetails/DHCPStatus/DHCPStatus.tsx | 5 ++-- .../DefinitionField/DefinitionField.tsx | 17 ++++------- .../KernelOptionsField/KernelOptionsField.tsx | 9 ++---- .../tags/views/TagList/TagTable/TagTable.tsx | 9 +++--- .../TagUpdateFormFields.tsx | 9 ++---- yarn.lock | 8 ++--- 30 files changed, 113 insertions(+), 195 deletions(-) diff --git a/package.json b/package.json index 564e6724b4..26527ec879 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "build-storybook": "storybook build" }, "dependencies": { - "@canonical/maas-react-components": "1.0.1", + "@canonical/maas-react-components": "1.3.0", "@canonical/macaroon-bakery": "1.3.2", "@canonical/react-components": "0.46.0", "@reduxjs/toolkit": "1.9.3", diff --git a/src/app/base/components/CertificateDetails/CertificateDetails.tsx b/src/app/base/components/CertificateDetails/CertificateDetails.tsx index 6f38e725f5..ba6e02bb9b 100644 --- a/src/app/base/components/CertificateDetails/CertificateDetails.tsx +++ b/src/app/base/components/CertificateDetails/CertificateDetails.tsx @@ -1,4 +1,4 @@ -import { Link } from "@canonical/react-components"; +import { ExternalLink } from "@canonical/maas-react-components"; import CertificateDownload from "app/base/components/CertificateDownload"; import CertificateMetadata from "app/base/components/CertificateMetadata"; @@ -29,9 +29,8 @@ const CertificateDetails = ({

Certificate

- sendAnalytics( eventCategory, @@ -39,11 +38,10 @@ const CertificateDetails = ({ "Read more about authentication" ) } - rel="noopener noreferrer" - target="_blank" + to="https://discourse.maas.io/t/lxd-authentication/4856" > {Labels.ReadMore} - +

diff --git a/src/app/base/components/DHCPTable/DHCPTable.tsx b/src/app/base/components/DHCPTable/DHCPTable.tsx index bdd32a22da..3f182317ea 100644 --- a/src/app/base/components/DHCPTable/DHCPTable.tsx +++ b/src/app/base/components/DHCPTable/DHCPTable.tsx @@ -1,5 +1,6 @@ import { useState } from "react"; +import { ExternalLink } from "@canonical/maas-react-components"; import { List, MainTable } from "@canonical/react-components"; import { useSelector } from "react-redux"; import { Link } from "react-router-dom-v5-compat"; @@ -204,9 +205,9 @@ const DHCPTable = ({ All snippets: Settings > DHCP snippets , - + About DHCP snippets - , + , ]} middot /> diff --git a/src/app/base/components/SSHKeyForm/SSHKeyFormFields/SSHKeyFormFields.tsx b/src/app/base/components/SSHKeyForm/SSHKeyFormFields/SSHKeyFormFields.tsx index 29236333ca..f6d5749e59 100644 --- a/src/app/base/components/SSHKeyForm/SSHKeyFormFields/SSHKeyFormFields.tsx +++ b/src/app/base/components/SSHKeyForm/SSHKeyFormFields/SSHKeyFormFields.tsx @@ -1,4 +1,5 @@ -import { Col, Link, Row, Select, Textarea } from "@canonical/react-components"; +import { ExternalLink } from "@canonical/maas-react-components"; +import { Col, Row, Select, Textarea } from "@canonical/react-components"; import type { ColSize } from "@canonical/react-components"; import { useFormikContext } from "formik"; @@ -55,8 +56,8 @@ export const SSHKeyFormFields = ({ @@ -73,9 +74,7 @@ export const SSHKeyFormFields = ({

- - About SSH keys - + About SSH keys ); }; diff --git a/src/app/base/components/node/OverviewCard/MachineStatusCard/MachineStatusCard.tsx b/src/app/base/components/node/OverviewCard/MachineStatusCard/MachineStatusCard.tsx index 320ec1a0ef..dfda230c2e 100644 --- a/src/app/base/components/node/OverviewCard/MachineStatusCard/MachineStatusCard.tsx +++ b/src/app/base/components/node/OverviewCard/MachineStatusCard/MachineStatusCard.tsx @@ -1,3 +1,4 @@ +import { ExternalLink } from "@canonical/maas-react-components"; import { Tooltip } from "@canonical/react-components"; import { formatDuration, intervalToDuration } from "date-fns"; import { useSelector } from "react-redux"; @@ -115,14 +116,12 @@ const MachineStatusCard = ({ machine }: Props): JSX.Element => { {formatSyncInterval(machine.sync_interval)}.{"\n"} You can check it at the bottom, in the status bar.{"\n"} More about this in the{" "} - Hardware sync docs - + . } diff --git a/src/app/controllers/components/ControllerForms/AddController/AddController.tsx b/src/app/controllers/components/ControllerForms/AddController/AddController.tsx index f28b0d0c3b..99294b1c6f 100644 --- a/src/app/controllers/components/ControllerForms/AddController/AddController.tsx +++ b/src/app/controllers/components/ControllerForms/AddController/AddController.tsx @@ -1,6 +1,7 @@ import type { ChangeEvent } from "react"; import { useState } from "react"; +import { ExternalLink } from "@canonical/maas-react-components"; import { Button, CodeSnippet, Col, Row } from "@canonical/react-components"; import { useSelector } from "react-redux"; @@ -95,16 +96,11 @@ export const AddController = ({ data-testid="register-snippet" /> )} - - + Help with adding a rack controller - +

- + How to trust a certificate in LXD - +

diff --git a/src/app/machines/components/MachineForms/AddChassis/AddChassisForm/AddChassisForm.tsx b/src/app/machines/components/MachineForms/AddChassis/AddChassisForm/AddChassisForm.tsx index 93a2ca0148..c7123a1e4e 100644 --- a/src/app/machines/components/MachineForms/AddChassis/AddChassisForm/AddChassisForm.tsx +++ b/src/app/machines/components/MachineForms/AddChassis/AddChassisForm/AddChassisForm.tsx @@ -1,6 +1,7 @@ import { useState } from "react"; -import { Link, Spinner, Strip } from "@canonical/react-components"; +import { ExternalLink } from "@canonical/maas-react-components"; +import { Spinner, Strip } from "@canonical/react-components"; import { useDispatch, useSelector } from "react-redux"; import * as Yup from "yup"; @@ -73,13 +74,9 @@ export const AddChassisForm = ({ - + Help with adding chassis - +

} buttonsHelpClassName="u-align--right" diff --git a/src/app/machines/components/MachineForms/AddMachine/AddMachineForm/AddMachineForm.tsx b/src/app/machines/components/MachineForms/AddMachine/AddMachineForm/AddMachineForm.tsx index 3f640c55eb..f21050e8f7 100644 --- a/src/app/machines/components/MachineForms/AddMachine/AddMachineForm/AddMachineForm.tsx +++ b/src/app/machines/components/MachineForms/AddMachine/AddMachineForm/AddMachineForm.tsx @@ -1,6 +1,7 @@ import { useState } from "react"; -import { Link, Spinner, Strip } from "@canonical/react-components"; +import { ExternalLink } from "@canonical/maas-react-components"; +import { Spinner, Strip } from "@canonical/react-components"; import { useDispatch, useSelector } from "react-redux"; import * as Yup from "yup"; @@ -126,13 +127,9 @@ export const AddMachineForm = ({ buttonsHelp={

- + Help with adding machines - +

} buttonsHelpClassName="u-align--right" diff --git a/src/app/machines/components/MachineForms/MachineActionFormWrapper/CloneForm/CloneForm.tsx b/src/app/machines/components/MachineForms/MachineActionFormWrapper/CloneForm/CloneForm.tsx index 523cdbc9fb..989d03946b 100644 --- a/src/app/machines/components/MachineForms/MachineActionFormWrapper/CloneForm/CloneForm.tsx +++ b/src/app/machines/components/MachineForms/MachineActionFormWrapper/CloneForm/CloneForm.tsx @@ -1,6 +1,6 @@ import { useEffect, useState } from "react"; -import { Link } from "@canonical/react-components"; +import { ExternalLink } from "@canonical/maas-react-components"; import { useDispatch } from "react-redux"; import * as Yup from "yup"; @@ -91,13 +91,9 @@ export const CloneForm = ({ The clone function allows you to apply storage and/or network interface configuration from the source machine to selected destination machines.{" "} - + Find out more - +

} initialValues={{ diff --git a/src/app/machines/components/MachineForms/MachineActionFormWrapper/DeployForm/DeployFormFields/DeployFormFields.tsx b/src/app/machines/components/MachineForms/MachineActionFormWrapper/DeployForm/DeployFormFields/DeployFormFields.tsx index 7002c23101..dfcdde180d 100644 --- a/src/app/machines/components/MachineForms/MachineActionFormWrapper/DeployForm/DeployFormFields/DeployFormFields.tsx +++ b/src/app/machines/components/MachineForms/MachineActionFormWrapper/DeployForm/DeployFormFields/DeployFormFields.tsx @@ -1,6 +1,7 @@ import { useEffect, useState } from "react"; import * as React from "react"; +import { ExternalLink } from "@canonical/maas-react-components"; import { Col, Input, @@ -178,13 +179,9 @@ export const DeployFormFields = (): JSX.Element => { label={ <> Register as MAAS KVM host.{" "} - + KVM docs - + } onChange={(evt: React.ChangeEvent) => { @@ -224,13 +221,9 @@ export const DeployFormFields = (): JSX.Element => { label={ <> Cloud-init user-data…{" "} - + Cloud-init docs - + } name="includeUserData" @@ -267,17 +260,13 @@ export const DeployFormFields = (): JSX.Element => { {" "} - + Hardware sync docs - + } name="enableHwSync" diff --git a/src/app/machines/views/MachineDetails/MachineStorage/MachineStorage.tsx b/src/app/machines/views/MachineDetails/MachineStorage/MachineStorage.tsx index abf5136cbc..a56d1a5e50 100644 --- a/src/app/machines/views/MachineDetails/MachineStorage/MachineStorage.tsx +++ b/src/app/machines/views/MachineDetails/MachineStorage/MachineStorage.tsx @@ -1,3 +1,4 @@ +import { ExternalLink } from "@canonical/maas-react-components"; import { Spinner, Strip } from "@canonical/react-components"; import { useSelector } from "react-redux"; import { Link } from "react-router-dom-v5-compat"; @@ -33,9 +34,8 @@ const MachineStorage = (): JSX.Element => {

Learn more about deploying{" "} - sendAnalytics( "Machine storage", @@ -43,11 +43,10 @@ const MachineStorage = (): JSX.Element => { "Windows" ) } - rel="noopener noreferrer" - target="_blank" + to={docsUrls.windowsImages} > Windows - +

Change the default layout in{" "} diff --git a/src/app/machines/views/MachineDetails/MachineSummary/WorkloadCard/WorkloadCard.tsx b/src/app/machines/views/MachineDetails/MachineSummary/WorkloadCard/WorkloadCard.tsx index 7a05f5320f..627ee0da06 100644 --- a/src/app/machines/views/MachineDetails/MachineSummary/WorkloadCard/WorkloadCard.tsx +++ b/src/app/machines/views/MachineDetails/MachineSummary/WorkloadCard/WorkloadCard.tsx @@ -1,4 +1,5 @@ -import { Card, Link, Spinner } from "@canonical/react-components"; +import { ExternalLink } from "@canonical/maas-react-components"; +import { Card, Spinner } from "@canonical/react-components"; import { useSelector } from "react-redux"; import { Link as RouterLink } from "react-router-dom"; @@ -81,8 +82,7 @@ const WorkloadCard = ({ id }: Props): JSX.Element => { /> - sendAnalytics( "Machine summary", @@ -90,11 +90,10 @@ const WorkloadCard = ({ id }: Props): JSX.Element => { "Read more" ) } - rel="noopener noreferrer" - target="_blank" + to="https://discourse.maas.io/t/machine-workload-annotations/4237" > Read more - +


{content} diff --git a/src/app/preferences/views/SSHKeys/SSHKeyList/SSHKeyList.tsx b/src/app/preferences/views/SSHKeys/SSHKeyList/SSHKeyList.tsx index 900c854f00..b3f5265978 100644 --- a/src/app/preferences/views/SSHKeys/SSHKeyList/SSHKeyList.tsx +++ b/src/app/preferences/views/SSHKeys/SSHKeyList/SSHKeyList.tsx @@ -1,4 +1,4 @@ -import { Link } from "@canonical/react-components"; +import { ExternalLink } from "@canonical/maas-react-components"; import BaseSSHKeyList from "app/base/components/SSHKeyList"; import docsUrls from "app/base/docsUrls"; @@ -19,9 +19,7 @@ const SSHKeyList = (): JSX.Element => { { label: "Import SSH key", url: urls.preferences.sshKeys.add }, ]} /> - - About SSH keys - + About SSH keys ); }; diff --git a/src/app/settings/views/Configuration/GeneralForm/GeneralForm.tsx b/src/app/settings/views/Configuration/GeneralForm/GeneralForm.tsx index 11703b1ba2..2a53973176 100644 --- a/src/app/settings/views/Configuration/GeneralForm/GeneralForm.tsx +++ b/src/app/settings/views/Configuration/GeneralForm/GeneralForm.tsx @@ -1,6 +1,7 @@ import { useEffect, useRef } from "react"; -import { Col, Link, Row } from "@canonical/react-components"; +import { ExternalLink } from "@canonical/maas-react-components"; +import { Col, Row } from "@canonical/react-components"; import { usePrevious } from "@canonical/react-components/dist/hooks"; import { useDispatch, useSelector } from "react-redux"; import * as Yup from "yup"; @@ -166,20 +167,15 @@ const GeneralForm = (): JSX.Element => { ))} -
Data analytics
The analytics used in MAAS are Google Analytics, Usabilla and Sentry Error Tracking.{" "} - + Data privacy - + } label="Enable analytics to shape improvements to user experience" diff --git a/src/app/settings/views/Security/IpmiSettings/IpmiFormFields/IpmiFormFields.tsx b/src/app/settings/views/Security/IpmiSettings/IpmiFormFields/IpmiFormFields.tsx index 29bae7256d..cd9a8b106a 100644 --- a/src/app/settings/views/Security/IpmiSettings/IpmiFormFields/IpmiFormFields.tsx +++ b/src/app/settings/views/Security/IpmiSettings/IpmiFormFields/IpmiFormFields.tsx @@ -1,4 +1,4 @@ -import { Link } from "@canonical/react-components"; +import { ExternalLink } from "@canonical/maas-react-components"; import FormikField from "app/base/components/FormikField"; import TooltipButton from "app/base/components/TooltipButton"; @@ -29,13 +29,7 @@ const IpmiFormFields = (): JSX.Element => { <> Specify this key to encrypt all communication between IPMI clients and the BMC. Leave this blank for no encryption.  - - IPMI and BMC key - + IPMI and BMC key } label={ diff --git a/src/app/settings/views/Security/SecretStorage/VaultSettings/VaultSettings.tsx b/src/app/settings/views/Security/SecretStorage/VaultSettings/VaultSettings.tsx index 94cf7e73d0..d6f2315b01 100644 --- a/src/app/settings/views/Security/SecretStorage/VaultSettings/VaultSettings.tsx +++ b/src/app/settings/views/Security/SecretStorage/VaultSettings/VaultSettings.tsx @@ -1,3 +1,4 @@ +import { ExternalLink } from "@canonical/maas-react-components"; import { Icon, Spinner, @@ -79,13 +80,9 @@ const VaultSettings = (): JSX.Element => {

1. Get the $wrapped_token and $role_id from Vault.{" "} - + Find out more from Hashicorp Vault - + .

2. SSH into each region controller and configure Vault.

@@ -131,7 +128,6 @@ const VaultSettings = (): JSX.Element => {
)} - More about Vault integration ); diff --git a/src/app/settings/views/Security/SecurityProtocols/TLSDisabled/TLSDisabled.tsx b/src/app/settings/views/Security/SecurityProtocols/TLSDisabled/TLSDisabled.tsx index 4e1fd72e98..2ff6ca93b2 100644 --- a/src/app/settings/views/Security/SecurityProtocols/TLSDisabled/TLSDisabled.tsx +++ b/src/app/settings/views/Security/SecurityProtocols/TLSDisabled/TLSDisabled.tsx @@ -1,3 +1,4 @@ +import { ExternalLink } from "@canonical/maas-react-components"; import { CodeSnippet, CodeSnippetBlockAppearance, @@ -26,13 +27,9 @@ const TLSDisabled = (): JSX.Element => { ]} />

- + More about MAAS native TLS - +

); diff --git a/src/app/settings/views/Security/SecurityProtocols/TLSEnabled/TLSEnabledFields/TLSEnabledFields.tsx b/src/app/settings/views/Security/SecurityProtocols/TLSEnabled/TLSEnabledFields/TLSEnabledFields.tsx index 0b201288f8..4ab3d8f849 100644 --- a/src/app/settings/views/Security/SecurityProtocols/TLSEnabled/TLSEnabledFields/TLSEnabledFields.tsx +++ b/src/app/settings/views/Security/SecurityProtocols/TLSEnabled/TLSEnabledFields/TLSEnabledFields.tsx @@ -1,3 +1,4 @@ +import { ExternalLink } from "@canonical/maas-react-components"; import { Slider } from "@canonical/react-components"; import { useFormikContext } from "formik"; @@ -41,13 +42,9 @@ const TLSEnabledFields = (): JSX.Element => { />

- + How to set up auto-renew for certificates - +

); diff --git a/src/app/subnets/components/ReservedRanges/ReservedRanges.tsx b/src/app/subnets/components/ReservedRanges/ReservedRanges.tsx index 695768778e..0050427931 100644 --- a/src/app/subnets/components/ReservedRanges/ReservedRanges.tsx +++ b/src/app/subnets/components/ReservedRanges/ReservedRanges.tsx @@ -1,6 +1,7 @@ import type { ReactNode } from "react"; import { useState } from "react"; +import { ExternalLink } from "@canonical/maas-react-components"; import { ContextualMenu, MainTable, @@ -330,9 +331,7 @@ const ReservedRanges = ({ /> ) : null} - - About IP ranges - + About IP ranges ); }; diff --git a/src/app/subnets/views/VLANDetails/ConfigureDHCP/ConfigureDHCP.tsx b/src/app/subnets/views/VLANDetails/ConfigureDHCP/ConfigureDHCP.tsx index 1805618f57..d9cd222648 100644 --- a/src/app/subnets/views/VLANDetails/ConfigureDHCP/ConfigureDHCP.tsx +++ b/src/app/subnets/views/VLANDetails/ConfigureDHCP/ConfigureDHCP.tsx @@ -1,5 +1,6 @@ import { useCallback } from "react"; +import { ExternalLink } from "@canonical/maas-react-components"; import { Card, Spinner } from "@canonical/react-components"; import { useDispatch, useSelector } from "react-redux"; import * as Yup from "yup"; @@ -163,9 +164,7 @@ const ConfigureDHCP = ({ closeForm, id }: Props): JSX.Element | null => { allowUnchanged buttonsHelp={ - - About DHCP - + About DHCP } cleanup={cleanup} errors={configureDHCPError} diff --git a/src/app/subnets/views/VLANDetails/DHCPStatus/DHCPStatus.tsx b/src/app/subnets/views/VLANDetails/DHCPStatus/DHCPStatus.tsx index 3021965b65..15c6f43478 100644 --- a/src/app/subnets/views/VLANDetails/DHCPStatus/DHCPStatus.tsx +++ b/src/app/subnets/views/VLANDetails/DHCPStatus/DHCPStatus.tsx @@ -1,3 +1,4 @@ +import { ExternalLink } from "@canonical/maas-react-components"; import { Button, Col, @@ -140,9 +141,7 @@ const DHCPStatus = ({ id, openForm }: Props): JSX.Element | null => {

- - About DHCP - + About DHCP

); diff --git a/src/app/tags/components/DefinitionField/DefinitionField.tsx b/src/app/tags/components/DefinitionField/DefinitionField.tsx index b780c49ec7..1534c799e5 100644 --- a/src/app/tags/components/DefinitionField/DefinitionField.tsx +++ b/src/app/tags/components/DefinitionField/DefinitionField.tsx @@ -1,5 +1,6 @@ import { useEffect, useRef } from "react"; +import { ExternalLink } from "@canonical/maas-react-components"; import { CodeSnippet, Textarea } from "@canonical/react-components"; import type { FormikErrors } from "formik"; import { useFormikContext } from "formik"; @@ -39,13 +40,9 @@ const getDefinitionError = ( return ( The definition is an invalid XPath expression. See our{" "} - + XPath expressions documentation - {" "} + {" "} for more examples. ); @@ -94,13 +91,9 @@ export const DefinitionField = ({ id }: Props): JSX.Element => {

Add an XPath expression as a definition. MAAS will auto-assign this tag to all current and future machines that match this definition.{" "} - + Learn how to use XPath expressions - + .

diff --git a/src/app/tags/components/KernelOptionsField/KernelOptionsField.tsx b/src/app/tags/components/KernelOptionsField/KernelOptionsField.tsx index dcf666bdf2..a653ada81c 100644 --- a/src/app/tags/components/KernelOptionsField/KernelOptionsField.tsx +++ b/src/app/tags/components/KernelOptionsField/KernelOptionsField.tsx @@ -1,3 +1,4 @@ +import { ExternalLink } from "@canonical/maas-react-components"; import { Textarea } from "@canonical/react-components"; import { useFormikContext } from "formik"; import { useSelector } from "react-redux"; @@ -66,13 +67,9 @@ export const KernelOptionsField = ({ <> Kernel options are appended to the kernel command line during booting while machines are commissioning or deploying.{" "} - + Read more about kernel options in tag management - + . } diff --git a/src/app/tags/views/TagList/TagTable/TagTable.tsx b/src/app/tags/views/TagList/TagTable/TagTable.tsx index ed42559a53..b38fe785da 100644 --- a/src/app/tags/views/TagList/TagTable/TagTable.tsx +++ b/src/app/tags/views/TagList/TagTable/TagTable.tsx @@ -1,6 +1,7 @@ import type { ReactNode } from "react"; import { useEffect } from "react"; +import { ExternalLink } from "@canonical/maas-react-components"; import type { MainTableProps, PropsWithSpread, @@ -219,14 +220,12 @@ const TagTable = ({
machine that matches their definition.
- Check the documentation about automatic tags. - + } position="top-center" diff --git a/src/app/tags/views/TagUpdate/TagUpdateFormFields/TagUpdateFormFields.tsx b/src/app/tags/views/TagUpdate/TagUpdateFormFields/TagUpdateFormFields.tsx index cc81d39619..35f8b51604 100644 --- a/src/app/tags/views/TagUpdate/TagUpdateFormFields/TagUpdateFormFields.tsx +++ b/src/app/tags/views/TagUpdate/TagUpdateFormFields/TagUpdateFormFields.tsx @@ -1,3 +1,4 @@ +import { ExternalLink } from "@canonical/maas-react-components"; import { Col, Row } from "@canonical/react-components"; import { useSelector } from "react-redux"; @@ -71,13 +72,9 @@ export const TagUpdateFormFields = ({ id }: Props): JSX.Element | null => { This is a manual tag. Definitions cannot be added to manual tags. To learn more about this, check our{" "} - + XPath expressions documentation - + . diff --git a/yarn.lock b/yarn.lock index c047036d78..b0f69dabf5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2896,10 +2896,10 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@canonical/maas-react-components@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@canonical/maas-react-components/-/maas-react-components-1.0.1.tgz#582527161de6b6203193e0dcd6e78e18616c5673" - integrity sha512-+o7PQvCj2GUMVOUoco7vC3YryYiIn9KQrxcygfVDl8Safq23BPRiV4Vp7APB1ubp1FNR0J7N/LasR8vQ0r/cRw== +"@canonical/maas-react-components@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@canonical/maas-react-components/-/maas-react-components-1.3.0.tgz#5daa2302b7a1a061b4dad3aeb2337646810601cb" + integrity sha512-CVB0WHv1u0uViq0LGLvoa6dtbQEZlPP/+ovgHFJhEgbvLj9NxIfsfP/4P3OzmK/6BhGXFtwN5BKMvi55UcWlbg== "@canonical/macaroon-bakery@1.3.2": version "1.3.2"