fantasia-archive/src/pages/WelcomeScreen.vue

197 lines
4.6 KiB
Vue
Raw Normal View History

2021-01-31 02:43:13 +13:00
<template>
<q-page class="column items-center justify-center">
2021-03-04 13:27:07 +13:00
<!-- Import project dialog -->
<importProjectCheckDialog
:dialog-trigger="importProjectDialogTrigger"
@trigger-dialog-close="importProjectDialogClose"
/>
<!-- New project dialog -->
<newProjectCheckDialog
:dialog-trigger="newProjectDialogTrigger"
@trigger-dialog-close="newProjectDialogClose"
/>
2021-01-31 02:43:13 +13:00
<div class="col-12">
2021-03-19 14:54:44 +13:00
<h5 class="mainSubTitle">Welcome to </h5>
</div>
<div class="col-12">
<h2 class="mainTitle">Fantasia Archive</h2>
2021-01-31 02:43:13 +13:00
</div>
<div class="col-12 q-mb-lg">
<q-btn
v-if="projectExists"
color="primary"
size="md"
2021-03-18 10:26:08 +13:00
:outline="isDarkMode"
2021-01-31 02:43:13 +13:00
class="q-px-xl q-py-xs"
to="/project"
>
<div>Resume project </div>
</q-btn>
</div>
<div class="col-12 q-mb-lg">
2021-03-04 13:27:07 +13:00
<q-btn
2021-01-31 02:43:13 +13:00
color="primary"
size="md"
2021-03-18 10:26:08 +13:00
:outline="isDarkMode"
2021-01-31 02:43:13 +13:00
class="q-px-xl q-py-xs"
2021-03-04 13:27:07 +13:00
@click="newProjectAssignUID"
2021-01-31 02:43:13 +13:00
>
2021-03-04 13:27:07 +13:00
New Project
</q-btn>
2021-01-31 02:43:13 +13:00
</div>
2021-03-19 14:54:44 +13:00
<div class="col-12">
2021-01-31 02:43:13 +13:00
<q-btn
color="primary"
2021-03-18 10:26:08 +13:00
:outline="isDarkMode"
2021-01-31 02:43:13 +13:00
size="md"
class="q-px-xl q-py-xs"
2021-03-04 13:27:07 +13:00
@click="importProjectAssignUID()"
2021-01-31 02:43:13 +13:00
>
2021-03-04 13:27:07 +13:00
Import existing project
2021-01-31 02:43:13 +13:00
</q-btn>
</div>
2021-03-19 14:54:44 +13:00
<template v-if="!hideWelcomeScreenSocials">
<q-separator color="primary" horizonatal dark class="q-my-xl" style="opacity: 0.5; width: 400px;" />
<div class="col-12 q-mb-lg">
<div class="discordButton" @click="openDiscordInviteLink">
Join Fantasia Archive Discord!
</div>
</div>
<div class="col-12 q-mt-sm">
<div class="patreonButton" @click="openPatreonLink">
Support Fantasia Archive on Patreon!
</div>
</div>
</template>
2021-01-31 02:43:13 +13:00
</q-page>
</template>
<script lang="ts">
2021-03-18 10:26:08 +13:00
import { Component, Watch } from "vue-property-decorator"
2021-01-31 02:43:13 +13:00
import BaseClass from "src/BaseClass"
2021-03-04 13:27:07 +13:00
import importProjectCheckDialog from "src/components/dialogs/ImportProjectCheck.vue"
import newProjectCheckDialog from "src/components/dialogs/NewProjectCheck.vue"
2021-03-19 14:54:44 +13:00
import { shell } from "electron"
2021-01-31 02:43:13 +13:00
2021-03-04 13:27:07 +13:00
import { retrieveCurrentProjectName } from "src/scripts/projectManagement/projectManagent"
2021-02-26 14:50:46 +13:00
2021-01-31 02:43:13 +13:00
@Component({
2021-03-04 13:27:07 +13:00
components: {
importProjectCheckDialog,
newProjectCheckDialog
}
2021-01-31 02:43:13 +13:00
})
export default class WelcomeScreen extends BaseClass {
2021-03-18 10:26:08 +13:00
isDarkMode = false
2021-03-19 14:54:44 +13:00
hideWelcomeScreenSocials = false
2021-03-18 10:26:08 +13:00
@Watch("SGET_options", { immediate: true, deep: true })
onSettingsChange () {
const options = this.SGET_options
this.isDarkMode = options.darkMode
2021-03-19 14:54:44 +13:00
this.hideWelcomeScreenSocials = options.hideWelcomeScreenSocials
2021-03-18 10:26:08 +13:00
}
2021-01-31 02:43:13 +13:00
projectExists: undefined | string | boolean = false
newProjectName = ""
newProjectDialog = false
2021-03-04 13:27:07 +13:00
newProjectDialogTrigger: string | false = false
newProjectDialogClose () {
this.newProjectDialogTrigger = false
}
newProjectAssignUID () {
this.newProjectDialogTrigger = this.generateUID()
}
importProjectDialogTrigger: string | false = false
importProjectDialogClose () {
this.importProjectDialogTrigger = false
}
importProjectAssignUID () {
this.importProjectDialogTrigger = this.generateUID()
}
2021-02-09 15:21:48 +13:00
2021-01-31 02:43:13 +13:00
async created () {
2021-02-26 14:50:46 +13:00
this.projectExists = await retrieveCurrentProjectName()
2021-01-31 02:43:13 +13:00
}
2021-03-19 14:54:44 +13:00
openDiscordInviteLink () {
shell.openExternal("https://discord.gg/JQDBvsN9Te").catch(e => console.log(e))
}
openPatreonLink () {
shell.openExternal("https://www.patreon.com/elvanos").catch(e => console.log(e))
}
2021-01-31 02:43:13 +13:00
}
</script>
2021-03-19 14:54:44 +13:00
<style lang="scss">
.mainTitle {
color: var(--q-color-dark);
}
body.body--dark {
.mainTitle {
color: var(--q-color-primary);
}
}
</style>
<style scoped lang="scss">
.mainSubTitle {
margin-top: 0;
margin-bottom: 0;
opacity: 0.8;
}
.mainTitle {
position: relative;
margin-top: 10px;
font-weight: 500;
&::after {
content: '';
top: -25px;
right: -95px;
position: absolute;
height: 100px;
width: 90px;
background-image: url('../assets/appLogo.png');
background-repeat: no-repeat;
background-size: contain;
transform: scaleX(-1);
filter: drop-shadow(-1px 1px 2px var(--q-color-dark));
}
&::before {
content: '';
top: -25px;
left: -95px;
position: absolute;
height: 100px;
width: 90px;
background-image: url('../assets/appLogo.png');
background-repeat: no-repeat;
background-size: contain;
filter: drop-shadow(-1px 1px 2px var(--q-color-dark));
}
}
</style>