From c61bace0e3f61e947be951bbb722c5b6eb3eab0d Mon Sep 17 00:00:00 2001 From: Dajahi Wiley Date: Tue, 7 Apr 2026 17:12:13 -0400 Subject: [PATCH 1/3] Remove filter in useAllImagesQuery() call in ImageSelectTable.tsx; minor adjustments in ImageSelectTableRow.tsx --- .../src/components/ImageSelect/ImageSelectTable.tsx | 2 -- .../src/components/ImageSelect/ImageSelectTableRow.tsx | 10 +++++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/manager/src/components/ImageSelect/ImageSelectTable.tsx b/packages/manager/src/components/ImageSelect/ImageSelectTable.tsx index 46c5456320c..20b4f51d69b 100644 --- a/packages/manager/src/components/ImageSelect/ImageSelectTable.tsx +++ b/packages/manager/src/components/ImageSelect/ImageSelectTable.tsx @@ -129,8 +129,6 @@ export const ImageSelectTable = (props: Props) => { {}, { ...combinedFilter, - is_public: false, - type: 'manual', } ); diff --git a/packages/manager/src/components/ImageSelect/ImageSelectTableRow.tsx b/packages/manager/src/components/ImageSelect/ImageSelectTableRow.tsx index 98dd251e9a4..74f43da90de 100644 --- a/packages/manager/src/components/ImageSelect/ImageSelectTableRow.tsx +++ b/packages/manager/src/components/ImageSelect/ImageSelectTableRow.tsx @@ -47,7 +47,7 @@ export const ImageSelectTableRow = (props: Props) => { id, image_sharing, label, - regions: imageRegions, + regions: _imageRegions, size, status, type, @@ -77,6 +77,8 @@ export const ImageSelectTableRow = (props: Props) => { return '—'; }; + const imageRegions = _imageRegions ?? []; // Failsafe for manual images whose `regions` property is null + const FormattedRegionList = () => ( {imageRegions.map((region: ImageRegion, idx) => { @@ -121,11 +123,13 @@ export const ImageSelectTableRow = (props: Props) => { 0 + imageRegions?.length > 0 ? pluralize('Region', 'Regions', imageRegions.length) : '—' } - tooltipText={} + tooltipText={ + imageRegions?.length > 0 ? : 'N/A' + } /> From e798a7d421b22cf291bdceee34e23b4fc436f44c Mon Sep 17 00:00:00 2001 From: Dajahi Wiley Date: Wed, 8 Apr 2026 13:56:31 -0400 Subject: [PATCH 2/3] Filtering based on StackScript if in Rebuild from StackScript flow --- .../src/components/ImageSelect/ImageSelectTable.tsx | 9 ++++++++- .../src/components/ImageSelect/ImageSelectTableRow.tsx | 2 +- .../Linodes/LinodesDetail/LinodeRebuild/Image.tsx | 1 + 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/manager/src/components/ImageSelect/ImageSelectTable.tsx b/packages/manager/src/components/ImageSelect/ImageSelectTable.tsx index 20b4f51d69b..86e224ffd9e 100644 --- a/packages/manager/src/components/ImageSelect/ImageSelectTable.tsx +++ b/packages/manager/src/components/ImageSelect/ImageSelectTable.tsx @@ -56,6 +56,10 @@ interface Props { * Error message to display above the table, e.g. from form validation. */ errorText?: string; + /** + * Determines whether additional filtering of images should be applied, typically if there is a StackScript selected. + */ + filter?: (image: Image) => boolean; /** * Callback fired when the user selects an image row. */ @@ -79,6 +83,7 @@ export const ImageSelectTable = (props: Props) => { const { currentRoute, errorText, + filter, onSelect, pendoIDs, queryParamsPrefix, @@ -121,7 +126,7 @@ export const ImageSelectTable = (props: Props) => { }); const { - data: imagesData, + data: _imagesData, error: imagesError, isFetching, isLoading, @@ -132,6 +137,8 @@ export const ImageSelectTable = (props: Props) => { } ); + const imagesData = filter ? _imagesData?.filter(filter) : _imagesData; + const pagination = usePaginationV2({ clientSidePaginationData: imagesData, currentRoute, diff --git a/packages/manager/src/components/ImageSelect/ImageSelectTableRow.tsx b/packages/manager/src/components/ImageSelect/ImageSelectTableRow.tsx index 74f43da90de..b87aba40b6e 100644 --- a/packages/manager/src/components/ImageSelect/ImageSelectTableRow.tsx +++ b/packages/manager/src/components/ImageSelect/ImageSelectTableRow.tsx @@ -123,7 +123,7 @@ export const ImageSelectTableRow = (props: Props) => { 0 + imageRegions.length > 0 ? pluralize('Region', 'Regions', imageRegions.length) : '—' } diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeRebuild/Image.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeRebuild/Image.tsx index 53b582e89c6..b356473981b 100644 --- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeRebuild/Image.tsx +++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeRebuild/Image.tsx @@ -48,6 +48,7 @@ export const Image = (props: Props) => { : '/linodes') as LinkProps['to'] } errorText={fieldState.error?.message} + filter={getImageSelectFilter(stackscript)} onSelect={(image) => field.onChange(image?.id ?? null)} pendoIDs={IMAGE_SELECT_TABLE_LINODE_REBUILD_PENDO_IDS} queryParamsPrefix="images" From 04f8760ef7639f1510db3c7b7bc93de67517e4df Mon Sep 17 00:00:00 2001 From: Dajahi Wiley Date: Wed, 8 Apr 2026 14:12:39 -0400 Subject: [PATCH 3/3] Added changeset: Private Image Sharing: include public images in images table in Linode Rebuild dialog --- .../.changeset/pr-13568-upcoming-features-1775671959206.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/manager/.changeset/pr-13568-upcoming-features-1775671959206.md diff --git a/packages/manager/.changeset/pr-13568-upcoming-features-1775671959206.md b/packages/manager/.changeset/pr-13568-upcoming-features-1775671959206.md new file mode 100644 index 00000000000..9296046d031 --- /dev/null +++ b/packages/manager/.changeset/pr-13568-upcoming-features-1775671959206.md @@ -0,0 +1,5 @@ +--- +"@linode/manager": Upcoming Features +--- + +Private Image Sharing: include public images in images table in Linode Rebuild dialog ([#13568](https://github.com/linode/manager/pull/13568))