diff --git a/src/extensions/kinemage/ui.tsx b/src/extensions/kinemage/ui.tsx index 02cae2c13..74e85bfa8 100644 --- a/src/extensions/kinemage/ui.tsx +++ b/src/extensions/kinemage/ui.tsx @@ -148,39 +148,63 @@ export class KinemageControls extends CollapsableControls<{}, KinemageControlSta renderControls() { const kins = this.getKinemageList(); - if (kins.length === 0) return
No Kinemage data
; + if (kins.length === 0) return
No Kinemage data
; const blocks: React.ReactNode[] = []; for (const { kinData, ref } of kins) { const title = kinData.pdbfile || nameFromString(kinData.caption) || 'Kinemage'; const kinBlock: React.ReactNode[] = []; - kinBlock.push(
{title}
); + + // Title + kinBlock.push( +
+ {title} +
+ ); // views - for (const [viewKey, viewObj] of Object.entries(kinData.viewDict || {})) { - const label = viewObj.name || `View ${viewKey}`; - kinBlock.push( -
- - {label} -
- ); + const viewEntries = Object.entries(kinData.viewDict || {}); + if (viewEntries.length > 0) { + for (const [viewKey, viewObj] of viewEntries) { + const label = `View ${viewObj.name || `View ${viewKey}`}`; + kinBlock.push( +
+ +
+ ); + } } // animate if (kinData.groupsAnimate && kinData.groupsAnimate.length > 0) { kinBlock.push( -
- - Animate +
+
); } if (kinData.groupsAnimate2 && kinData.groupsAnimate2.length > 0) { kinBlock.push( -
- - Animate2 +
+
); } @@ -193,10 +217,15 @@ export class KinemageControls extends CollapsableControls<{}, KinemageControlSta const isAnimate = kinData.groupsAnimate?.includes(groupKey) || kinData.groupsAnimate2?.includes(groupKey); const label = isAnimate ? `* ${groupKey}` : groupKey; kinBlock.push( -
-