mirror of
https://github.com/tiny-craft/tiny-rdm.git
synced 2025-04-13 01:58:05 +08:00
81 lines
2.1 KiB
Vue
81 lines
2.1 KiB
Vue
<script setup>
|
|
import { computed } from 'vue'
|
|
import AddLink from '@/components/icons/AddLink.vue'
|
|
import useDialogStore from 'stores/dialog.js'
|
|
import { NButton, useThemeVars } from 'naive-ui'
|
|
import { BrowserOpenURL } from 'wailsjs/runtime/runtime.js'
|
|
import { find, includes, isEmpty } from 'lodash'
|
|
import usePreferencesStore from 'stores/preferences.js'
|
|
|
|
const themeVars = useThemeVars()
|
|
const dialogStore = useDialogStore()
|
|
const prefStore = usePreferencesStore()
|
|
|
|
const onOpenSponsor = (link) => {
|
|
BrowserOpenURL(link)
|
|
}
|
|
|
|
const sponsorAd = computed(() => {
|
|
try {
|
|
const content = localStorage.getItem('sponsor_ad')
|
|
const ads = JSON.parse(content)
|
|
const ad = find(ads, ({ region }) => {
|
|
return isEmpty(region) || includes(region, prefStore.currentLanguage)
|
|
})
|
|
return ad || null
|
|
} catch {
|
|
return null
|
|
}
|
|
})
|
|
</script>
|
|
|
|
<template>
|
|
<div class="content-container flex-box-v">
|
|
<!-- TODO: replace icon to app icon -->
|
|
<n-empty :description="$t('interface.empty_server_content')">
|
|
<template #extra>
|
|
<n-button :focusable="false" @click="dialogStore.openNewDialog()">
|
|
<template #icon>
|
|
<n-icon :component="AddLink" size="18" />
|
|
</template>
|
|
{{ $t('interface.new_conn') }}
|
|
</n-button>
|
|
</template>
|
|
</n-empty>
|
|
|
|
<n-button v-if="sponsorAd != null" class="sponsor-ad" style="" text @click="onOpenSponsor(sponsorAd.link)">
|
|
{{ sponsorAd.name }}
|
|
</n-button>
|
|
</div>
|
|
</template>
|
|
|
|
<style lang="scss" scoped>
|
|
@use '@/styles/content';
|
|
|
|
.content-container {
|
|
justify-content: center;
|
|
padding: 5px;
|
|
box-sizing: border-box;
|
|
|
|
& > .sponsor-ad {
|
|
text-align: center;
|
|
margin-top: 20px;
|
|
vertical-align: bottom;
|
|
color: v-bind('themeVars.textColor3');
|
|
}
|
|
}
|
|
|
|
.color-preset-item {
|
|
width: 24px;
|
|
height: 24px;
|
|
margin-right: 2px;
|
|
border: white 3px solid;
|
|
cursor: pointer;
|
|
|
|
&_selected,
|
|
&:hover {
|
|
border-color: #cdd0d6;
|
|
}
|
|
}
|
|
</style>
|