aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/components/MainPanel.svelte17
-rw-r--r--src/utils.js16
2 files changed, 27 insertions, 6 deletions
diff --git a/src/components/MainPanel.svelte b/src/components/MainPanel.svelte
index f5dcaf5..b5f5f2e 100644
--- a/src/components/MainPanel.svelte
+++ b/src/components/MainPanel.svelte
@@ -1,15 +1,15 @@
<script lang="js">
import CardThumb from './CardThumb.svelte';
import { deck, setDeck } from '../control/deck';
- import { parseYdk } from '../utils'
+ import { parseYdk, genYdk, downloadStringAsFile} from '../utils'
let fileInput;
- let openDeck = () => {
+ function openDeck() {
fileInput.click();
- };
+ }
- let loadDeck = (event) => {
+ function loadDeck(event) {
const file = event.target.files[0];
if (file) {
const reader = new FileReader();
@@ -19,7 +19,12 @@
};
reader.readAsText(file);
}
- };
+ }
+
+ function saveDeck() {
+ let deckString = genYdk($deck);
+ downloadStringAsFile('mydeck.ydk', deckString)
+ }
</script>
@@ -28,7 +33,7 @@
<div class="middle-panel">
<div class="control-bar">
<button class="btn" onclick={openDeck}>打开</button>
- <button class="btn">保存</button>
+ <button class="btn" onclick={saveDeck}>保存</button>
</div>
<div class="deck-section">
<div class="deck-group">
diff --git a/src/utils.js b/src/utils.js
index 05e519d..3176400 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -42,7 +42,23 @@ function genYdk(deck) {
return ydkContent;
}
+function downloadStringAsFile(filename, text) {
+ const blob = new Blob([text], { type: 'text/plain' });
+ const link = document.createElement('a');
+ link.href = URL.createObjectURL(blob);
+ link.download = filename;
+ document.body.appendChild(link);
+
+ link.click();
+
+ document.body.removeChild(link);
+ URL.revokeObjectURL(link.href);
+}
+
+
export {
parseYdk,
genYdk,
+ downloadStringAsFile,
};
+