From 5490d82e3bb2165086f758f59206136a88df6a12 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 11 Mar 2022 18:55:47 +0900 Subject: tweal c;iemy --- packages/client/src/components/chart.vue | 32 +++++++++++++++++++++++ packages/client/src/pages/user/index.activity.vue | 31 +++++++++++++++++++++- 2 files changed, 62 insertions(+), 1 deletion(-) (limited to 'packages/client/src') diff --git a/packages/client/src/components/chart.vue b/packages/client/src/components/chart.vue index 13ca60efa8..a7870de39d 100644 --- a/packages/client/src/components/chart.vue +++ b/packages/client/src/components/chart.vue @@ -795,6 +795,36 @@ export default defineComponent({ }; }; + const fetchPerUserFollowingChart = async (): Promise => { + const raw = await os.api('charts/user/following', { userId: props.args.user.id, limit: props.limit, span: props.span }); + return { + series: [{ + name: 'Local', + type: 'area', + data: format(raw.local.followings.total), + }, { + name: 'Remote', + type: 'area', + data: format(raw.remote.followings.total), + }], + }; + }; + + const fetchPerUserFollowersChart = async (): Promise => { + const raw = await os.api('charts/user/following', { userId: props.args.user.id, limit: props.limit, span: props.span }); + return { + series: [{ + name: 'Local', + type: 'area', + data: format(raw.local.followers.total), + }, { + name: 'Remote', + type: 'area', + data: format(raw.remote.followers.total), + }], + }; + }; + const fetchPerUserDriveChart = async (): Promise => { const raw = await os.api('charts/user/drive', { userId: props.args.user.id, limit: props.limit, span: props.span }); return { @@ -838,6 +868,8 @@ export default defineComponent({ case 'instance-drive-files-total': return fetchInstanceDriveFilesChart(true); case 'per-user-notes': return fetchPerUserNotesChart(); + case 'per-user-following': return fetchPerUserFollowingChart(); + case 'per-user-followers': return fetchPerUserFollowersChart(); case 'per-user-drive': return fetchPerUserDriveChart(); } }; diff --git a/packages/client/src/pages/user/index.activity.vue b/packages/client/src/pages/user/index.activity.vue index f64e9d5b60..aecd25d6b0 100644 --- a/packages/client/src/pages/user/index.activity.vue +++ b/packages/client/src/pages/user/index.activity.vue @@ -1,9 +1,14 @@ @@ -13,6 +18,8 @@ import { } from 'vue'; import * as misskey from 'misskey-js'; import MkContainer from '@/components/ui/container.vue'; import MkChart from '@/components/chart.vue'; +import * as os from '@/os'; +import { i18n } from '@/i18n'; const props = withDefaults(defineProps<{ user: misskey.entities.User; @@ -20,4 +27,26 @@ const props = withDefaults(defineProps<{ }>(), { limit: 50, }); + +let chartSrc = $ref('per-user-notes'); + +function showMenu(ev: MouseEvent) { + os.popupMenu([{ + text: i18n.ts.notes, + active: true, + action: () => { + chartSrc = 'per-user-notes'; + } + }/*, { + text: i18n.ts.following, + action: () => { + chartSrc = 'per-user-following'; + } + }, { + text: i18n.ts.followers, + action: () => { + chartSrc = 'per-user-followers'; + } + }*/], ev.currentTarget ?? ev.target); +} -- cgit v1.2.3-freya From fb355abbcf268d3fdedeb4ebe7c513d70dc066e5 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 12 Mar 2022 14:54:08 +0900 Subject: :art: --- packages/client/src/components/chart.vue | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'packages/client/src') diff --git a/packages/client/src/components/chart.vue b/packages/client/src/components/chart.vue index a7870de39d..cc1aa9c20a 100644 --- a/packages/client/src/components/chart.vue +++ b/packages/client/src/components/chart.vue @@ -71,7 +71,7 @@ const colors = { purple: '#e300db', orange: '#fe6919', lime: '#bde800', - cyan: '#00efef', + cyan: '#00e0e0', }; const colorSets = [colors.blue, colors.green, colors.yellow, colors.red, colors.purple]; const getColor = (i) => { @@ -127,7 +127,7 @@ export default defineComponent({ name: string; type: 'line' | 'area'; color?: string; - borderDash?: number[]; + dashed?: boolean; hidden?: boolean; data: { x: number; @@ -217,7 +217,7 @@ export default defineComponent({ pointRadius: 0, borderWidth: props.bar ? 0 : 2, borderColor: x.color ? x.color : getColor(i), - borderDash: x.borderDash || [], + borderDash: x.dashed ? [5, 5] : [], borderJoinStyle: 'round', borderRadius: props.bar ? 3 : undefined, backgroundColor: props.bar ? (x.color ? x.color : getColor(i)) : alpha(x.color ? x.color : getColor(i), 0.1), @@ -226,7 +226,7 @@ export default defineComponent({ axis: 'y', colors: { 0: alpha(x.color ? x.color : getColor(i), 0), - [maxes[i]]: alpha(x.color ? x.color : getColor(i), 0.175), + [maxes[i]]: alpha(x.color ? x.color : getColor(i), 0.2), }, }, }, @@ -403,16 +403,19 @@ export default defineComponent({ name: 'Pub & Sub', type: 'line', data: format(raw.pubsub), + dashed: true, color: colors.cyan, }, { name: 'Pub', type: 'line', data: format(raw.pub), + dashed: true, color: colors.purple, }, { name: 'Sub', type: 'line', data: format(raw.sub), + dashed: true, color: colors.orange, }], }; @@ -593,7 +596,7 @@ export default defineComponent({ series: [{ name: 'All', type: 'line', - borderDash: [5, 5], + dashed: true, data: format( sum( raw.local.incSize, @@ -628,7 +631,7 @@ export default defineComponent({ series: [{ name: 'All', type: 'line', - borderDash: [5, 5], + dashed: true, data: format( sum( raw.local.incCount, -- cgit v1.2.3-freya