feat: use app-level svgIconKey for app logos and improve tile contrast

- Add svgIconKey field to RemnawaveAppClient and RemnawaveApp types
- Render app logos from svgLibrary via app.svgIconKey on connection page
  chips with fallback to getAppIcon() by name
- Use app.svgIconKey for app icons on admin apps settings page
- Show featured indicator as amber dot matching original RemnaWave UI
- Increase inner tile background opacity from 30% to 50% on subscription
  page for better text readability
This commit is contained in:
c0mrade
2026-02-05 11:27:03 +03:00
parent a50dea9a3d
commit 65a671470d
5 changed files with 36 additions and 37 deletions

View File

@@ -221,7 +221,6 @@ function AppCard({
lang: string;
}) {
const [expanded, setExpanded] = useState(false);
const firstBlock = app.blocks?.[0];
return (
<div className="card overflow-hidden">
@@ -229,21 +228,9 @@ function AppCard({
onClick={() => setExpanded(!expanded)}
className="flex w-full items-center gap-4 p-4 text-left"
>
{/* Icon from first block */}
<div
className="flex h-10 w-10 items-center justify-center rounded-full"
style={
firstBlock?.svgIconColor
? {
backgroundColor: firstBlock.svgIconColor + '20',
color: firstBlock.svgIconColor,
}
: undefined
}
>
{renderSvgIcon(svgLibrary, firstBlock?.svgIconKey, firstBlock?.svgIconColor) || (
<AppsIcon />
)}
{/* App icon from svgLibrary */}
<div className="flex h-10 w-10 items-center justify-center rounded-xl bg-dark-700/50">
{renderSvgIcon(svgLibrary, app.svgIconKey) || <AppsIcon />}
</div>
{/* Name + badges */}