|
165 | 165 | @change="handleBannerUpload" |
166 | 166 | /> |
167 | 167 | <ElementsButton |
168 | | - @click="bannerInput?.click()" |
| 168 | + @click="modalOpen.uploadBanner = true" |
169 | 169 | :disabled="uploading" |
170 | 170 | > |
171 | 171 | <div class="flex items-center gap-1.5"> |
|
337 | 337 | </div> |
338 | 338 | </div> |
339 | 339 |
|
| 340 | + <ElementsModal |
| 341 | + :is-open="modalOpen.uploadBanner" |
| 342 | + :closable="true" |
| 343 | + title="Banner guidelines" |
| 344 | + @close="modalOpen.uploadBanner = false" |
| 345 | + > |
| 346 | + <template #default> |
| 347 | + <div class="space-y-4"> |
| 348 | + <ElementsInlinecard> |
| 349 | + If your extension fails to meet the quality guidelines for banners, |
| 350 | + we may replace the banner or unlist/reject your extension. |
| 351 | + </ElementsInlinecard> |
| 352 | + <div class="space-y-2"> |
| 353 | + <li class="ms-4"> |
| 354 | + <p> |
| 355 | + <b>AI-generated graphics are not allowed.</b> Avoid using any |
| 356 | + AI-generated content in your extension graphics. |
| 357 | + </p> |
| 358 | + </li> |
| 359 | + <li class="ms-4"> |
| 360 | + <p> |
| 361 | + <b>No plain screenshots.</b> Plain screenshots often add |
| 362 | + additional confusion to buyers and worsen the overal experience. |
| 363 | + Add screenshots to the extension's description instead. |
| 364 | + </p> |
| 365 | + </li> |
| 366 | + <li class="ms-4"> |
| 367 | + <p> |
| 368 | + <b>Anything is better than nothing.</b> Whether you use |
| 369 | + Microsoft Paint, Canva or Photoshop, just try to make a quick |
| 370 | + simple banner. Extensions with higher quality banners tend to |
| 371 | + get more attention. |
| 372 | + </p> |
| 373 | + </li> |
| 374 | + <li class="ms-4"> |
| 375 | + <p> |
| 376 | + Follow our |
| 377 | + <NuxtLink to="/legal/terms" class="text-link" |
| 378 | + >Terms of Service</NuxtLink |
| 379 | + > |
| 380 | + and |
| 381 | + <NuxtLink to="/legal/conduct" class="text-link" |
| 382 | + >Code of Conduct</NuxtLink |
| 383 | + >. |
| 384 | + </p> |
| 385 | + </li> |
| 386 | + </div> |
| 387 | + </div> |
| 388 | + </template> |
| 389 | + |
| 390 | + <template #footer> |
| 391 | + <ElementsButton |
| 392 | + label="Cancel" |
| 393 | + class="w-full md:w-auto" |
| 394 | + @click="modalOpen.uploadBanner = false" |
| 395 | + /> |
| 396 | + <ElementsButton |
| 397 | + label="Accept and upload" |
| 398 | + class="flex w-full flex-col items-center md:w-auto" |
| 399 | + :disabled="loading" |
| 400 | + @click="bannerInput?.click()" |
| 401 | + /> |
| 402 | + </template> |
| 403 | + </ElementsModal> |
| 404 | + |
340 | 405 | <ElementsModal |
341 | 406 | v-if="user?.admin" |
342 | 407 | :is-open="modalOpen.adminReject" |
@@ -447,6 +512,7 @@ const modalOpen = ref({ |
447 | 512 | adminReject: false, |
448 | 513 | platforms: false, |
449 | 514 | delete: false, |
| 515 | + uploadBanner: false, |
450 | 516 | }) |
451 | 517 | const form = ref<{ |
452 | 518 | identifier: string |
@@ -551,6 +617,7 @@ const handleBannerUpload = async (event: Event) => { |
551 | 617 | const file = (event.target as HTMLInputElement).files?.[0] |
552 | 618 | if (!file) return |
553 | 619 |
|
| 620 | + modalOpen.value.uploadBanner = false |
554 | 621 | uploading.value = true |
555 | 622 |
|
556 | 623 | try { |
|
0 commit comments