Plugin detail now opens with the design's marketplace card: a 4/3 brand-gradient cover plus install/secondary buttons plus a permissions list with risk badges on the left, and a category overline plus serif Newsreader title plus description plus a 4-up real-data stat grid (permissions, high-risk, contributes, signature) plus a "What it adds to ELY" contributions list on the right. Every value comes from PluginManifest — no fabricated ratings, install counts, or feature copy. Internal: chrome::plugin_detail_view holds the layout, and chrome::plugin_labels owns the permission scope labels and contribution copy so plugin_detail_view stays under 500 lines. The internal_pages/plugin_details.rs shim only handles route parsing and the missing-plugin fallback.
58 lines
3.4 KiB
Rust
58 lines
3.4 KiB
Rust
use ely_domain::{PluginContributionPoint, PluginPermission};
|
|
|
|
pub(crate) fn permission_scope_label(permission: &PluginPermission) -> &'static str {
|
|
match permission {
|
|
PluginPermission::TabsRead => "Reads tab metadata.",
|
|
PluginPermission::TabsWrite => "Creates, moves, or closes tabs.",
|
|
PluginPermission::SpacesRead => "Reads Space metadata.",
|
|
PluginPermission::SpacesWrite => "Creates or changes Spaces.",
|
|
PluginPermission::BookmarksRead => "Reads bookmarks.",
|
|
PluginPermission::BookmarksWrite => "Writes bookmarks.",
|
|
PluginPermission::HistoryRead => "Reads browsing history.",
|
|
PluginPermission::DownloadsRead => "Reads download entries.",
|
|
PluginPermission::DownloadsWrite => "Controls downloads.",
|
|
PluginPermission::PageMetadata => "Reads active page metadata.",
|
|
PluginPermission::PageScreenshot => "Captures page screenshots.",
|
|
PluginPermission::PageScript => "Runs scoped page scripts.",
|
|
PluginPermission::ClipboardRead => "Reads clipboard content.",
|
|
PluginPermission::ClipboardWrite => "Writes clipboard content.",
|
|
PluginPermission::FilesystemRead => "Reads user-selected files.",
|
|
PluginPermission::FilesystemWrite => "Writes user-selected files.",
|
|
PluginPermission::NetworkFetch => "Performs plugin network requests.",
|
|
PluginPermission::SettingsRead => "Reads plugin settings.",
|
|
PluginPermission::SettingsWrite => "Writes plugin settings.",
|
|
PluginPermission::SyncPlugin => "Syncs plugin configuration.",
|
|
PluginPermission::UiPanel => "Registers sidebar panels.",
|
|
PluginPermission::UiCommand => "Registers command bar actions.",
|
|
PluginPermission::UiContextMenu => "Registers context menu actions.",
|
|
}
|
|
}
|
|
|
|
pub(crate) fn contribution_title(contribution: &PluginContributionPoint) -> &'static str {
|
|
match contribution {
|
|
PluginContributionPoint::CommandBarCommand => "Command bar action",
|
|
PluginContributionPoint::TabContextMenu => "Tab context menu",
|
|
PluginContributionPoint::PageContextMenu => "Page context menu",
|
|
PluginContributionPoint::SidebarPanel => "Sidebar panel",
|
|
PluginContributionPoint::SettingsPage => "Settings page",
|
|
PluginContributionPoint::StatusBarIndicator => "Status bar indicator",
|
|
PluginContributionPoint::DownloadAction => "Download action",
|
|
PluginContributionPoint::BookmarkAction => "Bookmark action",
|
|
PluginContributionPoint::ReadingModeExporter => "Reading mode exporter",
|
|
}
|
|
}
|
|
|
|
pub(crate) fn contribution_detail(contribution: &PluginContributionPoint) -> &'static str {
|
|
match contribution {
|
|
PluginContributionPoint::CommandBarCommand => "Adds entries to the ⌘K command switcher.",
|
|
PluginContributionPoint::TabContextMenu => "Adds tab right-click actions.",
|
|
PluginContributionPoint::PageContextMenu => "Adds page right-click actions.",
|
|
PluginContributionPoint::SidebarPanel => "Registers a custom sidebar panel.",
|
|
PluginContributionPoint::SettingsPage => "Registers a settings page route.",
|
|
PluginContributionPoint::StatusBarIndicator => "Renders an indicator in the status bar.",
|
|
PluginContributionPoint::DownloadAction => "Adds actions to download entries.",
|
|
PluginContributionPoint::BookmarkAction => "Adds actions to bookmarks.",
|
|
PluginContributionPoint::ReadingModeExporter => "Exports reading mode content elsewhere.",
|
|
}
|
|
}
|