@@ -16,12 +16,33 @@ import WeekOnWeek from "./components/WeekOnWeek"
1616import TopKVisit from "./components/TopKVisit"
1717import CalendarHeatmapChart from "./components/CalendarHeatmapChart"
1818import { useRouter } from "vue-router"
19+ import { useRequest } from "@app/hooks/useRequest"
20+ import metaService from "@service/meta-service"
21+ import { t } from "@app/locale"
22+ import { WEBSTORE_PAGE } from "@util/constant/url"
23+ import { getDayLength } from "@util/time"
24+
25+ const INSTALL_DAY_MIN_LIMIT = 30
1926
2027const _default = defineComponent ( ( ) => {
2128 const router = useRouter ( )
2229 const jump2Help = ( ) => router . push ( { path : "/other/help" } )
2330 const isNotEnOrZhCn = locale !== "en" && locale !== "zh_CN"
2431 const showHelp = isTranslatingLocale ( ) || isNotEnOrZhCn
32+ const { data : showRate , refresh } = useRequest ( async ( ) => {
33+ if ( ! WEBSTORE_PAGE ) return false
34+ const installTime = await metaService . getInstallTime ( )
35+ if ( ! installTime ) return false
36+ const installedDays = getDayLength ( installTime , new Date ( ) )
37+ if ( installedDays < INSTALL_DAY_MIN_LIMIT ) return false
38+ const rateOpen = await metaService . getFlag ( "rateOpen" )
39+ return ! rateOpen
40+ } )
41+
42+ const handleRate = async ( ) => {
43+ await metaService . saveFlag ( "rateOpen" )
44+ refresh ( )
45+ }
2546
2647 return ( ) => (
2748 < ContentContainer >
@@ -41,8 +62,14 @@ const _default = defineComponent(() => {
4162 < CalendarHeatmapChart />
4263 </ DashboardCard >
4364 </ ElRow >
44- < ElRow v-show = { showHelp } >
45- < span class = "help-us-link" onClick = { jump2Help } >
65+ < ElRow v-show = { showHelp || showRate . value } >
66+ < span class = "help-us-link" v-show = { showRate . value } >
67+ 🌟 { t ( msg => msg . about . text . greet ) }  
68+ < a href = { WEBSTORE_PAGE } target = "_blank" onClick = { handleRate } >
69+ { t ( msg => msg . about . text . rate ) }
70+ </ a >
71+ </ span >
72+ < span class = "help-us-link" v-show = { ! showRate . value } onClick = { jump2Help } >
4673 💡 Help us translate this extension/addon into your native language!
4774 </ span >
4875 </ ElRow >
0 commit comments