diff --git a/.gitignore b/.gitignore index 623bf3e..2b6a4a1 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,7 @@ pnpm-debug.log* # Custom src/assets/deck_of_cards src/assets/avatars +src/assets/navbar # terraform *.terraform diff --git a/commands.md b/commands.md index 986c39d..a29d66c 100644 --- a/commands.md +++ b/commands.md @@ -7,3 +7,9 @@ - Sort lines by natural - Add `"id": ""` - Generate GUID and remove the tails + +## Deploy to S3 + + + +`s3deploy -source=./dist -region=eu-west-1 -bucket=prod-onmyojideckbuilder-origin -distribution-id=E8811LTEVQX71` diff --git a/src/App.vue b/src/App.vue index 8b547f9..e41418d 100644 --- a/src/App.vue +++ b/src/App.vue @@ -8,7 +8,7 @@ app :expand-on-hover="true" overflow - color="#070042" + color="#272935" > - {{ item.icon }} + + - - {{ item.title }} + + {{ + item.title + }} - + - Onmyoji Deck Builder + Onmyoji Deck Builder - + + + + - +
@@ -104,7 +118,7 @@ label @click="data.select" @click:close="remove_decks(index, data.index)" - color="#04002E" + color="#C0B094" >{{ data.item.name }} @@ -118,7 +132,7 @@ v-for="i in selected_shikigami_decks[index][index]" :key="i.id" width="12.3%" - color="#070042" + color="#171D29" > + @@ -144,6 +161,8 @@ export default { selected_shikigami_data: [], selected_shikigami_decks: [{ 0: [] }, { 1: [] }, { 2: [] }, { 3: [] }], shikigami: shikigami, + deck_title: "", + deck_description: "", }), methods: { get_chosen_shikigami_data: function (shikigami_name) { @@ -201,8 +220,97 @@ export default { console.log(this.selected_shikigami_decks[shiki_index].shiki_index); console.log(shiki_index, card_index); }, + construct_url: function () { + const saved_selected_shikigami_names = btoa( + JSON.stringify(this.selected_shikigami_names) + ); + const saved_selected_shikigami_decks = btoa( + JSON.stringify(this.selected_shikigami_decks) + ); + const saved_deck_title = btoa(JSON.stringify(this.deck_title)); + const saved_deck_description = btoa( + JSON.stringify(this.deck_description) + ); + const url = `?deck_title=${saved_deck_title}&deck_description=${saved_deck_description}&selected_shikigami_names=${saved_selected_shikigami_names}&selected_shikigami_decks=${saved_selected_shikigami_decks}`; + return url; + }, }, computed: {}, + mounted() { + if (this.$route.query.selected_shikigami_names) { + const saved_selected_shikigami_names = JSON.parse( + atob(this.$route.query.selected_shikigami_names) + ); + + if (typeof saved_selected_shikigami_names != "object") { + this.selected_shikigami_names = []; + } else { + this.selected_shikigami_names = []; + for (let i = 0; i < saved_selected_shikigami_names.length; i++) { + this.selected_shikigami_names.push(saved_selected_shikigami_names[i]); + } + } + } else { + this.selected_shikigami_names = []; + } + + if (this.$route.query.selected_shikigami_decks) { + const saved_selected_shikigami_decks = JSON.parse( + atob(this.$route.query.selected_shikigami_decks) + ); + + if (typeof saved_selected_shikigami_decks != "object") { + this.selected_shikigami_decks = [ + { 0: [] }, + { 1: [] }, + { 2: [] }, + { 3: [] }, + ]; + } else { + this.selected_shikigami_decks = []; + for (let i = 0; i < saved_selected_shikigami_decks.length; i++) { + this.selected_shikigami_decks.push(saved_selected_shikigami_decks[i]); + } + } + } else { + this.selected_shikigami_decks = [ + { 0: [] }, + { 1: [] }, + { 2: [] }, + { 3: [] }, + ]; + } + + if (this.$route.query.deck_title) { + const saved_deck_title = JSON.parse(atob(this.$route.query.deck_title)); + + if (typeof saved_deck_title != "string") { + this.deck_title = ""; + } else { + this.deck_title = ""; + for (let i = 0; i < saved_deck_title.length; i++) { + this.deck_title = saved_deck_title; + } + } + } else { + this.deck_title = ""; + } + + if (this.$route.query.deck_description) { + const saved_deck_description = JSON.parse(atob(this.$route.query.deck_description)); + + if (typeof saved_deck_description != "string") { + this.deck_description = ""; + } else { + this.deck_description = ""; + for (let i = 0; i < saved_deck_description.length; i++) { + this.deck_description = saved_deck_description; + } + } + } else { + this.deck_description = ""; + } + }, watch: { selected_shikigami_names: function () { this.selected_shikigami_data = []; @@ -230,13 +338,31 @@ export default { .deck-card:hover { position: relative; - animation: scaleMe 500ms ease-in-out 0s forwards; + animation: card-zoom 500ms ease-in-out 0s forwards; z-index: 100; } -@keyframes scaleMe { +@keyframes card-zoom { 100% { transform: scale(1.25); } } + +.v-textarea textarea { + padding: 50px 0px 0px 0px !important; +} + +.user-deck-title { + font-size: 50px !important; + // margin-top: 50px !important; + // margin-bottom: -50px !important; +} + + + diff --git a/src/views/Home.vue b/src/views/Home.vue index e778dbb..58740bd 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -3,7 +3,7 @@ -

Onymoji Deck Builder

+

Onmyoji Deck Builder

-

Build and share decks for Onmyoji TCG.

- Coming Soon +

Build and share decks.

+ Get started