Skip to content

feat: add server icon, edit link, and permanent tabs to plugin updater - #246

Merged
saboooor merged 1 commit into
feat/add-serverlistfrom
claude/plugin-updater-server-integration-wx34fi
Aug 3, 2026
Merged

feat: add server icon, edit link, and permanent tabs to plugin updater#246
saboooor merged 1 commit into
feat/add-serverlistfrom
claude/plugin-updater-server-integration-wx34fi

Conversation

@saboooor

@saboooor saboooor commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

Follow-up to #245 (already merged) — restores a few UI refinements from the pre-revert plugin-store work (fbe520b..71d1368) that never made it back in:

  • Icon in tab: getUserServers now pings each server via getServerStatus and returns its live favicon; tabs show that icon (or a Globe fallback) via the before-${tab} slot.
  • Permanent tabs: tabs backed by a real linked server (serverId set) get permanent: true in the Tabs values, hiding the delete button so a linked tab can't be accidentally removed. permanent is an existing, supported prop on the installed @luminescent/ui-qwik Tabs component.
  • External link to server: linked tabs get an ExternalLink button in the after-${tab} slot, opening that server's edit page.
  • Export button padding: lum-btn-p-2lum-btn-p-1, matching the rest of the toolbar row.

These were adapted rather than copied verbatim from history: the original reference commit imported PluginsStoreType/ServerType without type (the exact bug that got the whole feature reverted originally — see #245), and linked to a /dashboard/servers/:slug path that no longer exists. This version keeps the import type fix and points the external link at the current /serverlist/:slug/edit route instead.

Test plan

  • vp install && vp dev, open /resources/plugins while logged in with an owned Server List listing
  • Confirm the tab shows the server's favicon (or Globe if unreachable)
  • Confirm the linked tab has no delete ("x") button
  • Confirm the external-link button on the tab opens /serverlist/:slug/edit
  • Confirm the Export button's padding matches the other toolbar buttons

🤖 Generated with Claude Code

https://claude.ai/code/session_01CCYKYic3u8tJS2REWSZUnR


Generated by Claude Code

Restores a few UI refinements from the pre-revert plugin-store work
(fbe520b..71d1368) that never made it back in: each server tab shows its
live favicon (or a Globe fallback) fetched via getServerStatus, tabs
linked to a real Server List listing are marked permanent so they can't
be accidentally deleted, and an external-link button next to linked tabs
opens that server's edit page. Also tightens the export button's padding
to match the rest of the toolbar row.

The external link now points at /serverlist/:slug/edit (the current
server management route) rather than the old /dashboard/servers/:slug
path from before the server list feature settled on its current routes.
Copilot AI review requested due to automatic review settings August 3, 2026 16:50
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: a8b656f0-d4c5-411e-ad96-2ac83440e16a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@saboooor
saboooor merged commit 0331980 into feat/add-serverlist Aug 3, 2026
2 of 4 checks passed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Restores several UX refinements to the Plugin Updates page by enriching owned Server List tabs with live server icons, preventing accidental deletion of linked tabs, and adding a quick navigation link to manage the linked listing.

Changes:

  • getUserServers now resolves each owned listing’s live status (cached) and returns a favicon-derived icon for UI display.
  • Plugin tabs now render a per-tab icon (favicon or Globe fallback), mark linked tabs as permanent, and show an external-link button to /serverlist/:slug/edit.
  • Adjusts Export button padding to align with the rest of the toolbar.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
src/util/serverlist/actions.ts Enriches getUserServers results by fetching/caching live status and returning an icon field for each owned listing.
src/routes/resources/plugins/index.tsx Updates Tabs rendering to show server icons, make linked tabs non-deletable, add a manage-link button, and tweak Export button padding.
Suppressed comments (2)

src/routes/resources/plugins/index.tsx:354

  • This Globe fallback also uses the array index as its key, which can lead to incorrect DOM reuse when the tab list changes. Prefer a stable key based on the tab value/name.
              <Globe q:slot={`before-${k}`} key={i} size={14} class="shrink-0" />

src/routes/resources/plugins/index.tsx:359

  • The external-link button uses an index-based key; if tabs are reordered/removed this can cause the wrong link element to be reused. Use a stable key based on the tab name.
                    key={`link-${i}`}

return [
linked?.icon ? (
<img
key={i}
q:slot={`after-${k}`}
href={`/serverlist/${linked.slug}/edit`}
class="lum-btn lum-bg-transparent z-10 rounded-full p-0"
title={`Manage ${k} on serverlist`}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants