mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-18 03:16:01 +00:00
60 lines
1.3 KiB
Svelte
60 lines
1.3 KiB
Svelte
<script lang="ts">
|
|
import openNewTab from '../utility/openNewTab';
|
|
|
|
import { extractPluginAuthor, extractPluginIcon } from './manifestExtractors';
|
|
|
|
export let plugins: any[];
|
|
|
|
function openPlugin(packageManifest) {
|
|
openNewTab({
|
|
title: packageManifest.name,
|
|
icon: 'icon plugin',
|
|
tabComponent: 'PluginTab',
|
|
props: {
|
|
packageName: packageManifest.name,
|
|
},
|
|
});
|
|
}
|
|
</script>
|
|
|
|
{#each plugins || [] as packageManifest (packageManifest.name)}
|
|
<div class="wrapper" on:click={() => openPlugin(packageManifest)}>
|
|
<img class="icon" src={extractPluginIcon(packageManifest)} />
|
|
<div class="ml-2">
|
|
<div class="flex">
|
|
<div class="bold">{packageManifest.name}</div>
|
|
{#if packageManifest.isPackaged}
|
|
<div class="ml-1 builtin">(builtin)</div>
|
|
{:else}
|
|
<div class="ml-1">{packageManifest.version}</div>
|
|
{/if}
|
|
</div>
|
|
<div>
|
|
{packageManifest.description}
|
|
</div>
|
|
<div class="bold">
|
|
{extractPluginAuthor(packageManifest)}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{/each}
|
|
|
|
<style>
|
|
.wrapper {
|
|
margin: 1px 3px 10px 5px;
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
.wrapper:hover {
|
|
background-color: var(--theme-bg-selected);
|
|
}
|
|
.icon {
|
|
width: 50px;
|
|
height: 50px;
|
|
}
|
|
|
|
.builtin {
|
|
color: var(--theme-font-3);
|
|
}
|
|
</style>
|