Skip to content

new: STORIF-310 - Bucket tab filters created.#13481

Open
dchyrva-akamai wants to merge 1 commit intolinode:developfrom
dchyrva-akamai:feature/STORIF-310
Open

new: STORIF-310 - Bucket tab filters created.#13481
dchyrva-akamai wants to merge 1 commit intolinode:developfrom
dchyrva-akamai:feature/STORIF-310

Conversation

@dchyrva-akamai
Copy link
Contributor

Description 📝

Bucket tab filters created.

Preview 📷

image

How to test 🧪

  • Run pnpm dev.
  • Navigate to /object-storage/buckets page.
  • Observe two new filters above the buckets table.
Author Checklists

As an Author, to speed up the review process, I considered 🤔

👀 Doing a self review
❔ Our contribution guidelines
🤏 Splitting feature into small PRs
➕ Adding a changeset
🧪 Providing/improving test coverage
🔐 Removing all sensitive information from the code and PR description
🚩 Using a feature flag to protect the release
👣 Providing comprehensive reproduction steps
📑 Providing or updating our documentation
🕛 Scheduling a pair reviewing session
📱 Providing mobile support
♿ Providing accessibility support


  • I have read and considered all applicable items listed above.

As an Author, before moving this PR from Draft to Open, I confirmed ✅

  • All tests and CI checks are passing
  • TypeScript compilation succeeded without errors
  • Code passes all linting rules

@dchyrva-akamai dchyrva-akamai marked this pull request as ready for review March 12, 2026 09:09
@dchyrva-akamai dchyrva-akamai requested review from a team as code owners March 12, 2026 09:09
@dchyrva-akamai dchyrva-akamai requested review from jdamore-linode and removed request for a team March 12, 2026 09:09
@dchyrva-akamai dchyrva-akamai force-pushed the feature/STORIF-310 branch 2 times, most recently from 67b581b to a35a650 Compare March 13, 2026 09:38
(region) => region.id === selectedBucket.cluster.region
);

const selectedRegionLabel = selectedRegion
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test should target a specific scenario - the region should either be defined, or not. In this case, I recommend to fail early in case region is undefined:

expect(selectedRegion, `expected region matching ${selectedBucket.cluster.region}`).to.exist;

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since new we know that region exists, this line could be simplified to

const selectedRegionLabel = getNewRegionLabel(selectedRegion)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am afraid it couldn't, find() method always return T | undefined, the region is 100% there, it is purely a typization issue.

@github-project-automation github-project-automation bot moved this from Review to Changes Requested in Cloud Manager Mar 13, 2026
@dchyrva-akamai dchyrva-akamai force-pushed the feature/STORIF-310 branch 6 times, most recently from 462a2d0 to 88237d2 Compare March 17, 2026 13:13
@dchyrva-akamai dchyrva-akamai force-pushed the feature/STORIF-310 branch 7 times, most recently from d2c44e7 to e06f0aa Compare March 23, 2026 08:55
@bnussman-akamai bnussman-akamai added the Object Storage deals with Object Storage label Mar 23, 2026
Comment on lines +269 to +277
<RegionMultiselect
filterFn={(option) =>
buckets.some((bucket) => bucket.region === option.value)
}
onChange={setSelectedRegions}
showLabel={true}
sx={{ flex: 1 }}
values={selectedRegions}
/>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we just reuse the RegionMultiSelect that already exists in the codebase?

import { RegionMultiSelect } from 'src/components/RegionSelect/RegionMultiSelect';
Suggested change
<RegionMultiselect
filterFn={(option) =>
buckets.some((bucket) => bucket.region === option.value)
}
onChange={setSelectedRegions}
showLabel={true}
sx={{ flex: 1 }}
values={selectedRegions}
/>
<RegionMultiSelect
currentCapability="Object Storage"
fullWidth
isGeckoLAEnabled={false}
noMarginTop
onChange={(values) =>
setSelectedRegions(values.map((value) => ({ label: value, value })))
}
regions={availableStorageRegions.filter((r) =>
buckets.some((b) => b.region === r.id)
)}
selectedIds={selectedRegions.map(r => r.value)}
/>

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea, thank you for the comment.

return (
<Autocomplete
disabled={isFetching}
label={showLabel ? 'Region' : ''}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From my understanding, we always want a label even if we hide it. This allows us to keep the component accessable. The Autocomplete will handle hiding the label, no need to set it to an empty string

Suggested change
label={showLabel ? 'Region' : ''}
label="Region"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't need to display label on the Summary Page, I didn't find any other option to hide the label without modifying the Autocomplete component.

@dchyrva-akamai dchyrva-akamai force-pushed the feature/STORIF-310 branch 2 times, most recently from 8122e2c to db338d4 Compare March 24, 2026 09:24
@linode-gh-bot
Copy link
Collaborator

Cloud Manager UI test results

🔺 7 failing tests on test run #20 ↗︎

❌ Failing✅ Passing↪️ Skipped🕐 Duration
7 Failing884 Passing11 Skipped62m 38s

Details

Failing Tests
SpecTest
alerts-create.spec.tsCloud Manager Cypress Tests→Create flow when beta alerts enabled by region and feature flag » create flow after switching to beta alerts
alerts-create.spec.tsCloud Manager Cypress Tests→Create flow when beta alerts enabled by region and feature flag » can toggle from legacy to beta alerts and back to legacy
object-storage.e2e.spec.tsCloud Manager Cypress Tests→object storage end-to-end tests » can filter the list of buckets by region
object-storage.e2e.spec.tsCloud Manager Cypress Tests→object storage end-to-end tests » can filter the list of buckets by endpoint
object-storage.e2e.spec.tsCloud Manager Cypress Tests→object storage end-to-end tests » should filter list of endpoints when region is selected
search-images.spec.tsCloud Manager Cypress Tests→Search Images » creates two images and make sure they show up in the table and are searchable
lke-create.spec.tsCloud Manager Cypress Tests→LKE Cluster Creation with LKE-E→shows the LKE-E flow with the feature flag on » creates an LKE-E cluster with the account capability

Troubleshooting

Use this command to re-run the failing tests:

pnpm cy:run -s "cypress/e2e/core/linodes/alerts-create.spec.ts,cypress/e2e/core/objectStorage/object-storage.e2e.spec.ts,cypress/e2e/core/images/search-images.spec.ts,cypress/e2e/core/kubernetes/lke-create.spec.ts"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Object Storage deals with Object Storage

Projects

Status: Changes Requested

Development

Successfully merging this pull request may close these issues.

4 participants