aboutsummaryrefslogtreecommitdiff
path: root/src/components/MainPanel.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/MainPanel.svelte')
-rw-r--r--src/components/MainPanel.svelte58
1 files changed, 50 insertions, 8 deletions
diff --git a/src/components/MainPanel.svelte b/src/components/MainPanel.svelte
index 5cef824..f9f0d74 100644
--- a/src/components/MainPanel.svelte
+++ b/src/components/MainPanel.svelte
@@ -1,6 +1,6 @@
<script lang="js">
import CardThumb from './CardThumb.svelte';
- import { deck, setDeck } from '../control/deck';
+ import { deck, setDeck, deckOps } from '../control/deck';
import {
parseYdk,
genYdk,
@@ -31,19 +31,60 @@
downloadStringAsFile('mydeck.ydk', deckString)
}
+ function copyDeck() {
+ let deckString = genYdk($deck);
+ navigator.clipboard.writeText(deckString)
+ .then(() => {
+ alert('YDK卡组码已复制到剪贴板');
+ })
+ .catch(err => {
+ alert("失败!");
+ });
+ }
+
function shareDeck() {
let url = window.location.href;
url = url.split('#')[0]
url = url + '#' + genYdke($deck);
navigator.clipboard.writeText(url)
.then(() => {
- alert('分享链接已复制到剪贴板')
+ alert('分享链接已复制到剪贴板');
})
.catch(err => {
alert("失败!");
});
}
+ function onDrop(to, event) {
+ event.preventDefault();
+ const data = JSON.parse(event.dataTransfer.getData('text'));
+ let from = data.area;
+ if (from === 'search') {
+ if (to === 'main') {
+ deckOps.add2main(data.id);
+ } else if (to === 'side') {
+ deckOps.add2side(data.id);
+ } else if (to === 'extra') {
+ deckOps.add2extra(data.id);
+ }
+ } else if (from === 'main') {
+ if (to == 'side') {
+ deckOps.main2side(data.id);
+ }
+ } else if (from === 'extra') {
+ if (to == 'side') {
+ deckOps.extra2side(data.id);
+ }
+ } else if (from === 'side') {
+ if (to == 'main') {
+ deckOps.side2main(data.id);
+ } else if (to == 'extra') {
+ deckOps.side2extra(data.id);
+ }
+ }
+ }
+
+
</script>
<input bind:this={fileInput} style="display:none;" onchange={loadDeck} type="file" class="file-input" accept=".ydk" />
@@ -52,35 +93,36 @@
<div class="control-bar">
<button class="btn" onclick={openDeck}>打开</button>
<button class="btn" onclick={saveDeck}>保存</button>
+ <button class="btn" onclick={copyDeck}>复制到剪贴板</button>
<button class="btn" onclick={shareDeck}>分享</button>
</div>
<div class="deck-section">
<div class="deck-group">
<h3>主卡组({$deck.main.length})</h3>
- <div class="card-grid main-deck">
+ <div role="region" ondragover={(e)=>e.preventDefault()} ondrop={(e)=>onDrop("main", e)} class="card-grid main-deck">
{#each $deck.main as card}
<div class="card-grid-thumb">
- <CardThumb id={card} />
+ <CardThumb id={card} area="main" />
</div>
{/each}
</div>
</div>
<div class="deck-group">
<h3>额外卡组({$deck.extra.length})</h3>
- <div class="card-grid extra-deck">
+ <div role="region" ondragover={(e)=>e.preventDefault()} ondrop={(e)=>onDrop("extra", e)} class="card-grid extra-deck">
{#each $deck.extra as card}
<div class="card-grid-thumb">
- <CardThumb id={card} />
+ <CardThumb id={card} area="extra" />
</div>
{/each}
</div>
</div>
<div class="deck-group">
<h3>副卡组({$deck.side.length})</h3>
- <div class="card-grid side-deck">
+ <div role="region" ondragover={(e)=>e.preventDefault()} ondrop={(e)=>onDrop("side", e)} class="card-grid side-deck">
{#each $deck.side as card}
<div class="card-grid-thumb">
- <CardThumb id={card} />
+ <CardThumb id={card} area="side" />
</div>
{/each}
</div>