diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2022-12-27 14:36:33 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2022-12-27 14:36:33 +0900 |
| commit | 9384f5399da39e53855beb8e7f8ded1aa56bf72e (patch) | |
| tree | ce5959571a981b9c4047da3c7b3fd080aa44222c /packages/client/src/widgets/trends.vue | |
| parent | wip: retention for dashboard (diff) | |
| download | misskey-9384f5399da39e53855beb8e7f8ded1aa56bf72e.tar.gz misskey-9384f5399da39e53855beb8e7f8ded1aa56bf72e.tar.bz2 misskey-9384f5399da39e53855beb8e7f8ded1aa56bf72e.zip | |
rename: client -> frontend
Diffstat (limited to 'packages/client/src/widgets/trends.vue')
| -rw-r--r-- | packages/client/src/widgets/trends.vue | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/packages/client/src/widgets/trends.vue b/packages/client/src/widgets/trends.vue deleted file mode 100644 index 02eec0431e..0000000000 --- a/packages/client/src/widgets/trends.vue +++ /dev/null @@ -1,120 +0,0 @@ -<template> -<MkContainer :show-header="widgetProps.showHeader" class="mkw-trends"> - <template #header><i class="ti ti-hash"></i>{{ i18n.ts._widgets.trends }}</template> - - <div class="wbrkwala"> - <MkLoading v-if="fetching"/> - <transition-group v-else tag="div" :name="$store.state.animation ? 'chart' : ''" class="tags"> - <div v-for="stat in stats" :key="stat.tag"> - <div class="tag"> - <MkA class="a" :to="`/tags/${ encodeURIComponent(stat.tag) }`" :title="stat.tag">#{{ stat.tag }}</MkA> - <p>{{ $t('nUsersMentioned', { n: stat.usersCount }) }}</p> - </div> - <MkMiniChart class="chart" :src="stat.chart"/> - </div> - </transition-group> - </div> -</MkContainer> -</template> - -<script lang="ts" setup> -import { onMounted, onUnmounted, ref } from 'vue'; -import { useWidgetPropsManager, Widget, WidgetComponentEmits, WidgetComponentExpose, WidgetComponentProps } from './widget'; -import { GetFormResultType } from '@/scripts/form'; -import MkContainer from '@/components/MkContainer.vue'; -import MkMiniChart from '@/components/MkMiniChart.vue'; -import * as os from '@/os'; -import { useInterval } from '@/scripts/use-interval'; -import { i18n } from '@/i18n'; - -const name = 'hashtags'; - -const widgetPropsDef = { - showHeader: { - type: 'boolean' as const, - default: true, - }, -}; - -type WidgetProps = GetFormResultType<typeof widgetPropsDef>; - -// 現時点ではvueの制限によりimportしたtypeをジェネリックに渡せない -//const props = defineProps<WidgetComponentProps<WidgetProps>>(); -//const emit = defineEmits<WidgetComponentEmits<WidgetProps>>(); -const props = defineProps<{ widget?: Widget<WidgetProps>; }>(); -const emit = defineEmits<{ (ev: 'updateProps', props: WidgetProps); }>(); - -const { widgetProps, configure } = useWidgetPropsManager(name, - widgetPropsDef, - props, - emit, -); - -const stats = ref([]); -const fetching = ref(true); - -const fetch = () => { - os.api('hashtags/trend').then(res => { - stats.value = res; - fetching.value = false; - }); -}; - -useInterval(fetch, 1000 * 60, { - immediate: true, - afterMounted: true, -}); - -defineExpose<WidgetComponentExpose>({ - name, - configure, - id: props.widget ? props.widget.id : null, -}); -</script> - -<style lang="scss" scoped> -.wbrkwala { - height: (62px + 1px) + (62px + 1px) + (62px + 1px) + (62px + 1px) + 62px; - overflow: hidden; - - > .tags { - .chart-move { - transition: transform 1s ease; - } - - > div { - display: flex; - align-items: center; - padding: 14px 16px; - border-bottom: solid 0.5px var(--divider); - - > .tag { - flex: 1; - overflow: hidden; - font-size: 0.9em; - color: var(--fg); - - > .a { - display: block; - width: 100%; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - line-height: 18px; - } - - > p { - margin: 0; - font-size: 75%; - opacity: 0.7; - line-height: 16px; - } - } - - > .chart { - height: 30px; - } - } - } -} -</style> |