thedesk/src/components/Welcome.vue

61 lines
1.7 KiB
Vue
Raw Normal View History

2019-04-10 04:10:24 +09:00
<template>
2019-04-22 23:59:37 +09:00
<div id="welcome">
<img alt="Vue logo" src="@/assets/logo.png">
<h1>Welcome to TheDesk</h1>
2019-04-25 00:52:40 +09:00
<BaseButton @click.native="status = 'login'" class="primary fill">{{ loginButton }}</BaseButton>
<BaseButton @click.native="status = 'public_timeline'" class="primary">{{ publicTLButton }}</BaseButton>
<BaseOverlay
v-show="status !== 'welcome'"
@close="status = 'welcome'"
:disableClose="status === 'select_timeline'"
:title="status === 'login'
? loginButton
: status === 'public_timeline'
? publicTLButton
: status === 'select_timeline'
? selectTimeline : ''"
>
<Login v-if="status === 'login'" @login-complete="loggedIn"/>
<PublicTimeline v-else-if="status === 'public_timeline'"/>
<Timeline v-else-if="status === 'select_timeline'"/>
</BaseOverlay>
2019-04-10 04:10:24 +09:00
</div>
</template>
<script lang="ts">
import { Component, Vue } from 'vue-property-decorator'
import Login from './Preferences/AccountAuth.vue'
2019-04-27 06:33:15 +09:00
import Timeline from './AddColumn/UserTimeline.vue'
2019-04-26 23:36:39 +09:00
import PublicTimeline from './AddColumn/PublicTimeline.vue'
type Status = 'welcome' | 'login' | 'public_timeline' | 'select_timeline'
2019-04-10 04:10:24 +09:00
@Component({
components: {
2019-04-25 00:52:40 +09:00
Login,
2019-04-26 23:36:39 +09:00
Timeline,
PublicTimeline,
}
})
2019-04-22 23:59:37 +09:00
export default class Welcome extends Vue {
public status: Status = 'welcome'
public loginButton: string = 'Login'
public publicTLButton: string = 'Streaming Public Timeline'
public selectTimeline: string = 'Select Timeline'
public loggedIn() {
this.status = 'select_timeline'
}
2019-04-22 23:59:37 +09:00
}
</script>
2019-04-22 23:59:37 +09:00
<style lang="postcss">
#welcome {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 100%;
2019-04-22 23:59:37 +09:00
}
</style>