* wip * Update maps.ts * wip * wip * wip * wip * Update base.vue * wip * wip * wip * wip * Update link.vue * wip * wip * wip * wip * wip * wip * wip * wip * wip * Update privacy.vue * wip * wip * wip * wip * Update range.vue * wip * wip * wip * wip * Update profile.vue * wip * Update a.vue * Update index.vue * wip * Update sidebar.vue * wip * wip * Update account-info.vue * Update a.vue * wip * wip * Update sounds.vue * wip * wip * wip * wip * wip * wip * wip * wip * Update account-info.vue * Update account-info.vue * wip * wip * wip * Update d-persimmon.json5 * wip
		
			
				
	
	
		
			81 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
<template>
 | 
						|
<div class="rsqzvsbo _section" v-if="meta">
 | 
						|
	<div class="blocks">
 | 
						|
		<XBlock class="block" v-for="path in meta.pinnedPages" :initial-path="path" :key="path"/>
 | 
						|
	</div>
 | 
						|
</div>
 | 
						|
</template>
 | 
						|
 | 
						|
<script lang="ts">
 | 
						|
import { defineComponent } from 'vue';
 | 
						|
import { toUnicode } from 'punycode';
 | 
						|
import XSigninDialog from '@/components/signin-dialog.vue';
 | 
						|
import XSignupDialog from '@/components/signup-dialog.vue';
 | 
						|
import MkButton from '@/components/ui/button.vue';
 | 
						|
import XNotes from '@/components/notes.vue';
 | 
						|
import XBlock from './welcome.entrance.block.vue';
 | 
						|
import { host, instanceName } from '@/config';
 | 
						|
import * as os from '@/os';
 | 
						|
 | 
						|
export default defineComponent({
 | 
						|
	components: {
 | 
						|
		MkButton,
 | 
						|
		XNotes,
 | 
						|
		XBlock,
 | 
						|
	},
 | 
						|
 | 
						|
	data() {
 | 
						|
		return {
 | 
						|
			host: toUnicode(host),
 | 
						|
			instanceName,
 | 
						|
			meta: null,
 | 
						|
		};
 | 
						|
	},
 | 
						|
 | 
						|
	created() {
 | 
						|
		os.api('meta', { detail: true }).then(meta => {
 | 
						|
			this.meta = meta;
 | 
						|
		});
 | 
						|
 | 
						|
		os.api('stats').then(stats => {
 | 
						|
			this.stats = stats;
 | 
						|
		});
 | 
						|
	},
 | 
						|
 | 
						|
	methods: {
 | 
						|
		signin() {
 | 
						|
			os.popup(XSigninDialog, {
 | 
						|
				autoSet: true
 | 
						|
			}, {}, 'closed');
 | 
						|
		},
 | 
						|
 | 
						|
		signup() {
 | 
						|
			os.popup(XSignupDialog, {
 | 
						|
				autoSet: true
 | 
						|
			}, {}, 'closed');
 | 
						|
		}
 | 
						|
	}
 | 
						|
});
 | 
						|
</script>
 | 
						|
 | 
						|
<style lang="scss" scoped>
 | 
						|
.rsqzvsbo {
 | 
						|
	text-align: center;
 | 
						|
 | 
						|
	> .blocks {
 | 
						|
		display: grid;
 | 
						|
		grid-template-columns: repeat(auto-fit, minmax(500px, 1fr));
 | 
						|
		grid-gap: var(--margin);
 | 
						|
		text-align: left;
 | 
						|
 | 
						|
		> .block {
 | 
						|
			height: 600px;
 | 
						|
		}
 | 
						|
 | 
						|
		@media (max-width: 800px) {
 | 
						|
			grid-template-columns: 1fr;
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
</style>
 |