Skip to content

Commit be249c2

Browse files
[5.x] Improve addons listing (#10812)
Co-authored-by: Jack McDade <[email protected]>
1 parent 1eab47d commit be249c2

File tree

3 files changed

+41
-42
lines changed

3 files changed

+41
-42
lines changed

resources/js/components/AddonDetails.vue

Lines changed: 37 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2,48 +2,48 @@
22
<div>
33
<div class="flex items-center mb-6">
44
<h1 class="flex-1" v-text="addon.name" />
5-
<a :href="addon.url" target="_blank" class="btn rtl:ml-4 ltr:mr-4" v-text="__('View on Marketplace')" />
6-
<button v-if="addon.installed" class="btn" @click="showComposerInstructions" v-text="__('Uninstall')" />
7-
<button v-else class="btn btn-primary" @click="showComposerInstructions" v-text="__('Install')" />
5+
<a :href="addon.url" target="_blank" class="btn">
6+
<svg-icon name="light/external-link" class="w-3 h-3 rtl:ml-2 ltr:mr-2 shrink-0" />
7+
{{ __('View on Marketplace') }}
8+
</a>
89
</div>
9-
<confirmation-modal
10-
v-if="modalOpen"
11-
:cancellable="false"
12-
:button-text="__('OK')"
13-
@confirm="modalOpen = false"
14-
>
15-
<div class="prose">
16-
<template v-if="addon.installed">
17-
<p v-text="`${__('messages.addon_uninstall_command')}:`" />
18-
<code-block copyable :text="`composer remove ${package}`" />
19-
</template>
20-
<template v-else>
21-
<p v-text="`${__('messages.addon_install_command')}:`" />
22-
<code-block copyable :text="installCommand" />
23-
</template>
24-
<p v-html="link"></p>
10+
<div class="flex flex-col-reverse xl:grid xl:grid-cols-3 space-y-6 xl:space-y-0 gap-6">
11+
<div class="lg:col-span-2">
12+
<div class="card prose max-w-full p-6" v-html="description" />
2513
</div>
26-
</confirmation-modal>
27-
<div>
28-
<div class="card mb-6 flex items-center">
29-
<div class="flex-1 text-lg">
30-
<div class="little-heading p-0 mb-2 text-gray-700" v-text="__('Price')" />
31-
<div class="font-bold" v-text="priceRange" />
14+
<div class="xl:col-span-1 flex flex-col space-y-6">
15+
<div class="card flex flex-col space-y-6 p-6">
16+
<div class="flex-1 text-lg">
17+
<div class="little-heading p-0 mb-2 text-gray-700" v-text="__('Seller')" />
18+
<a :href="addon.seller.website" target="_blank" class="relative flex items-center">
19+
<img :src="addon.seller.avatar" :alt="addon.seller.name" class="rounded-full w-6 rtl:ml-2 ltr:mr-2">
20+
<span class="font-bold">{{ addon.seller.name }}</span>
21+
</a>
22+
</div>
23+
<div class="flex-1 text-lg">
24+
<div class="little-heading p-0 mb-2 text-gray-700" v-text="__('Price')" />
25+
<div class="font-bold" v-text="priceRange" />
26+
</div>
27+
<div class="flex-1 text-lg" v-if="downloads">
28+
<div class="little-heading p-0 mb-2 text-gray-700" v-text="__('Downloads')" />
29+
<div class="font-bold">{{ downloads }}</div>
30+
</div>
3231
</div>
33-
<div class="flex-1 text-lg">
34-
<div class="little-heading p-0 mb-2 text-gray-700" v-text="__('Seller')" />
35-
<a :href="addon.seller.website" class="relative flex items-center">
36-
<img :src="addon.seller.avatar" :alt="addon.seller.name" class="rounded-full w-6 rtl:ml-2 ltr:mr-2">
37-
<span class="font-bold">{{ addon.seller.name }}</span>
38-
</a>
39-
</div>
40-
<div class="flex-1 text-lg" v-if="downloads">
41-
<div class="little-heading p-0 mb-2 text-gray-700" v-text="__('Downloads')" />
42-
<div class="font-bold">{{ downloads }}</div>
32+
<div class="card p-6">
33+
<div class="prose">
34+
<template v-if="addon.installed">
35+
<p class="leading-snug" v-text="`${__('messages.addon_uninstall_command')}:`" />
36+
<code-block class="text-xs" copyable :text="`composer remove ${package}`" />
37+
</template>
38+
<template v-else>
39+
<p v-text="`${__('messages.addon_install_command')}:`" />
40+
<code-block copyable :text="installCommand" />
41+
</template>
42+
<p v-html="link"></p>
43+
</div>
4344
</div>
45+
<addon-editions v-if="addon.editions.length" :addon="addon" />
4446
</div>
45-
<addon-editions v-if="addon.editions.length" :addon="addon" />
46-
<div class="card content p-8" v-html="description" />
4747
</div>
4848
</div>
4949
</template>
@@ -121,10 +121,6 @@ import AddonEditions from './addons/Editions.vue';
121121
this.downloads = response.data.package.downloads.total;
122122
});
123123
},
124-
125-
showComposerInstructions() {
126-
this.modalOpen = true;
127-
},
128124
}
129125
}
130126
</script>

resources/views/addons/index.blade.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
@extends('statamic::layout')
44
@section('title', __('Addons'))
5+
@section('wrapper_class', 'max-w-3xl')
56

67
@section('content')
78

src/Marketplace/AddonsQuery.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@ public function get()
4141
$params = [
4242
'page' => $this->page,
4343
'search' => $this->search,
44-
'filter' => ['statamic' => '3,4'],
44+
'filter' => ['statamic' => '3,4,5'],
45+
'sort' => 'most-popular',
46+
'perPage' => 12,
4547
];
4648

4749
if ($this->installed) {

0 commit comments

Comments
 (0)