From 2be74e925838bc07f8535c66dfc9731d70a850ee Mon Sep 17 00:00:00 2001 From: Alban Bailly <130582365+abailly-akamai@users.noreply.github.com> Date: Mon, 10 Jul 2023 15:22:57 -0400 Subject: [PATCH] =?UTF-8?q?Release=20v1.97.0=20-=20release=20=E2=86=92=20s?= =?UTF-8?q?taging=20(#9377)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * WIP * refactor: [M3-6063] - Fix errors * refactor: [M3-6063] - Test changes * refactor: [M3-6063] - Code cleanup * Added changeset: Refactor components to use TypeToConfirmDialog * refactor: [M3-6063] - Code cleanup after feedback * refactor: [M3-6063] - Fix failing test * refactor: [M3-6063] - Revert the last code change * refactor: [M3-6063] - Fix create volume test spec * refactor: [M3-6063] - Revert create volume spec * refactor: [M3-6063] - PR feedback changes * refactor: [M3-6063] - Change if code to switch * refactor: [M3-6063] - Refactor conditional logic * refactor: [M3-6063] - Fix handleRestoreDatabase() * refactor: [M3-6063] - Revert primary btn text strs * refactor: [M3-6361] - Refactor class component * refactor: [M3-6361] - Add changeset * M3-6552: Add Third Party Access Tokens Cypress integration tests (#9223) * M3-6506: Add StackScript Landing Page Integration Tests (#9275) * fix: [M3-6683]: Fix confirmation modal overflow on mobile (#9289) * Fix: [M3-6683] Remove min-width for confirmation modal * Fix: [M3-6683] Improve modal title line height * Added changeset: Fix confirmation modal overflow on mobile * refactor: [M3-6391] - MUI v5 Migration - `Components > SingleTextFieldForm` (#9292) * style migration and clean up * Added changeset: MUI v5 Migration - Components > SingleTextFieldForm * use `sx` --------- Co-authored-by: Banks Nussman * fix: Reduce Firewall create and update e2e test flakiness (#9298) * Click back into field to dismiss autocomplete popper * Fix issue with LinodeSelectV2 label/text field association, update test to find input by label * Clean up, click back into select field to dismiss autocomplete popper * Find button within group to avoid selecting drawer title * Offload interactions involving firewall creation to API * Wait for firewall create requests * Add intercepts and wait for Firewall update API requests to resolve * Added changeset: Fix LinodeSelectV2 label association * Fix flake involving Linode selection when capturing image * fix: Make `yarn up:expose` actually expose Cloud Manager (#9297) * make expose command work * Added changeset: Made yarn up:expose actually expose Cloud Manager on all interfaces * add some basic docs * Update docs/GETTING_STARTED.md Fix `envrionments` ➡️ `environments` typo Co-authored-by: Mariah Jacobs <114685994+mjac0bs@users.noreply.github.com> --------- Co-authored-by: Banks Nussman Co-authored-by: Mariah Jacobs <114685994+mjac0bs@users.noreply.github.com> * style: [M3-6639] - Add outline to country flags that contain white (#9288) * add outline for some lags and add Flag story * make type respect what the Linode API returns * Added changeset: Outline to some country flags * use `styled` * only add outline in light mode * use boxShadow --------- Co-authored-by: Banks Nussman * chore: Update `deleteChangesets.mjs` to track changeset deletions (#9305) Co-authored-by: Jaalah Ramos * fix: [Marketplace] - Remove underscore in prometheus & grafana svg (#9301) * remove dash from svg * update svg name * remove old grey logo * rename file * Added changeset: Remove underscore in prometheus & grafana svg --------- Co-authored-by: Hana Xu * refactor: [M3-6386] - MUI v5 Migration - `Components > SelectableTableRow` (#9299) Migrate styles and update code patterns for the SelectableTableRow component Verify that there has been no visual regressions in `/account/service-transfers/create` * chore: Move new OAuth e2e tests into 'core' directory (#9307) * Move OAuth tests to core/account * Make '' default value for OAuth factory * refactor: [M3-6361] - Add className and event type * Refactor: [M3-6522] Chip: MUI refactor + v7 story (#9310) * Refactor: [M3-6522] Chip: MUI refactor + story * Refactor: [M3-6522] delete .mdx file * Added changeset: MUI v5 - Components > Chip * Refactor: [M3-6522] delete .mdx file * Refactor: [M3-6522] fix broken story * fix: [M3-6720] - Restore DBaaS engine icons (#9306) * Pass JSX elements instead of callbacks to Select options * Added changeset: Restore icons in DBaaS engine selection field * Feat: [M3-6473] - Add helper text to the Add SSHKey Drawer Form (#9290) * Feat: [M3-6473] initial commit - replace default export * Feat: [M3-6473] Helper text and trim on blur * Feat: [M3-6473] Cleanup * Added changeset: Helper Text for the Add SHHKey Drawer form * Feat: [M3-6473] Feedback * Update packages/manager/src/features/Profile/SSHKeys/CreateSSHKeyDrawer.tsx Co-authored-by: Mariah Jacobs <114685994+mjac0bs@users.noreply.github.com> --------- Co-authored-by: Mariah Jacobs <114685994+mjac0bs@users.noreply.github.com> * refactor: [M3-6359] - MUI v5 Migration - `Components > LongviewLineGraph` (#9291) Update styles and code patterns for the LongviewLineGraph component So, we don't have an account that has Longview setup and when I tried to run the curl command to set it up, I kept running into errors. I think the changes are minor enough that we can just check the code * refactor: [M3-6788] - MUI v5 Migration - `Components > TextField` (#9314) * initial `TextField` refactor * update storybook story * rename `Props` ➡️ `TextFieldProps` * clean up the mdx * fix broken storybook build * feedback @mjac0bs * add some defaults --------- Co-authored-by: Banks Nussman * chore: Delete old changesets from `develop` branch (#9302) Co-authored-by: Jaalah Ramos * refactor: [M3-6354] - MUI v5 Migration - `Components > LandingLoading` (#9282) Co-authored-by: Jaalah Ramos * refactor: [M3-6791] - MUI v5 Migration - `Components > Toolbar` (#9319) * move Toolbar to the correct place and clean up exports * Added changeset: MUI v5 Migration - Components > Toolbar --------- Co-authored-by: Banks Nussman * refactor: [M3-6793] - MUI v5 Migration - `Components > AppBar` (#9321) * move AppBar to correct place and use named exports * Added changeset: MUI v5 Migration - Components > AppBar --------- Co-authored-by: Banks Nussman * refactor: [M3-6195] - MUI v5 Migration - `Components > Button` (part 2) (#9325) * delete core files and clean up exports * Added changeset: MUI v5 Migration - Components > Button --------- Co-authored-by: Banks Nussman * fix: [M3-6638] - Object Storage > Create Access Key Drawer Layout Issue (#9296) * fix: [M3-6638] - Object Storage > Create Access Key Drawer Layout Issue * Added changeset: Object Storage > Create Access Key Drawer Layout Issue * Add descriptive message * code cleanup * refactor: [M3-6290] - MUI v5 Migration - `Components > Accordion` (part 2) (#9320) * update storybook and move component to correct spot * Added changeset: MUI v5 Migration - Components > Accordion (part 2) * futher clean up and feedback from @dwiley-akamai --------- Co-authored-by: Banks Nussman * fix: local dev server AppBarProps export (#9334) Co-authored-by: Banks Nussman * refactor: [M3-6063] - Fix CloseAccount button * refactor: [M3-6702] - React Query - Linodes - General clean up and refactors (#9294) * refactor and clean up * fix spelling for entity names * remove more things * match production better * igrate off withLinodes container * make the linodes container pull from React Query * remove last few containers for now * hook up search with RQ * fix broken tests * Added changeset: React Query - Linodes - General clean up and refactors * remove `useLinodes` redux hook * feedback @dwiley-akamai --------- Co-authored-by: Banks Nussman * Refactor: [M3-6522-selection-card] Selection Card: named exports and v7 story (#9327) * Refactor: [M3-6522-selection-card] Initial commit: exports * Refactor: [M3-6522-selection-card] New v7 story * Added changeset: MUI v5 Migration - Components > SelectionCard * Refactor: [M3-6522-selection-card] Add some interactivity * refactor: [M3-6797] - MUI v5 Migration - `Components > Hidden` (#9326) * move component and use named export * Added changeset: MUI v5 Migration - Components > Hidden --------- Co-authored-by: Banks Nussman * refactor: [M3-6794] - MUI v5 Migration - `Components > Box` (#9322) * move files, update exports, create Storybook story * Added changeset: MUI v5 Migration - Components > Box * fix storybook build --------- Co-authored-by: Banks Nussman * feat: [M3-6707] – Light/dark mode shortcut copy on the "My Settings" page (#9286) * refactor: [M3-6798] - MUI v5 Migration - `Components > Typography` (#9328) * initial refactor and new storybook story * Added changeset: MUI v5 Migration - Components > Typography * fix unit tests by updated exports --------- Co-authored-by: Banks Nussman * Revert "refactor: [M3-6063] - Fix CloseAccount button" This reverts commit 4a4959271e4ac9e70228a582a3dc9fe84a4ea341. * Add changes after revert of yarn.lock, cachedData * Refactor: [M3-6522] - Update Link component export and improve Storybook story (#9313) * Refactor: [M3-6522-link] Initial commit: remoce default export and new story * Refactor: [M3-6522-link] argsTypes * Refactor: [M3-6522-link] More Documntation * Added changeset: Link component: remove default export and improved storybook story * Refactor: [M3-6522-link] Actualy remove old mdx story * Refactor: [M3-6522-link] feedback * Refactor: [M3-6522-link] post rebase fix * Refactor: [M3-6522-link] feedback 2 * Refactor: [M3-6522-link] fix bad rebase * Fix: [M3-6800] Firewall custom port validation (#9336) * Fix: [M3-6800] improve FW custom ports validation * Fix: [M3-6800] increased test coverage * Added changeset: Firewall custom ports validation * Added changeset: Firewall custom port validation * Fix: [M3-6800] cleanup * Fix: [M3-6800] moaaar cleanup * Fix: [M3-6800] better naming conventions and JSDoc * Fix: [M3-6800] Improved feedback * refactor: [M3-6458] - Remove old changelog scripting (#9340) * remove changeset bot, python utils, and some shell scripts * more script clean up * Added changeset: Remove old changelog scripting * clean up dependencies and test setups * get rid of more js 😖 sorry, i can't help it * re-add joe's script --------- Co-authored-by: Banks Nussman * fix: [M3-5577] - Disable delete button for public IP addresses (#9332) Disable delete button for public IP addresses if it's the only IP address and display a tooltip Check the Network tab of a Linode's details page * chore: [M3-6666] - Clean up for consistent spelling of "canceled" (#9335) * Update api-v4 types * Clean up checks and string manip for inconsistent spelling * Added changeset: Use 'canceled' instead of 'cancelled' for EntityTransferStatus * Forgot to commit mock canceled transfer event * Refactor: [M3-6522-copy-tooltip] CopyTooltip: Styled component and v7 story (#9323) * Refactor: [M3-6522-copy-tooltip] Styled component and v7 story * Added changeset: MUI v5 Migration - Components > CopyTooltip * Refactor: [M3-6522-copy-tooltip] feedback - missing props * Fix: [M3-6786] ActionMenu tooltip icon color (#9352) * Fix: [M3-6786] ActionMenu tooltip icon color * Added changeset: ActionMenu tooltip icon color deprecation * refactor: Remove `withLoadingAndError` and clean up 2FA components (#9318) * remove `withLoadingAndError` and clean up 2fa * Added changeset: Remove `withLoadingAndError` and clean up 2FA components * remove more legacy stuff --------- Co-authored-by: Banks Nussman * Chore: [M3-6527] - Storybook update and maintenance fixes (#9330) * Chore: [M3-6527]: Update storybook * Chore: [M3-6527]: Add msw to loader * Chore: [M3-6527]: Fix props forwarding for Chip component * Chore: [M3-6527]: Yarn lock update * Chore: [M3-6527]: Remove fix present in other PR * refactor: [M3-6804] - MUI v5 Migration - `Components > Chip` (#9339) * move to correct spot and update imports * Added changeset: MUI v5 Migration - Components > Chip * use relative import for story * fix: add prop filter --------- Co-authored-by: Banks Nussman * fix: [M3-6177] - Only request logo once for invoice pdf (#9355) Previously, when downloading an invoice, we would make a request for the logo image for every page of the invoice potentially causing delays for large accounts. This PR fixes that by fetching the image only once and passing that to jsPDF's addImage function - Go to /account/billing - In the browser dev tools, go to the network tab and filter by .png - Download an invoice PDF and observe only 1 request made for the akamai logo - Open the PDF and ensure that the logo is still on every page * fix: Fix miscellaneous Cypress test flake (#9342) * Fix flake related to intercepts that are set up too late * Fix flake stemming from multiple instances of phrase existing on page * fix: Fix Linode landing page delete smoke test flake (#9348) * Wait for landing page to update before deleting next Linode * Use Linode API SDK to create Linodes for test * refactor: [M3-6350] - MUI v5 Migration - `Components > InlineMenuAction` (#9268) Co-authored-by: Jaalah Ramos * fix: [M3-6627] - Fix `cy.defer()` TypeScript errors (#9349) * Fix cy.defer command, replace instances of cy.wrap with cy.defer * Rename e2e.js to e2e.ts, replace cy.wrap with cy.defer * Improve `attemptWithBackoff` error handling by listing each attempt failure error message * Improve cy.defer log handling * fix: [M3-6782] - Fix Third-Party Access Tokens Flaky Tests (#9354) * chore: [M3-6777] - Rename Cypress functions and variables related to secrets (#9350) * Rename functions and variables related to secrets, improve object storage mock utils * Fix failing access key revoke test * Fix mismatched error variable name in prebuild script * test: [M3-6054] - Add Cypress test coverage for Linode Create via CLI dialog (#9351) * Add test to assert Linode CLI snippet content, close dialog * fix: NVM should be NVMe (#9366) Co-authored-by: Jaalah Ramos * refactor: [M3-6299] - MUI v5 Migration - `Components > Checkbox` (part 2) (#9338) * update exports, remove core, fix component, new storybook story * add basic jsdoc * Added changeset: MUI v5 Migration - Components > Checkbox (part 2) * feedback @dwiley-akamai * feedback @hana-linode --------- Co-authored-by: Banks Nussman * refactor: [M3-6393] - MUI v5 - `Components > Snackbar` (#9359) Co-authored-by: Jaalah Ramos * refactor: [M3-6790] – MUI v5 Migration - `Components > Divider` (#9353) * fix: [M3-6833] Replace negative lookbehind regular expression in eventMessageGenerators (#9360) * fix: [M3-6833] Fix issue with Negative lookbehind regular expression * Added changeset: Fix issue with notification menu crashing older safari versions * feat: [M3-6841] - Add AGLB feature flag (#9370) Adds AGLB feature flag 🚩 --------- Co-authored-by: Banks Nussman * feat: [M3-6779] - AGLB api-v4 endpoints (#9363) Adds initial api-v4 endpoints and types for the AGLB --------- Co-authored-by: Banks Nussman * feat: [M3-6840] - Add VPC feature flag (#9368) Add VPC feature flag Check that `vpc` is being returned from `useFlags()` and that it is under the feature flag tool * feat: [M3-6722] – VPC endpoints, validation, & React Query queries (#9361) * feat: [M3-6789] - Improve failed backup error messaging (#9364) * Update linode_snapshot event toast * Update backup restore and snapshot error events and toasts * Fix styling regression for snapshot error notice * Add backups warning for create flow with private images * Add changeset * Address feedback * Add mock failed backups_restore event to be removed before merging * Address naming and copy feedback * Fix toast link text color in dark mode * Revert unintentional commit to include failed event in mocks * fix: wording in "My Profile" -> "Login and Authentication" (#9358) **Old:** ``` To disable Google authentication and log in using your Linode credentials, click the Linode button above. ``` **New:** ``` To disable Google authentication and log in using your Cloud Manager credentials, click the Cloud Manager button above. ``` * refactor: [M3-6839] - MUI v5 Migration - `Components > Tooltip` (#9369) * initial toolip refactor * Added changeset: MUI v5 Migration - Components > Tooltip * Refactor Tooltip and convert story * fix spelling --------- Co-authored-by: Banks Nussman * test: [M3-6505] - Add StackScript Update/Delete E2E Tests (#9315) * M3-6505: Add StackScript Update/Delete E2E Tests * Fixed comments * refactor: Upgrade LaunchDarkly SDK and use anonymous users (#9285) * Upgrade LD and remove username * Remove unused import * Mark all attributes private * Added changeset: Upgrade LaunchDarkly client library * Address feedback * Update packages/manager/src/IdentifyUser.tsx --------- Co-authored-by: Jaalah Ramos <125309814+jaalah-akamai@users.noreply.github.com> * Cloud version 1.96.0, API v4 version 0.96.0, and Validation version 0.26.0 * Update changelogs * feat: [M3-6842] - Update Metadata copy (#9374) * add labelTooltipText prop to TextField component * update copy * Added changeset: Update Metadata copy * fix unit test * Update tests to reflect updated markup --------- Co-authored-by: Joe D'Amore * Update Changelog for v1.97.0 release (#9378) * fix: minor css regression account > billing history dropdowns (#9379) Co-authored-by: Jaalah Ramos --------- Co-authored-by: ecarrill Co-authored-by: cliu-akamai <126020611+cliu-akamai@users.noreply.github.com> Co-authored-by: Banks Nussman <115251059+bnussman-akamai@users.noreply.github.com> Co-authored-by: Banks Nussman Co-authored-by: jdamore-linode <97627410+jdamore-linode@users.noreply.github.com> Co-authored-by: Mariah Jacobs <114685994+mjac0bs@users.noreply.github.com> Co-authored-by: Jaalah Ramos <125309814+jaalah-akamai@users.noreply.github.com> Co-authored-by: Jaalah Ramos Co-authored-by: hmorris3293 Co-authored-by: Hana Xu Co-authored-by: Hana Xu <115299789+hana-linode@users.noreply.github.com> Co-authored-by: carrillo-erik <119514965+carrillo-erik@users.noreply.github.com> Co-authored-by: cpathipa <119517080+cpathipa@users.noreply.github.com> Co-authored-by: Dajahi Wiley <114682940+dwiley-akamai@users.noreply.github.com> Co-authored-by: John Callahan <114753608+jcallahan-akamai@users.noreply.github.com> Co-authored-by: Joe D'Amore --- packages/api-v4/CHANGELOG.md | 13 ++++ packages/api-v4/package.json | 2 +- packages/manager/CHANGELOG.md | 58 ++++++++++++++++ .../e2e/core/account/change-username.spec.ts | 1 + .../core/account/security-questions.spec.ts | 4 +- .../core/kubernetes/smoke-lke-create.spec.ts | 6 +- packages/manager/package.json | 2 +- .../src/components/EnhancedSelect/Select.tsx | 2 +- packages/manager/src/components/TextField.tsx | 68 ++++++++++++------- .../src/features/Images/ImagesDrawer.tsx | 9 +-- .../UserDataAccordion/UserDataAccordion.tsx | 39 ++++++----- .../UserDataAccordionHeading.tsx | 6 +- .../SupportTickets/SupportTicketDialog.tsx | 8 +-- packages/validation/CHANGELOG.md | 11 +++ packages/validation/package.json | 2 +- 15 files changed, 167 insertions(+), 64 deletions(-) diff --git a/packages/api-v4/CHANGELOG.md b/packages/api-v4/CHANGELOG.md index 17811bae3c5..259e59b9194 100644 --- a/packages/api-v4/CHANGELOG.md +++ b/packages/api-v4/CHANGELOG.md @@ -1,3 +1,16 @@ +## [2023-07-11] - v0.96.0 + + +### Added: + +- Endpoints for VPC ([#9361](https://github.com/linode/manager/pull/9361)) +- Endpoints for the Akamai Global Load Balancer ([#9363](https://github.com/linode/manager/pull/9363)) + +### Changed: + +- Use 'canceled' instead of 'cancelled' for EntityTransferStatus ([#9335](https://github.com/linode/manager/pull/9335)) + + ## [2023-06-27] - v0.95.1 diff --git a/packages/api-v4/package.json b/packages/api-v4/package.json index 4920f6ba031..050bddfda81 100644 --- a/packages/api-v4/package.json +++ b/packages/api-v4/package.json @@ -1,6 +1,6 @@ { "name": "@linode/api-v4", - "version": "0.95.1", + "version": "0.96.0", "homepage": "https://github.com/linode/manager/tree/develop/packages/api-v4", "bugs": { "url": "https://github.com/linode/manager/issues" diff --git a/packages/manager/CHANGELOG.md b/packages/manager/CHANGELOG.md index ae479346b6f..eb770d074d6 100644 --- a/packages/manager/CHANGELOG.md +++ b/packages/manager/CHANGELOG.md @@ -4,6 +4,64 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [2023-07-11] - v1.97.0 + + +### Added: + +- Light/dark mode keyboard shortcut copy on "My Settings" page ([#9286](https://github.com/linode/manager/pull/9286)) +- Visual outline to some country flags ([#9288](https://github.com/linode/manager/pull/9288)) +- Helper text for the Add SSH Key Drawer form ([#9290](https://github.com/linode/manager/pull/9290)) +- Improved warning and error messaging for failed backup events ([#9364](https://github.com/linode/manager/pull/9364)) + +### Changed: + +- Update Metadata copy ([#9374](https://github.com/linode/manager/pull/9374)) + +### Fixed: + +- Notification menu crashing older Safari versions ([#9360](https://github.com/linode/manager/pull/9360)) +- Confirmation modal overflow on mobile ([#9289](https://github.com/linode/manager/pull/9289)) +- Layout issue with Create Access Key Drawer for Object Storage ([#9296](https://github.com/linode/manager/pull/9296)) +- LinodeSelectV2 label association ([#9298](https://github.com/linode/manager/pull/9298)) +- Missing icons in DBaaS engine selection field ([#9306](https://github.com/linode/manager/pull/9306)) +- Disable delete button for public IP addresses if it's the only IP address ([#9332](https://github.com/linode/manager/pull/9332)) +- Action Menu tooltip icon color deprecation ([#9352](https://github.com/linode/manager/pull/9352)) +- Multiple requests for logo when loading billing invoice PDFs ([#9355](https://github.com/linode/manager/pull/9355)) +- Updated wording from “Linode” to “Cloud Manager” ([#9358](https://github.com/linode/manager/pull/9358)) +- Volume empty state misspelling of NVMe ([#9366](https://github.com/linode/manager/pull/9366)) + +### Tech Stories: + +- React Query methods for VPC ([#9361](https://github.com/linode/manager/pull/9361)) +- Made yarn up:expose actually expose Cloud Manager on all interfaces ([#9297](https://github.com/linode/manager/pull/9297)) +- MUI v5 Migration - `Components > InlineMenuAction` ([#9268](https://github.com/linode/manager/pull/9268)) +- MUI v5 Migration - `Components > LandingLoading` ([#9282](https://github.com/linode/manager/pull/9282)) +- Upgrade LaunchDarkly client library ([#9285](https://github.com/linode/manager/pull/9285)) +- MUI v5 Migration - `Components > LongviewLineGraph` ([#9291](https://github.com/linode/manager/pull/9291)) +- MUI v5 Migration - `Components > SingleTextFieldForm` ([#9292](https://github.com/linode/manager/pull/9292)) +- MUI v5 Migration - `Components > SelectableTableRow` ([#9299](https://github.com/linode/manager/pull/9299)) +- MUI v5 Migration - `Components > Chip` ([#9310](https://github.com/linode/manager/pull/9310)) +- MUI v5 Migration - `Components > Toolbar` ([#9319](https://github.com/linode/manager/pull/9319)) +- MUI v5 Migration - `Components > Accordion` (part 2) ([#9320](https://github.com/linode/manager/pull/9320)) +- MUI v5 Migration - `Components > AppBar` ([#9321](https://github.com/linode/manager/pull/9321)) +- MUI v5 Migration - `Components > Box` ([#9322](https://github.com/linode/manager/pull/9322)) +- MUI v5 Migration - `Components > CopyTooltip` ([#9323](https://github.com/linode/manager/pull/9323)) +- MUI v5 Migration - `Components > Button` ([#9325](https://github.com/linode/manager/pull/9325)) +- MUI v5 Migration - `Components > Hidden` ([#9326](https://github.com/linode/manager/pull/9326)) +- MUI v5 Migration - `Components > SelectionCard` ([#9327](https://github.com/linode/manager/pull/9327)) +- MUI v5 Migration - `Components > Typography` ([#9328](https://github.com/linode/manager/pull/9328)) +- MUI v5 Migration - `Components > Checkbox` (part 2) ([#9338](https://github.com/linode/manager/pull/9338)) +- MUI v5 Migration - `Components > Chip` ([#9339](https://github.com/linode/manager/pull/9339)) +- MUI v5 Migration - `Components > Snackbar` ([#9359](https://github.com/linode/manager/pull/9359)) +- MUI v5 Migration - `Components > Tooltip` ([#9369](https://github.com/linode/manager/pull/9369)) +- MUI v5 Migration - `Components > MenuItem` ([#9295](https://github.com/linode/manager/pull/9295)) +- MUI v5 Migration - `Components > Divider` ([#9353](https://github.com/linode/manager/pull/9353)) +- Remove old changelog scripting ([#9340](https://github.com/linode/manager/pull/9340)) +- Remove `withLoadingAndError` and clean up 2FA components ([#9318](https://github.com/linode/manager/pull/9318)) +- Link component: remove default export and improved Storybook story ([#9313](https://github.com/linode/manager/pull/9313)) +- Refactor components to use TypeToConfirmDialog ([#9175](https://github.com/linode/manager/pull/9175)) + ## [2023-06-29] - v1.96.2 ### Fixed: diff --git a/packages/manager/cypress/e2e/core/account/change-username.spec.ts b/packages/manager/cypress/e2e/core/account/change-username.spec.ts index a5c59f58060..a2323877ade 100644 --- a/packages/manager/cypress/e2e/core/account/change-username.spec.ts +++ b/packages/manager/cypress/e2e/core/account/change-username.spec.ts @@ -34,6 +34,7 @@ describe('username', () => { .type(newUsername); cy.get('[data-qa-textfield-label="Username"]') + .parent() .parent() .parent() .within(() => { diff --git a/packages/manager/cypress/e2e/core/account/security-questions.spec.ts b/packages/manager/cypress/e2e/core/account/security-questions.spec.ts index d0159fe7224..c11b1121398 100644 --- a/packages/manager/cypress/e2e/core/account/security-questions.spec.ts +++ b/packages/manager/cypress/e2e/core/account/security-questions.spec.ts @@ -26,7 +26,7 @@ const getSecurityQuestionsSection = (): Cypress.Chainable => { * @returns Cypress chainable. */ const getSecurityQuestion = (questionNumber: number): Cypress.Chainable => { - return cy.contains('label', `Question ${questionNumber}`).parent(); + return cy.contains('label', `Question ${questionNumber}`).parent().parent(); }; /** @@ -39,7 +39,7 @@ const getSecurityQuestion = (questionNumber: number): Cypress.Chainable => { const getSecurityQuestionAnswer = ( questionNumber: number ): Cypress.Chainable => { - return cy.contains('label', `Answer ${questionNumber}`).parent(); + return cy.contains('label', `Answer ${questionNumber}`).parent().parent(); }; /** diff --git a/packages/manager/cypress/e2e/core/kubernetes/smoke-lke-create.spec.ts b/packages/manager/cypress/e2e/core/kubernetes/smoke-lke-create.spec.ts index 6d19c015e59..f276c371b25 100644 --- a/packages/manager/cypress/e2e/core/kubernetes/smoke-lke-create.spec.ts +++ b/packages/manager/cypress/e2e/core/kubernetes/smoke-lke-create.spec.ts @@ -60,11 +60,7 @@ describe('LKE Create Cluster', () => { mockCreateCluster(mockCluster).as('createCluster'); cy.visitWithLogin('/kubernetes/create'); cy.findByText('Add Node Pools').should('be.visible'); - cy.contains('Cluster Label') - .next() - .children() - .click() - .type(mockCluster.label); + cy.findByLabelText('Cluster Label').click().type(mockCluster.label); cy.findByLabelText('Region') .should('be.visible') .focus() diff --git a/packages/manager/package.json b/packages/manager/package.json index e153ffb220e..e7b91f41d6a 100644 --- a/packages/manager/package.json +++ b/packages/manager/package.json @@ -2,7 +2,7 @@ "name": "linode-manager", "author": "Linode", "description": "The Linode Manager website", - "version": "1.96.2", + "version": "1.97.0", "private": true, "bugs": { "url": "https://github.com/Linode/manager/issues" diff --git a/packages/manager/src/components/EnhancedSelect/Select.tsx b/packages/manager/src/components/EnhancedSelect/Select.tsx index 05fab2e913c..2352ba7890e 100644 --- a/packages/manager/src/components/EnhancedSelect/Select.tsx +++ b/packages/manager/src/components/EnhancedSelect/Select.tsx @@ -216,7 +216,7 @@ const Select = < filterOption={filterOption} isMulti={isMulti} classes={classes} - className={classNames(className, classes.root)} + className={classNames(classes.root, className)} classNamePrefix="react-select" inputId={ inputId diff --git a/packages/manager/src/components/TextField.tsx b/packages/manager/src/components/TextField.tsx index 41823f41c89..ee2ba81c1d2 100644 --- a/packages/manager/src/components/TextField.tsx +++ b/packages/manager/src/components/TextField.tsx @@ -1,19 +1,20 @@ import KeyboardArrowDown from '@mui/icons-material/KeyboardArrowDown'; +import Box from '@mui/material/Box'; +import { Theme } from '@mui/material/styles'; +import { + default as _TextField, + StandardTextFieldProps, +} from '@mui/material/TextField'; import { clamp } from 'ramda'; import * as React from 'react'; import { CircleProgress } from 'src/components/CircleProgress'; import FormHelperText from 'src/components/core/FormHelperText'; import InputAdornment from 'src/components/core/InputAdornment'; import InputLabel from 'src/components/core/InputLabel'; -import { makeStyles } from 'tss-react/mui'; -import { Theme } from '@mui/material/styles'; -import { - default as _TextField, - StandardTextFieldProps, -} from '@mui/material/TextField'; import { TooltipProps as _TooltipProps } from 'src/components/Tooltip'; import { TooltipIcon } from 'src/components/TooltipIcon'; import { convertToKebabCase } from 'src/utilities/convertToKebobCase'; +import { makeStyles } from 'tss-react/mui'; const useStyles = makeStyles()((theme: Theme) => ({ helpWrapper: { @@ -142,7 +143,11 @@ interface BaseProps { type Value = string | number | undefined | null; -interface ToolTipProps { +interface LabelToolTipProps { + labelTooltipText?: string | JSX.Element; +} + +interface InputToolTipProps { tooltipPosition?: _TooltipProps['placement']; tooltipText?: string | JSX.Element; tooltipInteractive?: boolean; @@ -155,7 +160,10 @@ interface TextFieldPropsOverrides extends StandardTextFieldProps { label: string; } -export type TextFieldProps = BaseProps & TextFieldPropsOverrides & ToolTipProps; +export type TextFieldProps = BaseProps & + TextFieldPropsOverrides & + LabelToolTipProps & + InputToolTipProps; export const TextField = (props: TextFieldProps) => { const { classes, cx } = useStyles(); @@ -178,6 +186,7 @@ export const TextField = (props: TextFieldProps) => { inputProps, InputProps, label, + labelTooltipText, loading, max, min, @@ -273,22 +282,33 @@ export const TextField = (props: TextFieldProps) => { [errorScrollClassName]: !!errorText, })} > - - {label} - {required ? ( - (required) - ) : optional ? ( - (optional) - ) : null} - + + + {label} + {required ? ( + (required) + ) : optional ? ( + (optional) + ) : null} + + {labelTooltipText && ( + + )} + {helperText && helperTextPosition === 'top' && ( { ) : null} {generalError && } - {notice && } + {notice && } {['create', 'restore'].includes(mode) && ( { return ( } - style={{ - marginTop: renderNotice && renderCheckbox ? 0 : 24, - }} // for now, these props can be taken as an indicator we're in the Rebuild flow. headingProps={{ variant: 'h2', }} + style={{ + marginTop: renderNotice && renderCheckbox ? 0 : 24, + }} // for now, these props can be taken as an indicator we're in the Rebuild flow. summaryProps={{ sx: { padding: '5px 24px 0px 24px', alignItems: fromBackupOrFromLinode ? 'flex-start' : 'center', }, }} - detailProps={{ sx: sxDetails }} sx={{ '&:before': { display: 'none', }, }} - expandIconClassNames={fromBackupOrFromLinode ? expandIconStyles : ''} > {renderNotice ? ( {renderNotice} ) : null} - - User data is a virtual machine’s cloud-init metadata relating to a - user’s local account, including username and user group(s).
- User data must be added before the Linode provisions.{' '} + + User data is a feature of the Metadata service that enables you to + perform system configuration tasks (such as adding users and installing + software) by providing custom instructions or scripts to cloud-init. Any + user data should be added at this step and cannot be modified after the + the Linode has been created.{' '} Learn more. {' '} @@ -98,19 +100,20 @@ export const UserDataAccordion = (props: Props) => {
) : null} + checkFormat({ userData: e.target.value, hasInputValueChanged: false }) + } onChange={(e) => { checkFormat({ userData: e.target.value, hasInputValueChanged: true }); onChange(e.target.value); }} + rows={1} value={userData} - disabled={Boolean(disabled)} - onBlur={(e) => - checkFormat({ userData: e.target.value, hasInputValueChanged: false }) - } data-qa-user-data-input /> {renderCheckbox ?? null} diff --git a/packages/manager/src/features/Linodes/LinodesCreate/UserDataAccordion/UserDataAccordionHeading.tsx b/packages/manager/src/features/Linodes/LinodesCreate/UserDataAccordion/UserDataAccordionHeading.tsx index 4938c9b916a..0dba0daa776 100644 --- a/packages/manager/src/features/Linodes/LinodesCreate/UserDataAccordion/UserDataAccordionHeading.tsx +++ b/packages/manager/src/features/Linodes/LinodesCreate/UserDataAccordion/UserDataAccordionHeading.tsx @@ -1,9 +1,9 @@ import * as React from 'react'; import { BetaChip } from 'src/components/BetaChip/BetaChip'; +import { Box } from 'src/components/Box'; import { Link } from 'src/components/Link'; import { Notice } from 'src/components/Notice/Notice'; import { TooltipIcon } from 'src/components/TooltipIcon'; -import { Box } from 'src/components/Box'; import { CreateTypes } from 'src/store/linodeCreate/linodeCreate.actions'; interface Props { @@ -31,8 +31,8 @@ export const UserDataAccordionHeading = ({ createType }: Props) => { sxTooltipIcon={{ padding: '0 8px', alignItems: 'baseline' }} text={ <> - User data is a virtual machine’s cloud-init metadata - relating to a user’s local account.{' '} + User data allows you to provide additional custom data to + cloud-init to further configure your system.{' '} Learn more. diff --git a/packages/manager/src/features/Support/SupportTickets/SupportTicketDialog.tsx b/packages/manager/src/features/Support/SupportTickets/SupportTicketDialog.tsx index 7bf06e5abf1..21a4c92e949 100644 --- a/packages/manager/src/features/Support/SupportTickets/SupportTicketDialog.tsx +++ b/packages/manager/src/features/Support/SupportTickets/SupportTicketDialog.tsx @@ -3,14 +3,16 @@ import { uploadAttachment, } from '@linode/api-v4/lib/support'; import { APIError } from '@linode/api-v4/lib/types'; -import { Theme } from '@mui/material/styles'; -import { makeStyles } from '@mui/styles'; import * as Bluebird from 'bluebird'; import { update } from 'ramda'; import * as React from 'react'; import { Accordion } from 'src/components/Accordion'; import { StyledActionPanel } from 'src/components/ActionsPanel/ActionsPanel'; import { Button } from 'src/components/Button/Button'; +import FormHelperText from 'src/components/core/FormHelperText'; +import { makeStyles } from '@mui/styles'; +import { Theme } from '@mui/material/styles'; +import { Typography } from 'src/components/Typography'; import { Dialog } from 'src/components/Dialog/Dialog'; import Select, { Item } from 'src/components/EnhancedSelect/Select'; import { ErrorBoundary } from 'src/components/ErrorBoundary'; @@ -18,8 +20,6 @@ import { ErrorState } from 'src/components/ErrorState/ErrorState'; import { Notice } from 'src/components/Notice/Notice'; import { EntityForTicketDetails } from 'src/components/SupportLink/SupportLink'; import { TextField } from 'src/components/TextField'; -import { Typography } from 'src/components/Typography'; -import FormHelperText from 'src/components/core/FormHelperText'; import { useAccount } from 'src/queries/account'; import { useAllDatabasesQuery } from 'src/queries/databases'; import { useAllDomainsQuery } from 'src/queries/domains'; diff --git a/packages/validation/CHANGELOG.md b/packages/validation/CHANGELOG.md index ff310bb7f49..1d34577ca94 100644 --- a/packages/validation/CHANGELOG.md +++ b/packages/validation/CHANGELOG.md @@ -1,3 +1,14 @@ +## [2023-07-11] - v0.26.0 + + +### Added: + +- Validation for VPC creation and updates ([#9361](https://github.com/linode/manager/pull/9361)) + +### Fixed: + +- Firewall custom port validation ([#9336](https://github.com/linode/manager/pull/9336)) + ## [2023-06-29] - v0.25.0 ### Fixed: diff --git a/packages/validation/package.json b/packages/validation/package.json index a27b8acb573..c0564b2c054 100644 --- a/packages/validation/package.json +++ b/packages/validation/package.json @@ -1,6 +1,6 @@ { "name": "@linode/validation", - "version": "0.25.0", + "version": "0.26.0", "description": "Yup validation schemas for use with the Linode APIv4", "type": "module", "main": "lib/index.cjs",