diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2021-11-12 02:02:25 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2021-11-12 02:02:25 +0900 |
| commit | 0e4a111f81cceed275d9bec2695f6e401fb654d8 (patch) | |
| tree | 40874799472fa07416f17b50a398ac33b7771905 /packages/client/src/widgets/activity.vue | |
| parent | update deps (diff) | |
| download | misskey-0e4a111f81cceed275d9bec2695f6e401fb654d8.tar.gz misskey-0e4a111f81cceed275d9bec2695f6e401fb654d8.tar.bz2 misskey-0e4a111f81cceed275d9bec2695f6e401fb654d8.zip | |
refactoring
Resolve #7779
Diffstat (limited to 'packages/client/src/widgets/activity.vue')
| -rw-r--r-- | packages/client/src/widgets/activity.vue | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/packages/client/src/widgets/activity.vue b/packages/client/src/widgets/activity.vue new file mode 100644 index 0000000000..eaac1455ad --- /dev/null +++ b/packages/client/src/widgets/activity.vue @@ -0,0 +1,82 @@ +<template> +<MkContainer :show-header="props.showHeader" :naked="props.transparent"> + <template #header><i class="fas fa-chart-bar"></i>{{ $ts._widgets.activity }}</template> + <template #func><button @click="toggleView()" class="_button"><i class="fas fa-sort"></i></button></template> + + <div> + <MkLoading v-if="fetching"/> + <template v-else> + <XCalendar v-show="props.view === 0" :data="[].concat(activity)"/> + <XChart v-show="props.view === 1" :data="[].concat(activity)"/> + </template> + </div> +</MkContainer> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue'; +import MkContainer from '@/components/ui/container.vue'; +import define from './define'; +import XCalendar from './activity.calendar.vue'; +import XChart from './activity.chart.vue'; +import * as os from '@/os'; + +const widget = define({ + name: 'activity', + props: () => ({ + showHeader: { + type: 'boolean', + default: true, + }, + transparent: { + type: 'boolean', + default: false, + }, + view: { + type: 'number', + default: 0, + hidden: true, + }, + }) +}); + +export default defineComponent({ + extends: widget, + components: { + MkContainer, + XCalendar, + XChart, + }, + data() { + return { + fetching: true, + activity: null, + }; + }, + mounted() { + os.api('charts/user/notes', { + userId: this.$i.id, + span: 'day', + limit: 7 * 21 + }).then(activity => { + this.activity = activity.diffs.normal.map((_, i) => ({ + total: activity.diffs.normal[i] + activity.diffs.reply[i] + activity.diffs.renote[i], + notes: activity.diffs.normal[i], + replies: activity.diffs.reply[i], + renotes: activity.diffs.renote[i] + })); + this.fetching = false; + }); + }, + methods: { + toggleView() { + if (this.props.view === 1) { + this.props.view = 0; + } else { + this.props.view++; + } + this.save(); + } + } +}); +</script> |