diff --git a/apps/web/src/lib/components/marketplace/PublishDeckModal.svelte b/apps/web/src/lib/components/marketplace/PublishDeckModal.svelte new file mode 100644 index 0000000..801c7e8 --- /dev/null +++ b/apps/web/src/lib/components/marketplace/PublishDeckModal.svelte @@ -0,0 +1,586 @@ + + + + + diff --git a/apps/web/src/routes/decks/[id]/+page.svelte b/apps/web/src/routes/decks/[id]/+page.svelte index 9af2a36..22cc2db 100644 --- a/apps/web/src/routes/decks/[id]/+page.svelte +++ b/apps/web/src/routes/decks/[id]/+page.svelte @@ -12,6 +12,7 @@ import { t, tn } from '$lib/i18n/index.svelte.ts'; import CardSurface from '$lib/components/CardSurface.svelte'; import DeckCategoryIcon from '$lib/components/DeckCategoryIcon.svelte'; + import PublishDeckModal from '$lib/components/marketplace/PublishDeckModal.svelte'; import { Image, CaretRight, DotsThree, PencilSimple, Trash } from '@mana/shared-icons'; import { marked } from 'marked'; @@ -26,6 +27,7 @@ let error = $state(null); let categoryOpen = $state(false); let openMenuId = $state(null); + let publishModalOpen = $state(false); function toggleMenu(cardId: string, e: MouseEvent) { e.preventDefault(); @@ -121,6 +123,14 @@ + {t('deck_detail.new_card')} + {#if dueCount > 0} {t('deck_detail.study_button')} ({t('study.due_count', { n: dueCount })}) @@ -265,6 +275,15 @@ {/each} {/if} + + {#if publishModalOpen && deck} + { publishModalOpen = false; }} + onPublished={(slug) => { publishModalOpen = false; goto(`/d/${slug}`); }} + /> + {/if} {/if}