fix: print and open-standalone icon-only, right-aligned in toolbar

This commit is contained in:
Agent Zero
2026-07-28 12:42:49 +02:00
parent 7194240a32
commit 65bb9c9866
2 changed files with 27 additions and 19 deletions
@@ -15,7 +15,7 @@ function ToolbarButton({ item }: { item: ToolbarItem }) {
title={item.label}
>
{item.icon && <span className="w-4 h-4 flex-shrink-0">{item.icon}</span>}
<span className="hidden sm:inline">{item.label}</span>
{!item.iconOnly && <span className="hidden sm:inline">{item.label}</span>}
</button>
);
}
@@ -214,26 +214,32 @@ export function PluginToolbar() {
groups[g].push(item);
}
const groupNames = Object.keys(groups);
const rightGroupNames = groupNames.filter((g) => g.startsWith('zz-right'));
const leftGroupNames = groupNames.filter((g) => !g.startsWith('zz-right'));
const renderGroup = (groupName: string, gi: number) => (
<React.Fragment key={groupName}>
{gi > 0 && <div className="w-px h-5 bg-secondary-200 mx-1" />}
<div className="flex items-center gap-1">
{groups[groupName].map((item) => {
if (item.type === 'search') return <ToolbarSearch key={item.id} item={item} />;
if (item.type === 'select') return <ToolbarSelect key={item.id} item={item} />;
if (item.type === 'dropdown') return <ToolbarDropdown key={item.id} item={item} />;
if (item.type === 'custom' && item.customComponent) return <React.Fragment key={item.id}>{item.customComponent}</React.Fragment>;
return <ToolbarButton key={item.id} item={item} />;
})}
</div>
</React.Fragment>
);
return (
<div
className="flex items-center gap-1 px-2 sm:px-3 py-1.5 bg-white border-b border-secondary-200 min-h-[43px] overflow-visible relative z-30"
data-testid="plugin-toolbar"
>
{groupNames.map((groupName, gi) => (
<React.Fragment key={groupName}>
{gi > 0 && <div className="w-px h-5 bg-secondary-200 mx-1" />}
<div className="flex items-center gap-1">
{groups[groupName].map((item) => {
if (item.type === 'search') return <ToolbarSearch key={item.id} item={item} />;
if (item.type === 'select') return <ToolbarSelect key={item.id} item={item} />;
if (item.type === 'dropdown') return <ToolbarDropdown key={item.id} item={item} />;
if (item.type === 'custom' && item.customComponent) return <React.Fragment key={item.id}>{item.customComponent}</React.Fragment>;
return <ToolbarButton key={item.id} item={item} />;
})}
</div>
</React.Fragment>
))}
{leftGroupNames.map((groupName, gi) => renderGroup(groupName, gi))}
{rightGroupNames.length > 0 && <div className="flex-1" />}
{rightGroupNames.map((groupName, gi) => renderGroup(groupName, gi))}
</div>
);
}