Address PR #1214 code review feedback

- Fix template-expanded URIs not rendering: construct synthetic Resource
  from readState.uri when the URI is absent from the resources list
- Fix non-image blob content rendering raw base64: show placeholder
  message; also handle audio blobs properly
- Hide mimeType display when multiple content items to avoid confusion
- Rename ResourceControls selectedTemplate → selectedTemplateUri for
  consistency with selectedUri and selectedResourceUri

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
cliffhall 2026-04-18 18:54:48 -04:00
commit 8c9aac6df1

View file

@ -96,6 +96,14 @@ export function ResourcesScreen({
? templates.find((t) => t.uriTemplate === selectedTemplateUri)
: undefined;
// For template-expanded URIs that don't appear in the resources list,
// construct a synthetic Resource so the preview panel can render.
const readResource: Resource | undefined =
selectedResource ??
(readState?.uri && readState.uri === selectedResourceUri
? { name: readState.uri, uri: readState.uri }
: undefined);
function renderReadState() {
if (!readState) return null;
@ -120,17 +128,17 @@ export function ResourcesScreen({
);
}
if (readState.result && selectedResource) {
if (readState.result && readResource) {
return (
<DetailCard>
<ResourcePreviewPanel
resource={selectedResource}
resource={readResource}
contents={readState.result.contents}
lastUpdated={readState.lastUpdated}
isSubscribed={readState.isSubscribed ?? false}
onRefresh={() => onReadResource(selectedResource.uri)}
onSubscribe={() => onSubscribeResource(selectedResource.uri)}
onUnsubscribe={() => onUnsubscribeResource(selectedResource.uri)}
onRefresh={() => onReadResource(readResource.uri)}
onSubscribe={() => onSubscribeResource(readResource.uri)}
onUnsubscribe={() => onUnsubscribeResource(readResource.uri)}
/>
</DetailCard>
);
@ -148,7 +156,7 @@ export function ResourcesScreen({
templates={templates}
subscriptions={subscriptions}
selectedUri={selectedResourceUri}
selectedTemplate={selectedTemplateUri}
selectedTemplateUri={selectedTemplateUri}
listChanged={listChanged}
onRefreshList={onRefreshList}
onSelectUri={onSelectUri}