From 823ef5244d61eef11ebffaaed449b1a50864d11c Mon Sep 17 00:00:00 2001 From: laixingyou Date: Fri, 24 Nov 2023 16:38:32 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat=20=EF=BC=9Arefactor=20report=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: laixingyou --- apps/web/i18n | 2 +- apps/web/src/common/components/BaseCard.tsx | 20 +- apps/web/src/common/components/Tab.tsx | 9 +- .../web/src/common/components/Table/index.tsx | 19 +- .../analyze/DataView/ContributorDetail.tsx | 41 +++ .../MetricDetail/MetricChart.tsx | 0 .../ContributorContribution.tsx | 2 +- .../ContributorContributors.tsx | 2 +- .../ContributorOrganizations.tsx | 2 +- .../MetricContributor/ContributorTable.tsx | 23 +- .../MetricContributor/contribution.ts | 0 .../MetricDetail/MetricContributor/index.tsx | 175 +++++++++++++ .../MetricDetail/MetricDashboard.tsx | 94 +------ .../MetricIssue/IssueComments.tsx | 2 +- .../MetricIssue/IssueCompletion.tsx | 2 +- .../MetricDetail/MetricIssue/IssueTable.tsx | 31 +-- .../MetricDetail/MetricIssue/index.tsx | 20 +- .../MetricDetail/MetricIssue/issue.ts | 0 .../MetricDetail/MetricPr/PR.ts | 0 .../MetricDetail/MetricPr/PrComments.tsx | 2 +- .../MetricDetail/MetricPr/PrCompletion.tsx | 4 +- .../MetricDetail/MetricPr/PrTable.tsx | 35 +-- .../MetricDetail/MetricPr/index.tsx | 21 +- .../analyze/DataView/MetricDetail/index.tsx | 39 +++ .../DataView/OverviewSummary/index.tsx | 1 - .../src/modules/analyze/DataView/index.tsx | 35 ++- .../analyze/components/ConnectLine.tsx | 4 +- .../MetricDetail/MetricContributor/index.tsx | 170 ------------- .../MetricDetail/MetricDetailMore.tsx | 130 ---------- .../NavBar/ContributorDateTagPanel.tsx | 191 ++++++++++++++ .../components/NavBar/NavDatePicker.tsx | 28 ++- .../Collaboration/TopicNicheCreation.tsx | 62 +++++ .../Collaboration/TopicProductivity.tsx | 96 +++++++ .../SideBar/Collaboration/TopicRobustness.tsx | 73 ++++++ .../SideBar/Collaboration/index.tsx | 21 ++ .../Contributor/TopicNicheCreation.tsx | 34 +++ .../SideBar/Contributor/TopicProductivity.tsx | 56 +++++ .../SideBar/Contributor/TopicRobustness.tsx | 40 +++ .../components/SideBar/Contributor/index.tsx | 21 ++ .../analyze/components/SideBar/TopicTab.tsx | 32 +++ .../analyze/components/SideBar/config.ts | 31 ++- .../analyze/components/SideBar/index.tsx | 24 +- .../analyze/hooks/useQueryDateRange.ts | 16 +- .../analyze/hooks/useVerifyDetailRange.ts | 15 ++ apps/web/src/modules/analyze/store/index.ts | 1 + .../src/modules/analyze/store/topicType.ts | 12 + apps/web/src/pages/analyze/metric/[slugs].tsx | 23 -- apps/web/src/styles/antd.scss | 30 +++ apps/web/src/styles/globals.scss | 4 +- packages/graphql/src/generated.ts | 237 +++++++----------- packages/graphql/src/gql/query.graphql | 81 +++--- 51 files changed, 1317 insertions(+), 696 deletions(-) create mode 100644 apps/web/src/modules/analyze/DataView/ContributorDetail.tsx rename apps/web/src/modules/analyze/{components => DataView}/MetricDetail/MetricChart.tsx (100%) rename apps/web/src/modules/analyze/{components => DataView}/MetricDetail/MetricContributor/ContributorContribution.tsx (97%) rename apps/web/src/modules/analyze/{components => DataView}/MetricDetail/MetricContributor/ContributorContributors.tsx (96%) rename apps/web/src/modules/analyze/{components => DataView}/MetricDetail/MetricContributor/ContributorOrganizations.tsx (97%) rename apps/web/src/modules/analyze/{components => DataView}/MetricDetail/MetricContributor/ContributorTable.tsx (94%) rename apps/web/src/modules/analyze/{components => DataView}/MetricDetail/MetricContributor/contribution.ts (100%) create mode 100644 apps/web/src/modules/analyze/DataView/MetricDetail/MetricContributor/index.tsx rename apps/web/src/modules/analyze/{components => DataView}/MetricDetail/MetricDashboard.tsx (73%) rename apps/web/src/modules/analyze/{components => DataView}/MetricDetail/MetricIssue/IssueComments.tsx (96%) rename apps/web/src/modules/analyze/{components => DataView}/MetricDetail/MetricIssue/IssueCompletion.tsx (96%) rename apps/web/src/modules/analyze/{components => DataView}/MetricDetail/MetricIssue/IssueTable.tsx (92%) rename apps/web/src/modules/analyze/{components => DataView}/MetricDetail/MetricIssue/index.tsx (79%) rename apps/web/src/modules/analyze/{components => DataView}/MetricDetail/MetricIssue/issue.ts (100%) rename apps/web/src/modules/analyze/{components => DataView}/MetricDetail/MetricPr/PR.ts (100%) rename apps/web/src/modules/analyze/{components => DataView}/MetricDetail/MetricPr/PrComments.tsx (96%) rename apps/web/src/modules/analyze/{components => DataView}/MetricDetail/MetricPr/PrCompletion.tsx (93%) rename apps/web/src/modules/analyze/{components => DataView}/MetricDetail/MetricPr/PrTable.tsx (91%) rename apps/web/src/modules/analyze/{components => DataView}/MetricDetail/MetricPr/index.tsx (79%) create mode 100644 apps/web/src/modules/analyze/DataView/MetricDetail/index.tsx delete mode 100644 apps/web/src/modules/analyze/components/MetricDetail/MetricContributor/index.tsx delete mode 100644 apps/web/src/modules/analyze/components/MetricDetail/MetricDetailMore.tsx create mode 100644 apps/web/src/modules/analyze/components/NavBar/ContributorDateTagPanel.tsx create mode 100644 apps/web/src/modules/analyze/components/SideBar/Collaboration/TopicNicheCreation.tsx create mode 100644 apps/web/src/modules/analyze/components/SideBar/Collaboration/TopicProductivity.tsx create mode 100644 apps/web/src/modules/analyze/components/SideBar/Collaboration/TopicRobustness.tsx create mode 100644 apps/web/src/modules/analyze/components/SideBar/Collaboration/index.tsx create mode 100644 apps/web/src/modules/analyze/components/SideBar/Contributor/TopicNicheCreation.tsx create mode 100644 apps/web/src/modules/analyze/components/SideBar/Contributor/TopicProductivity.tsx create mode 100644 apps/web/src/modules/analyze/components/SideBar/Contributor/TopicRobustness.tsx create mode 100644 apps/web/src/modules/analyze/components/SideBar/Contributor/index.tsx create mode 100644 apps/web/src/modules/analyze/components/SideBar/TopicTab.tsx create mode 100644 apps/web/src/modules/analyze/hooks/useVerifyDetailRange.ts create mode 100644 apps/web/src/modules/analyze/store/topicType.ts delete mode 100644 apps/web/src/pages/analyze/metric/[slugs].tsx create mode 100644 apps/web/src/styles/antd.scss diff --git a/apps/web/i18n b/apps/web/i18n index 7ef2f39b..737b1a91 160000 --- a/apps/web/i18n +++ b/apps/web/i18n @@ -1 +1 @@ -Subproject commit 7ef2f39b81adf8d0c089b97a2b9637d73843a611 +Subproject commit 737b1a9190679e1c37ff3d92ec93912e23c420a6 diff --git a/apps/web/src/common/components/BaseCard.tsx b/apps/web/src/common/components/BaseCard.tsx index c3ab655e..6c378600 100644 --- a/apps/web/src/common/components/BaseCard.tsx +++ b/apps/web/src/common/components/BaseCard.tsx @@ -119,15 +119,17 @@ const BaseCard: React.FC = ({ -
- -
+ {description && ( +
+ +
+ )}
{typeof headRight === 'function' ? headRight(cardRef, fullScreen, setFullScreen) diff --git a/apps/web/src/common/components/Tab.tsx b/apps/web/src/common/components/Tab.tsx index 929a9c00..c05c9a48 100644 --- a/apps/web/src/common/components/Tab.tsx +++ b/apps/web/src/common/components/Tab.tsx @@ -2,7 +2,7 @@ import React from 'react'; import classnames from 'classnames'; const Tab: React.FC<{ - options: { value: string; label: string }[]; + options: { value: string; label: string; disable?: boolean }[]; value: string; onChange: (v: string) => void; }> = ({ options, value, onChange }) => ( @@ -13,10 +13,11 @@ const Tab: React.FC<{
onChange(option.value)} + onClick={() => !option.disable && onChange(option.value)} > {option.label}
diff --git a/apps/web/src/common/components/Table/index.tsx b/apps/web/src/common/components/Table/index.tsx index 48a1ac2e..7fd73f23 100644 --- a/apps/web/src/common/components/Table/index.tsx +++ b/apps/web/src/common/components/Table/index.tsx @@ -1,30 +1,29 @@ import React, { useEffect, useState, useRef } from 'react'; import { Table, ConfigProvider } from 'antd'; -import getTableScroll from '@common/utils/getTableScroll'; import getLocale from '@common/utils/getLocale'; import zhCN from 'antd/locale/zh_CN'; import enUS from 'antd/locale/en_US'; const MyTable = (props) => { - const [scrollY, setScrollY] = useState(400); - let countRef = useRef(null); - useEffect(() => { - let scrolly = getTableScroll({ ref: countRef }); - if (countRef) setScrollY(scrolly); - }, [countRef]); + // const [scrollY, setScrollY] = useState(400); + // let countRef = useRef(null); + // useEffect(() => { + // let scrolly = getTableScroll({ ref: countRef }); + // if (countRef) setScrollY(scrolly); + // }, [countRef]); + const [local, setLocale] = useState(enUS); useEffect(() => { const l = getLocale(); setLocale(l === 'zh' ? zhCN : enUS); }, []); return ( -
+
(i % 2 === 1 ? '!bg-[#fafafa]' : '')} - bordered - scroll={{ x: 'max-content', y: scrollY }} + // bordered /> diff --git a/apps/web/src/modules/analyze/DataView/ContributorDetail.tsx b/apps/web/src/modules/analyze/DataView/ContributorDetail.tsx new file mode 100644 index 00000000..346d8cab --- /dev/null +++ b/apps/web/src/modules/analyze/DataView/ContributorDetail.tsx @@ -0,0 +1,41 @@ +import React from 'react'; +import { useTranslation } from 'next-i18next'; +import TopicTitle from '@modules/analyze/components/TopicTitle'; +import { Topic } from '@modules/analyze/components/SideBar/config'; +import { CiGrid41 } from 'react-icons/ci'; +import MetricDashboard from '@modules/analyze/DataView/MetricDetail/MetricDashboard'; +import ProductivityIcon from '@modules/analyze/components/SideBar/assets/Productivity.svg'; +import MetricDetail from './MetricDetail'; + +const ContributorDetail = () => { + const { t } = useTranslation(); + + return ( + <> +

+ + {t('analyze:overview')} + + + # + + +

+ + } + id={Topic.Productivity} + > + {t('analyze:topic.productivity')} + + + + ); +}; + +export default ContributorDetail; diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricChart.tsx b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricChart.tsx similarity index 100% rename from apps/web/src/modules/analyze/components/MetricDetail/MetricChart.tsx rename to apps/web/src/modules/analyze/DataView/MetricDetail/MetricChart.tsx diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricContributor/ContributorContribution.tsx b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricContributor/ContributorContribution.tsx similarity index 97% rename from apps/web/src/modules/analyze/components/MetricDetail/MetricContributor/ContributorContribution.tsx rename to apps/web/src/modules/analyze/DataView/MetricDetail/MetricContributor/ContributorContribution.tsx index ea02499c..8dce2c2d 100644 --- a/apps/web/src/modules/analyze/components/MetricDetail/MetricContributor/ContributorContribution.tsx +++ b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricContributor/ContributorContribution.tsx @@ -2,7 +2,7 @@ import React, { useRef, useMemo } from 'react'; import { useEcoContributorsOverviewQuery } from '@oss-compass/graphql'; import client from '@common/gqlClient'; import { useTranslation } from 'next-i18next'; -import MetricChart from '@modules/analyze/components/MetricDetail/MetricChart'; +import MetricChart from '@modules/analyze/DataView/MetricDetail/MetricChart'; import { useEcologicalType } from './contribution'; import { gradientRamp } from '@common/options'; import type { EChartsOption } from 'echarts'; diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricContributor/ContributorContributors.tsx b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricContributor/ContributorContributors.tsx similarity index 96% rename from apps/web/src/modules/analyze/components/MetricDetail/MetricContributor/ContributorContributors.tsx rename to apps/web/src/modules/analyze/DataView/MetricDetail/MetricContributor/ContributorContributors.tsx index a3f4e615..c3b39a6d 100644 --- a/apps/web/src/modules/analyze/components/MetricDetail/MetricContributor/ContributorContributors.tsx +++ b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricContributor/ContributorContributors.tsx @@ -2,7 +2,7 @@ import React, { useRef, useMemo } from 'react'; import { useContributorsOverviewQuery } from '@oss-compass/graphql'; import client from '@common/gqlClient'; import { useTranslation } from 'next-i18next'; -import MetricChart from '@modules/analyze/components/MetricDetail/MetricChart'; +import MetricChart from '@modules/analyze/DataView/MetricDetail/MetricChart'; import { useEcologicalType } from './contribution'; import type { EChartsOption } from 'echarts'; diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricContributor/ContributorOrganizations.tsx b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricContributor/ContributorOrganizations.tsx similarity index 97% rename from apps/web/src/modules/analyze/components/MetricDetail/MetricContributor/ContributorOrganizations.tsx rename to apps/web/src/modules/analyze/DataView/MetricDetail/MetricContributor/ContributorOrganizations.tsx index 69c4cf48..078eefe8 100644 --- a/apps/web/src/modules/analyze/components/MetricDetail/MetricContributor/ContributorOrganizations.tsx +++ b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricContributor/ContributorOrganizations.tsx @@ -2,7 +2,7 @@ import React, { useRef, useMemo } from 'react'; import { useOrgContributorsOverviewQuery } from '@oss-compass/graphql'; import client from '@common/gqlClient'; import { useTranslation } from 'next-i18next'; -import MetricChart from '@modules/analyze/components/MetricDetail/MetricChart'; +import MetricChart from '@modules/analyze/DataView/MetricDetail/MetricChart'; import { gradientRamp } from '@common/options'; import type { EChartsOption } from 'echarts'; diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricContributor/ContributorTable.tsx b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricContributor/ContributorTable.tsx similarity index 94% rename from apps/web/src/modules/analyze/components/MetricDetail/MetricContributor/ContributorTable.tsx rename to apps/web/src/modules/analyze/DataView/MetricDetail/MetricContributor/ContributorTable.tsx index ea76428a..77bfbe70 100644 --- a/apps/web/src/modules/analyze/components/MetricDetail/MetricContributor/ContributorTable.tsx +++ b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricContributor/ContributorTable.tsx @@ -53,6 +53,7 @@ const MetricTable: React.FC<{ pagination: { current: 1, pageSize: 10, + showSizeChanger: false, position: ['bottomCenter'], showTotal: (total) => { return `Total ${total} items`; @@ -218,21 +219,21 @@ const MetricTable: React.FC<{ } }, align: 'center', - width: '100px', + width: '200px', sorter: true, }, ]; return ( -
- -
+ ); }; export default MetricTable; diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricContributor/contribution.ts b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricContributor/contribution.ts similarity index 100% rename from apps/web/src/modules/analyze/components/MetricDetail/MetricContributor/contribution.ts rename to apps/web/src/modules/analyze/DataView/MetricDetail/MetricContributor/contribution.ts diff --git a/apps/web/src/modules/analyze/DataView/MetricDetail/MetricContributor/index.tsx b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricContributor/index.tsx new file mode 100644 index 00000000..241eb773 --- /dev/null +++ b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricContributor/index.tsx @@ -0,0 +1,175 @@ +import React, { useState } from 'react'; +import Tabs from '@mui/material/Tabs'; +import Tab from '@mui/material/Tab'; +import useQueryDateRange from '@modules/analyze/hooks/useQueryDateRange'; +import { Checkbox } from 'antd'; +import { useTranslation } from 'next-i18next'; +import { useMileageOptions } from './contribution'; +import MetricTable from './ContributorTable'; +import ContributorContribution from './ContributorContribution'; +import ContributorOrganizations from './ContributorOrganizations'; +import ContributorContributors from './ContributorContributors'; +import { AiOutlineQuestionCircle } from 'react-icons/ai'; +import Tooltip from '@common/components/Tooltip'; +import useLabelStatus from '@modules/analyze/hooks/useLabelStatus'; +import { ContributorsPersona } from '@modules/analyze/components/SideBar/config'; +import BaseCard from '@common/components/BaseCard'; + +const MetricContributor = () => { + const { t } = useTranslation(); + const { verifiedItems } = useLabelStatus(); + const { label, level } = verifiedItems[0]; + const [tab, setTab] = useState('1'); + const { timeStart, timeEnd } = useQueryDateRange(); + const options = useMileageOptions(); + const [mileage, setMileage] = useState(['core', 'guest']); + const onChange = (checkedValues: string[]) => { + setMileage(checkedValues); + }; + let source; + switch (tab) { + case '1': { + source = ( + + ); + break; + } + case '2': { + source = ( + + ); + break; + } + case '3': { + source = ( + + ); + break; + } + case '4': { + source = ( + + ); + break; + } + default: { + break; + } + } + return ( + +
+ { + setTab(v); + }} + aria-label="Tabs where selection follows focus" + selectionFollowsFocus + > + + + + + +
+ + {t('analyze:metric_detail:milestone_persona_filter')} + +
+ + {t('analyze:metric_detail:core')} : + + {t('analyze:metric_detail:core_desc')} +
+
+ + {t('analyze:metric_detail:regular')} : + + {t('analyze:metric_detail:regular_desc')} +
+ + } + placement="right" + > + + + +
+
+ : + +
+ +
{source}
+
+
+ ); +}; + +export default MetricContributor; diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricDashboard.tsx b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricDashboard.tsx similarity index 73% rename from apps/web/src/modules/analyze/components/MetricDetail/MetricDashboard.tsx rename to apps/web/src/modules/analyze/DataView/MetricDetail/MetricDashboard.tsx index bd9e3b8b..2790ae44 100644 --- a/apps/web/src/modules/analyze/components/MetricDetail/MetricDashboard.tsx +++ b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricDashboard.tsx @@ -6,7 +6,6 @@ import { AiFillClockCircle, AiOutlineIssuesClose } from 'react-icons/ai'; import { BiChat, BiGitPullRequest, BiGitCommit } from 'react-icons/bi'; import useCompareItems from '@modules/analyze/hooks/useCompareItems'; import useQueryDateRange from '@modules/analyze/hooks/useQueryDateRange'; -import { useRouter } from 'next/router'; import { useMetricDashboardQuery, ContributorDetailOverview, @@ -44,9 +43,6 @@ const Main = () => { } return (
-
- {t('analyze:metric_detail:project_deep_dive_insight')} -
@@ -64,8 +60,6 @@ const MetricBoxContributors: React.FC<{ data: ContributorDetailOverview; }> = ({ data }) => { const { t } = useTranslation(); - const router = useRouter(); - const slugs = router.query.slugs; return (
@@ -73,16 +67,6 @@ const MetricBoxContributors: React.FC<{
{t('analyze:metric_detail:contributor')}
-
{ - router.push( - '/analyze/metric/' + slugs + '?range=1M&type=contributor' - ); - }} - > - {t('analyze:metric_detail:details')} -
@@ -141,8 +125,6 @@ const MetricBoxIssues: React.FC<{ data: IssueDetailOverview; }> = ({ data }) => { const { t } = useTranslation(); - const router = useRouter(); - const slugs = router.query.slugs; return (
@@ -150,14 +132,6 @@ const MetricBoxIssues: React.FC<{
{t('analyze:metric_detail:issues')}
-
{ - router.push('/analyze/metric/' + slugs + '?range=1M&type=issue'); - }} - > - {t('analyze:metric_detail:details')} -
@@ -220,22 +194,13 @@ const MetricBoxPr: React.FC<{ data: PullDetailOverview; }> = ({ data }) => { const { t } = useTranslation(); - const router = useRouter(); - const slugs = router.query.slugs; + return (
{t('analyze:metric_detail:pull_requests')}
-
{ - router.push('/analyze/metric/' + slugs + '?range=1M&type=pr'); - }} - className="cursor-pointer pt-1 text-sm text-[#585858]" - > - {t('analyze:metric_detail:details')} -
@@ -292,52 +257,19 @@ const MetricBoxPr: React.FC<{ ); }; const Loading = () => ( -
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
); diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricIssue/IssueComments.tsx b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricIssue/IssueComments.tsx similarity index 96% rename from apps/web/src/modules/analyze/components/MetricDetail/MetricIssue/IssueComments.tsx rename to apps/web/src/modules/analyze/DataView/MetricDetail/MetricIssue/IssueComments.tsx index 60f8c648..3dfe820d 100644 --- a/apps/web/src/modules/analyze/components/MetricDetail/MetricIssue/IssueComments.tsx +++ b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricIssue/IssueComments.tsx @@ -2,7 +2,7 @@ import React, { useRef, useMemo } from 'react'; import { useIssueCommentQuery } from '@oss-compass/graphql'; import client from '@common/gqlClient'; import { useTranslation } from 'next-i18next'; -import MetricChart from '@modules/analyze/components/MetricDetail/MetricChart'; +import MetricChart from '@modules/analyze/DataView/MetricDetail/MetricChart'; import type { EChartsOption } from 'echarts'; const IssueCompletion: React.FC<{ diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricIssue/IssueCompletion.tsx b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricIssue/IssueCompletion.tsx similarity index 96% rename from apps/web/src/modules/analyze/components/MetricDetail/MetricIssue/IssueCompletion.tsx rename to apps/web/src/modules/analyze/DataView/MetricDetail/MetricIssue/IssueCompletion.tsx index 70d68bcf..562de381 100644 --- a/apps/web/src/modules/analyze/components/MetricDetail/MetricIssue/IssueCompletion.tsx +++ b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricIssue/IssueCompletion.tsx @@ -2,7 +2,7 @@ import React, { useRef, useMemo } from 'react'; import { useIssueCompletionQuery } from '@oss-compass/graphql'; import client from '@common/gqlClient'; import { useTranslation } from 'next-i18next'; -import MetricChart from '@modules/analyze/components/MetricDetail/MetricChart'; +import MetricChart from '@modules/analyze/DataView/MetricDetail/MetricChart'; import type { EChartsOption } from 'echarts'; import { useStateType } from './issue'; diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricIssue/IssueTable.tsx b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricIssue/IssueTable.tsx similarity index 92% rename from apps/web/src/modules/analyze/components/MetricDetail/MetricIssue/IssueTable.tsx rename to apps/web/src/modules/analyze/DataView/MetricDetail/MetricIssue/IssueTable.tsx index d0b49ee8..4f721579 100644 --- a/apps/web/src/modules/analyze/components/MetricDetail/MetricIssue/IssueTable.tsx +++ b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricIssue/IssueTable.tsx @@ -33,6 +33,7 @@ const MetricTable: React.FC<{ pagination: { current: 1, pageSize: 10, + showSizeChanger: false, position: ['bottomCenter'], showTotal: (total) => { return `Total ${total} items`; @@ -107,7 +108,7 @@ const MetricTable: React.FC<{ title: 'URL', dataIndex: 'url', align: 'center', - width: '250px', + width: '220px', }, { title: t('analyze:metric_detail:state'), @@ -125,7 +126,7 @@ const MetricTable: React.FC<{ dataIndex: 'createdAt', align: 'center', sorter: true, - width: '120px', + width: '140px', render: (time) => format(parseJSON(time)!, 'yyyy-MM-dd'), }, { @@ -141,21 +142,21 @@ const MetricTable: React.FC<{ dataIndex: 'timeToCloseDays', align: 'center', sorter: true, - width: '140px', + width: '200px', }, { title: t('analyze:metric_detail:first_response_time'), dataIndex: 'timeToFirstAttentionWithoutBot', align: 'center', sorter: true, - width: '170px', + width: '220px', }, { title: t('analyze:metric_detail:comments_count'), dataIndex: 'numOfCommentsWithoutBot', align: 'center', sorter: true, - width: '120px', + width: '160px', }, { title: t('analyze:metric_detail:tags'), @@ -180,16 +181,16 @@ const MetricTable: React.FC<{ }, ]; return ( -
- -
+ ); }; export default MetricTable; diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricIssue/index.tsx b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricIssue/index.tsx similarity index 79% rename from apps/web/src/modules/analyze/components/MetricDetail/MetricIssue/index.tsx rename to apps/web/src/modules/analyze/DataView/MetricDetail/MetricIssue/index.tsx index a5101603..7cb96ef9 100644 --- a/apps/web/src/modules/analyze/components/MetricDetail/MetricIssue/index.tsx +++ b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricIssue/index.tsx @@ -6,11 +6,13 @@ import MetricTable from './IssueTable'; import IssueCompletion from './IssueCompletion'; import IssueComments from './IssueComments'; import { useTranslation } from 'next-i18next'; +import useLabelStatus from '@modules/analyze/hooks/useLabelStatus'; +import { ContributorsPersona } from '@modules/analyze/components/SideBar/config'; +import BaseCard from '@common/components/BaseCard'; -const MetricIssue: React.FC<{ - label: string; - level: string; -}> = ({ label, level }) => { +const MetricIssue = () => { + const { verifiedItems } = useLabelStatus(); + const { label, level } = verifiedItems[0]; const { t } = useTranslation(); const [tab, setTab] = useState('1'); const { timeStart, timeEnd } = useQueryDateRange(); @@ -54,7 +56,11 @@ const MetricIssue: React.FC<{ } } return ( -
+ -
{source}
-
+
{source}
+ ); }; diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricIssue/issue.ts b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricIssue/issue.ts similarity index 100% rename from apps/web/src/modules/analyze/components/MetricDetail/MetricIssue/issue.ts rename to apps/web/src/modules/analyze/DataView/MetricDetail/MetricIssue/issue.ts diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricPr/PR.ts b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricPr/PR.ts similarity index 100% rename from apps/web/src/modules/analyze/components/MetricDetail/MetricPr/PR.ts rename to apps/web/src/modules/analyze/DataView/MetricDetail/MetricPr/PR.ts diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricPr/PrComments.tsx b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricPr/PrComments.tsx similarity index 96% rename from apps/web/src/modules/analyze/components/MetricDetail/MetricPr/PrComments.tsx rename to apps/web/src/modules/analyze/DataView/MetricDetail/MetricPr/PrComments.tsx index bd12784a..5f2d788d 100644 --- a/apps/web/src/modules/analyze/components/MetricDetail/MetricPr/PrComments.tsx +++ b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricPr/PrComments.tsx @@ -2,7 +2,7 @@ import React, { useRef, useMemo } from 'react'; import { usePullsCommentQuery } from '@oss-compass/graphql'; import client from '@common/gqlClient'; import { useTranslation } from 'next-i18next'; -import MetricChart from '@modules/analyze/components/MetricDetail/MetricChart'; +import MetricChart from '@modules/analyze/DataView/MetricDetail/MetricChart'; import type { EChartsOption } from 'echarts'; const PrComments: React.FC<{ diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricPr/PrCompletion.tsx b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricPr/PrCompletion.tsx similarity index 93% rename from apps/web/src/modules/analyze/components/MetricDetail/MetricPr/PrCompletion.tsx rename to apps/web/src/modules/analyze/DataView/MetricDetail/MetricPr/PrCompletion.tsx index de2ff163..b36f051c 100644 --- a/apps/web/src/modules/analyze/components/MetricDetail/MetricPr/PrCompletion.tsx +++ b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricPr/PrCompletion.tsx @@ -2,8 +2,8 @@ import React, { useRef, useMemo } from 'react'; import { usePullsCompletionQuery } from '@oss-compass/graphql'; import client from '@common/gqlClient'; import { useTranslation } from 'next-i18next'; -import MetricChart from '@modules/analyze/components/MetricDetail/MetricChart'; -import { useStateType } from '@modules/analyze/components/MetricDetail/MetricPr/PR'; +import MetricChart from '@modules/analyze/DataView/MetricDetail/MetricChart'; +import { useStateType } from '@modules/analyze/DataView/MetricDetail/MetricPr/PR'; import type { EChartsOption } from 'echarts'; const PrCompletion: React.FC<{ diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricPr/PrTable.tsx b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricPr/PrTable.tsx similarity index 91% rename from apps/web/src/modules/analyze/components/MetricDetail/MetricPr/PrTable.tsx rename to apps/web/src/modules/analyze/DataView/MetricDetail/MetricPr/PrTable.tsx index 0be01219..5b0c1d05 100644 --- a/apps/web/src/modules/analyze/components/MetricDetail/MetricPr/PrTable.tsx +++ b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricPr/PrTable.tsx @@ -11,7 +11,7 @@ import type { ColumnsType, TablePaginationConfig } from 'antd/es/table'; import type { FilterValue, SorterResult } from 'antd/es/table/interface'; import { useTranslation } from 'next-i18next'; import { format, parseJSON } from 'date-fns'; -import { useStateType } from '@modules/analyze/components/MetricDetail/MetricPr/PR'; +import { useStateType } from '@modules/analyze/DataView/MetricDetail/MetricPr/PR'; interface TableParams { pagination?: TablePaginationConfig; @@ -33,6 +33,7 @@ const MetricTable: React.FC<{ pagination: { current: 1, pageSize: 10, + showSizeChanger: false, position: ['bottomCenter'], showTotal: (total) => { return `Total ${total} items`; @@ -107,7 +108,7 @@ const MetricTable: React.FC<{ title: 'URL', dataIndex: 'url', align: 'center', - width: '250px', + width: '220px', }, { title: t('analyze:metric_detail:state'), @@ -124,7 +125,7 @@ const MetricTable: React.FC<{ title: t('analyze:metric_detail:created_time'), dataIndex: 'createdAt', align: 'center', - width: '120px', + width: '140px', sorter: true, render: (time) => (time ? format(parseJSON(time)!, 'yyyy-MM-dd') : ''), }, @@ -140,21 +141,21 @@ const MetricTable: React.FC<{ title: t('analyze:metric_detail:processing_time'), dataIndex: 'timeToCloseDays', align: 'center', - width: '140px', + width: '200px', sorter: true, }, { title: t('analyze:metric_detail:first_response_time'), dataIndex: 'timeToFirstAttentionWithoutBot', align: 'center', - width: '160px', + width: '220px', sorter: true, }, { title: t('analyze:metric_detail:comments_count'), dataIndex: 'numReviewComments', align: 'center', - width: '120px', + width: '160px', sorter: true, }, { @@ -182,21 +183,21 @@ const MetricTable: React.FC<{ title: t('analyze:metric_detail:merge_author'), dataIndex: 'mergeAuthorLogin', align: 'center', - width: '100px', + width: '140px', sorter: true, }, ]; return ( -
- -
+ ); }; export default MetricTable; diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricPr/index.tsx b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricPr/index.tsx similarity index 79% rename from apps/web/src/modules/analyze/components/MetricDetail/MetricPr/index.tsx rename to apps/web/src/modules/analyze/DataView/MetricDetail/MetricPr/index.tsx index 6b4f31bc..de3a9ed9 100644 --- a/apps/web/src/modules/analyze/components/MetricDetail/MetricPr/index.tsx +++ b/apps/web/src/modules/analyze/DataView/MetricDetail/MetricPr/index.tsx @@ -6,11 +6,13 @@ import MetricTable from './PrTable'; import PrCompletion from './PrCompletion'; import PrComments from './PrComments'; import { useTranslation } from 'next-i18next'; +import useLabelStatus from '@modules/analyze/hooks/useLabelStatus'; +import { ContributorsPersona } from '@modules/analyze/components/SideBar/config'; +import BaseCard from '@common/components/BaseCard'; -const MetricPr: React.FC<{ - label: string; - level: string; -}> = ({ label, level }) => { +const MetricPr = () => { + const { verifiedItems } = useLabelStatus(); + const { label, level } = verifiedItems[0]; const { t } = useTranslation(); const [tab, setTab] = useState('1'); const { timeStart, timeEnd } = useQueryDateRange(); @@ -54,7 +56,11 @@ const MetricPr: React.FC<{ } } return ( -
+ - -
{source}
-
+
{source}
+ ); }; diff --git a/apps/web/src/modules/analyze/DataView/MetricDetail/index.tsx b/apps/web/src/modules/analyze/DataView/MetricDetail/index.tsx new file mode 100644 index 00000000..1dd5b25e --- /dev/null +++ b/apps/web/src/modules/analyze/DataView/MetricDetail/index.tsx @@ -0,0 +1,39 @@ +import React, { useContext } from 'react'; +import { useTranslation } from 'next-i18next'; +import SectionTitle from '@modules/analyze/components/SectionTitle'; +import { ContributorsPersona } from '@modules/analyze/components/SideBar/config'; +import MetricContributor from './MetricContributor'; +import MetricIssue from './MetricIssue'; +import MetricPr from './MetricPr'; + +import { withErrorBoundary } from 'react-error-boundary'; +import ErrorFallback from '@common/components/ErrorFallback'; +import ConnectLine from '@modules/analyze/components/ConnectLine'; + +const OrganizationsActivity = () => { + const { t } = useTranslation(); + + return ( + <> + + {t('metrics_models:contributors_persona.title')} + + +
+ + + + +
+ + ); +}; + +export default withErrorBoundary(OrganizationsActivity, { + FallbackComponent: ErrorFallback, + onError(error, info) { + console.log(error, info); + // Do something with the error + // E.g. log to an error logging client here + }, +}); diff --git a/apps/web/src/modules/analyze/DataView/OverviewSummary/index.tsx b/apps/web/src/modules/analyze/DataView/OverviewSummary/index.tsx index a307e17f..a4bddd3a 100644 --- a/apps/web/src/modules/analyze/DataView/OverviewSummary/index.tsx +++ b/apps/web/src/modules/analyze/DataView/OverviewSummary/index.tsx @@ -19,7 +19,6 @@ const Overview: React.FC<{ <> {data[0].level === Level.COMMUNITY && } - ); } diff --git a/apps/web/src/modules/analyze/DataView/index.tsx b/apps/web/src/modules/analyze/DataView/index.tsx index dc15378d..a0d2b01f 100644 --- a/apps/web/src/modules/analyze/DataView/index.tsx +++ b/apps/web/src/modules/analyze/DataView/index.tsx @@ -6,9 +6,15 @@ import UnderAnalysis from './Status/UnderAnalysis'; import NotFoundAnalysis from './Status/NotFoundAnalysis'; import LoadingAnalysis from './Status/LoadingAnalysis'; import Charts from './Charts'; +import ContributorDetail from './ContributorDetail'; +import useVerifyDetailRange from '@modules/analyze/hooks/useVerifyDetailRange'; +import AuthRequire from '@modules/auth/AuthRequire'; +import { useTopicType } from '@modules/analyze/store'; +import { useSnapshot } from 'valtio'; const DataView = () => { const { notFound, isLoading, status, verifiedItems } = useStatusContext(); + const { topicType } = useSnapshot(useTopicType); if (isLoading) { return ; @@ -22,11 +28,36 @@ const DataView = () => { return ; } + let source; + if (topicType === 'collaboration') { + source = ; + } else { + source = ; + } + return
{source}
; +}; +const CollaborationDataView = () => { return ( -
+ <> -
+ + ); +}; +const ContributorDataView = () => { + const { isLoading } = useVerifyDetailRange(); + // const statusFalse = !data?.verifyDetailDataRange?.status; + // const { switchRange } = useSwitchRange(); + + if (isLoading) { + return ; + } + return ( + <> + + + + ); }; diff --git a/apps/web/src/modules/analyze/components/ConnectLine.tsx b/apps/web/src/modules/analyze/components/ConnectLine.tsx index 44d0c5bd..835db619 100644 --- a/apps/web/src/modules/analyze/components/ConnectLine.tsx +++ b/apps/web/src/modules/analyze/components/ConnectLine.tsx @@ -1,7 +1,9 @@ import React from 'react'; const ConnectLine = () => { - return
; + return ( +
+ ); }; export default ConnectLine; diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricContributor/index.tsx b/apps/web/src/modules/analyze/components/MetricDetail/MetricContributor/index.tsx deleted file mode 100644 index 6cda24ad..00000000 --- a/apps/web/src/modules/analyze/components/MetricDetail/MetricContributor/index.tsx +++ /dev/null @@ -1,170 +0,0 @@ -import React, { useState } from 'react'; -import Tabs from '@mui/material/Tabs'; -import Tab from '@mui/material/Tab'; -import useQueryDateRange from '@modules/analyze/hooks/useQueryDateRange'; -import { Checkbox } from 'antd'; -import { useTranslation } from 'next-i18next'; -import { useMileageOptions } from './contribution'; -import MetricTable from './ContributorTable'; -import ContributorContribution from './ContributorContribution'; -import ContributorOrganizations from './ContributorOrganizations'; -import ContributorContributors from './ContributorContributors'; -import { AiOutlineQuestionCircle } from 'react-icons/ai'; -import Tooltip from '@common/components/Tooltip'; - -const MetricContributor: React.FC<{ - label: string; - level: string; -}> = ({ label, level }) => { - const { t } = useTranslation(); - const [tab, setTab] = useState('1'); - const { timeStart, timeEnd } = useQueryDateRange(); - const options = useMileageOptions(); - const [mileage, setMileage] = useState(['core', 'guest']); - const onChange = (checkedValues: string[]) => { - setMileage(checkedValues); - }; - let source; - switch (tab) { - case '1': { - source = ( - - ); - break; - } - case '2': { - source = ( - - ); - break; - } - case '3': { - source = ( - - ); - break; - } - case '4': { - source = ( - - ); - break; - } - default: { - break; - } - } - return ( -
- { - setTab(v); - }} - aria-label="Tabs where selection follows focus" - selectionFollowsFocus - > - - - - - -
- {/* - {t('analyze:metric_detail:milestone_persona_filter')}: - */} - - {t('analyze:metric_detail:milestone_persona_filter')} - -
- - {t('analyze:metric_detail:core')} : - - {t('analyze:metric_detail:core_desc')} -
-
- - {t('analyze:metric_detail:regular')} : - - {t('analyze:metric_detail:regular_desc')} -
- - } - placement="right" - > - - - -
-
- : - -
- -
{source}
-
- ); -}; - -export default MetricContributor; diff --git a/apps/web/src/modules/analyze/components/MetricDetail/MetricDetailMore.tsx b/apps/web/src/modules/analyze/components/MetricDetail/MetricDetailMore.tsx deleted file mode 100644 index 47279587..00000000 --- a/apps/web/src/modules/analyze/components/MetricDetail/MetricDetailMore.tsx +++ /dev/null @@ -1,130 +0,0 @@ -import React, { useState } from 'react'; -import { useTranslation } from 'next-i18next'; -import MyTab from '@common/components/Tab'; -import MetricContributor from './MetricContributor'; -import MetricIssue from './MetricIssue'; -import MetricPr from './MetricPr'; -import { AiOutlineLeftCircle } from 'react-icons/ai'; -import { useRouter } from 'next/router'; -import NavDatePicker from '@modules/analyze/components/NavBar/NavDatePicker'; -import useLabelStatus from '@modules/analyze/hooks/useLabelStatus'; - -const MetricDetailPage = () => { - const { t } = useTranslation(); - const router = useRouter(); - const slugs = router.query.slugs; - const type = (router.query.type as string) || 'contributor'; - const { isLoading, verifiedItems } = useLabelStatus(); - const [tab, setTab] = useState(type); - if (isLoading || verifiedItems.length > 1) { - return null; - } - const { label, level } = verifiedItems[0]; - - const tabOptions = [ - { - label: t('analyze:metric_detail:contributors_persona'), - value: 'contributor', - }, - { label: t('analyze:metric_detail:issues'), value: 'issue' }, - { label: t('analyze:metric_detail:pull_requests'), value: 'pr' }, - ]; - - let source; - switch (tab) { - case 'contributor': { - source = ; - break; - } - case 'issue': { - source = ; - break; - } - case 'pr': { - source = ; - break; - } - default: { - break; - } - } - return ( -
-
-
- { - router.push('/analyze/' + slugs); - }} - className="mt-1 mr-4 cursor-pointer text-[#3f60ef]" - /> - - {t('analyze:metric_detail:project_deep_dive_insight')} - -
-
- setTab(v)} /> -
-
- -
-
-
- {source} -
-
- ); -}; - -export default MetricDetailPage; - -// const Loading = () => ( -//
-//
-//
-//
-//
-//
-//
-//
-//
-//
- -//
-//
-//
-//
-//
-//
- -//
-//
-//
-//
-//
-//
- -//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
- -//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-// ); diff --git a/apps/web/src/modules/analyze/components/NavBar/ContributorDateTagPanel.tsx b/apps/web/src/modules/analyze/components/NavBar/ContributorDateTagPanel.tsx new file mode 100644 index 00000000..0a21a5a8 --- /dev/null +++ b/apps/web/src/modules/analyze/components/NavBar/ContributorDateTagPanel.tsx @@ -0,0 +1,191 @@ +import React, { useMemo } from 'react'; +import { BiCheck } from 'react-icons/bi'; +import { rangeTags } from '@modules/analyze/constant'; +import classnames from 'classnames'; +import { useToggle } from 'react-use'; +import useI18RangeTag from './useI18RangeTag'; +import useQueryDateRange from '@modules/analyze/hooks/useQueryDateRange'; +import useSwitchRange from '@modules/analyze/components/NavBar/useSwitchRange'; +import 'react-datepicker/dist/react-datepicker.css'; +import { useTranslation } from 'next-i18next'; +import DateRangePicker from './DateRangePicker'; +import Tooltip from '@common/components/Tooltip'; +import useVerifyDetailRange from '@modules/analyze/hooks/useVerifyDetailRange'; +import { AiOutlineLoading } from 'react-icons/ai'; + +const ContributorDateTagPanel = ({ + togglePickerPanel, +}: { + togglePickerPanel: (v: boolean) => void; +}) => { + const { t } = useTranslation(); + const i18RangeTag = useI18RangeTag(); + const [showRangePicker, setShowRangePicker] = useToggle(false); + const { range } = useQueryDateRange(); + const { switchRange } = useSwitchRange(); + const { isLoading, data } = useVerifyDetailRange(); + if (isLoading) { + return ( +
+
+ +
+
+ ); + } + const statusFalse = !data?.verifyDetailDataRange?.status; + if (statusFalse) { + return ( +
+
+ {rangeTags.map((time, index) => { + return ( + +
{t('analyze:only_the_latest_month')}
+
+ {t('analyze:for_more_time_frames')} + + + {t('analyze:contact_us')} + + +
+ + } + > +
+ {i18RangeTag[time]} + {range === time && !showRangePicker && ( +
+ +
+ )} +
+
+ ); + })} + +
{t('analyze:only_the_latest_month')}
+
+ {t('analyze:for_more_time_frames')} + + + {t('analyze:contact_us')} + + +
+ + } + > +
+ {t('analyze:custom')} +
+
+
+
+ ); + } else { + return ( +
+
+ {rangeTags.map((t, index) => { + return ( +
{ + await switchRange(t); + togglePickerPanel(false); + setShowRangePicker(false); + }} + > + {i18RangeTag[t]} + {range === t && !showRangePicker && ( +
+ +
+ )} +
+ ); + })} +
{ + setShowRangePicker(true); + }} + > + {t('analyze:custom')} + {showRangePicker && ( +
+ +
+ )} +
+
+
+ { + await switchRange(t); + togglePickerPanel(false); + }} + /> +
+
+ ); + } +}; +export default ContributorDateTagPanel; diff --git a/apps/web/src/modules/analyze/components/NavBar/NavDatePicker.tsx b/apps/web/src/modules/analyze/components/NavBar/NavDatePicker.tsx index e69b31ec..8bde3f99 100644 --- a/apps/web/src/modules/analyze/components/NavBar/NavDatePicker.tsx +++ b/apps/web/src/modules/analyze/components/NavBar/NavDatePicker.tsx @@ -1,8 +1,8 @@ -import React, { useState, useRef, useEffect } from 'react'; +import React from 'react'; import { BiCalendar, BiCaretDown, BiCheck } from 'react-icons/bi'; import { rangeTags } from '@modules/analyze/constant'; import classnames from 'classnames'; -import { useClickAway, useToggle } from 'react-use'; +import { useToggle } from 'react-use'; import useI18RangeTag from './useI18RangeTag'; import useQueryDateRange from '@modules/analyze/hooks/useQueryDateRange'; import useSwitchRange from '@modules/analyze/components/NavBar/useSwitchRange'; @@ -11,6 +11,9 @@ import { useTranslation } from 'next-i18next'; import { ClickAwayListener } from '@mui/base/ClickAwayListener'; import DateRangePicker from './DateRangePicker'; import Popper from '@mui/material/Popper'; +import { useTopicType } from '@modules/analyze/store'; +import { useSnapshot } from 'valtio'; +import ContributorDateTagPanel from './ContributorDateTagPanel'; const DateTagPanel = ({ togglePickerPanel, @@ -20,7 +23,6 @@ const DateTagPanel = ({ const { t } = useTranslation(); const i18RangeTag = useI18RangeTag(); const [showRangePicker, setShowRangePicker] = useToggle(false); - const { range } = useQueryDateRange(); const { switchRange } = useSwitchRange(); @@ -91,7 +93,7 @@ const DateTagPanel = ({ const NavDatePicker = ({ disable }: { disable?: boolean }) => { const i18RangeTag = useI18RangeTag(); const { range } = useQueryDateRange(); - + const { topicType } = useSnapshot(useTopicType); const [anchorEl, setAnchorEl] = React.useState(null); const [pickerPanelOpen, togglePickerPanel] = React.useState(false); @@ -135,11 +137,19 @@ const NavDatePicker = ({ disable }: { disable?: boolean }) => { }, ]} > - { - togglePickerPanel(v); - }} - /> + {topicType === 'contributor' ? ( + { + togglePickerPanel(v); + }} + /> + ) : ( + { + togglePickerPanel(v); + }} + /> + )}
diff --git a/apps/web/src/modules/analyze/components/SideBar/Collaboration/TopicNicheCreation.tsx b/apps/web/src/modules/analyze/components/SideBar/Collaboration/TopicNicheCreation.tsx new file mode 100644 index 00000000..ae807567 --- /dev/null +++ b/apps/web/src/modules/analyze/components/SideBar/Collaboration/TopicNicheCreation.tsx @@ -0,0 +1,62 @@ +import React, { useContext } from 'react'; +import { useTranslation } from 'next-i18next'; +import MenuTopicItem from '../Menu/MenuTopicItem'; +import MenuItem from '../Menu/MenuItem'; +import MenuSubItem from '../Menu/MenuSubItem'; +import { useOrganizationsActivity, Organizations, Topic } from '../config'; +import NicheCreationIcon from '@modules/analyze/components/SideBar/assets/NicheCreation.svg'; +import { SideBarContext } from '@modules/analyze/context/SideBarContext'; + +const NicheCreation = () => { + const { t } = useTranslation(); + const organizationsActivity = useOrganizationsActivity(); + const { menuId, subMenuId } = useContext(SideBarContext); + + const menus = ( + <> + {/* + {t('metrics_models:developer_attraction.title')} + */} + + {organizationsActivity.groups.map((item) => { + return ( + + {item.name} + + ); + })} + + } + > + {t('metrics_models:organizations_activity.title')} + + {/* + {t('metrics_models:technological_advancement.title')} + */} + + ); + + return ( + + + + } + menus={menus} + > + {t('analyze:topic.niche_creation')} + + ); +}; + +export default NicheCreation; diff --git a/apps/web/src/modules/analyze/components/SideBar/Collaboration/TopicProductivity.tsx b/apps/web/src/modules/analyze/components/SideBar/Collaboration/TopicProductivity.tsx new file mode 100644 index 00000000..bab53d0a --- /dev/null +++ b/apps/web/src/modules/analyze/components/SideBar/Collaboration/TopicProductivity.tsx @@ -0,0 +1,96 @@ +import React, { useContext } from 'react'; +import { useTranslation } from 'next-i18next'; +import Chaoss from '@common/components/PoweredBy/Chaoss'; +import ProductivityIcon from '@modules/analyze/components/SideBar/assets/Productivity.svg'; +import MenuTopicItem from '../Menu/MenuTopicItem'; +import MenuItem from '../Menu/MenuItem'; +import MenuSubItem from '../Menu/MenuSubItem'; +import { + CollaborationDevelopment, + useCollaborationDevelopmentIndex, + useCommunityServiceAndSupport, + Support, + Topic, +} from '../config'; +import { SideBarContext } from '@modules/analyze/context/SideBarContext'; + +const Productivity = () => { + const { t } = useTranslation(); + const { menuId, subMenuId } = useContext(SideBarContext); + const collaborationDevelopmentIndex = useCollaborationDevelopmentIndex(); + const communityServiceAndSupport = useCommunityServiceAndSupport(); + + const menu = ( + <> + } + subMenu={ + <> + {collaborationDevelopmentIndex.groups.map((item) => { + return ( + + {item.name} + + ); + })} + + } + > + {t('metrics_models:collaboration_development_index.title')} + + } + subMenu={ + <> + {communityServiceAndSupport.groups.map((item) => { + return ( + + {item.name} + + ); + })} + + } + > + {t('metrics_models:community_service_and_support.title')} + + {/* + {t('metrics_models:code_compliance_guarantee.title')} + + + {t('metrics_models:code_security_guarantee.title')} + + + {t('metrics_models:content.title')} + */} + + ); + + return ( + + + + } + menus={menu} + > + {t('analyze:topic.productivity')} + + ); +}; + +export default Productivity; diff --git a/apps/web/src/modules/analyze/components/SideBar/Collaboration/TopicRobustness.tsx b/apps/web/src/modules/analyze/components/SideBar/Collaboration/TopicRobustness.tsx new file mode 100644 index 00000000..ba9c9909 --- /dev/null +++ b/apps/web/src/modules/analyze/components/SideBar/Collaboration/TopicRobustness.tsx @@ -0,0 +1,73 @@ +import React, { useContext } from 'react'; +import { useTranslation } from 'next-i18next'; +import RobustnessIcon from '@modules/analyze/components/SideBar/assets/Robustness.svg'; +import { Activity, useCommunityActivity, Topic } from '../config'; +import MenuItem from '../Menu/MenuItem'; +import MenuTopicItem from '../Menu/MenuTopicItem'; +import MenuSubItem from '../Menu/MenuSubItem'; +import { SideBarContext } from '@modules/analyze/context/SideBarContext'; +import Chaoss from '@common/components/PoweredBy/Chaoss'; + +const Robustness = () => { + const { t } = useTranslation(); + const communityActivity = useCommunityActivity(); + const { menuId, subMenuId } = useContext(SideBarContext); + + const menu = ( + <> + } + subMenu={ + <> + {communityActivity.groups.map((item) => { + return ( + + {item.name} + + ); + })} + + } + > + {t('metrics_models:activity.title')} + + {/* + {t('metrics_models:developer_convertion.title')} + + + {t('metrics_models:developer_retention.title')} + + + {t('metrics_models:inner_connectedness.title')} + + + {t('metrics_models:organization_collaboration_relationships.title')} + + + {t('metrics_models:outbound_connectedness.title')} + */} + + ); + + return ( + + + + } + menus={menu} + > + {t('analyze:topic.robustness')} + + ); +}; + +export default Robustness; diff --git a/apps/web/src/modules/analyze/components/SideBar/Collaboration/index.tsx b/apps/web/src/modules/analyze/components/SideBar/Collaboration/index.tsx new file mode 100644 index 00000000..db977fdf --- /dev/null +++ b/apps/web/src/modules/analyze/components/SideBar/Collaboration/index.tsx @@ -0,0 +1,21 @@ +import React from 'react'; +import TopicProductivity from '@modules/analyze/components/SideBar/Collaboration/TopicProductivity'; +import TopicRobustness from '@modules/analyze/components/SideBar/Collaboration/TopicRobustness'; +import TopicNicheCreation from '@modules/analyze/components/SideBar/Collaboration/TopicNicheCreation'; + +const Divider = () => ( +
+); +const Collaboration = () => { + return ( + <> + + + + + + + + ); +}; +export default Collaboration; diff --git a/apps/web/src/modules/analyze/components/SideBar/Contributor/TopicNicheCreation.tsx b/apps/web/src/modules/analyze/components/SideBar/Contributor/TopicNicheCreation.tsx new file mode 100644 index 00000000..14cc4324 --- /dev/null +++ b/apps/web/src/modules/analyze/components/SideBar/Contributor/TopicNicheCreation.tsx @@ -0,0 +1,34 @@ +import React, { useContext } from 'react'; +import { useTranslation } from 'next-i18next'; +import MenuTopicItem from '../Menu/MenuTopicItem'; +import MenuItem from '../Menu/MenuItem'; +import { Topic } from '../config'; +import NicheCreationIcon from '@modules/analyze/components/SideBar/assets/NicheCreation.svg'; + +const NicheCreation = () => { + const { t } = useTranslation(); + + const menus = ( + <> + + {t('metrics_models:contributor_route.title')} + + + ); + + return ( + + + + } + menus={menus} + > + {t('analyze:topic.niche_creation')} + + ); +}; + +export default NicheCreation; diff --git a/apps/web/src/modules/analyze/components/SideBar/Contributor/TopicProductivity.tsx b/apps/web/src/modules/analyze/components/SideBar/Contributor/TopicProductivity.tsx new file mode 100644 index 00000000..268cc539 --- /dev/null +++ b/apps/web/src/modules/analyze/components/SideBar/Contributor/TopicProductivity.tsx @@ -0,0 +1,56 @@ +import React, { useContext } from 'react'; +import { useTranslation } from 'next-i18next'; +import ProductivityIcon from '@modules/analyze/components/SideBar/assets/Productivity.svg'; +import MenuTopicItem from '../Menu/MenuTopicItem'; +import MenuItem from '../Menu/MenuItem'; +import MenuSubItem from '../Menu/MenuSubItem'; +import { ContributorsPersona, useContributorsPersona, Topic } from '../config'; +import { SideBarContext } from '@modules/analyze/context/SideBarContext'; + +const Productivity = () => { + const { t } = useTranslation(); + const { menuId, subMenuId } = useContext(SideBarContext); + const contributorsPersonaItems = useContributorsPersona(); + + const menu = ( + <> + + {contributorsPersonaItems.groups.map((item) => { + return ( + + {item.name} + + ); + })} + + } + > + {t('metrics_models:contributors_persona.title')} + + + ); + + return ( + + + + } + menus={menu} + > + {t('analyze:topic.productivity')} + + ); +}; + +export default Productivity; diff --git a/apps/web/src/modules/analyze/components/SideBar/Contributor/TopicRobustness.tsx b/apps/web/src/modules/analyze/components/SideBar/Contributor/TopicRobustness.tsx new file mode 100644 index 00000000..9494e68d --- /dev/null +++ b/apps/web/src/modules/analyze/components/SideBar/Contributor/TopicRobustness.tsx @@ -0,0 +1,40 @@ +import React, { useContext } from 'react'; +import { useTranslation } from 'next-i18next'; +import RobustnessIcon from '@modules/analyze/components/SideBar/assets/Robustness.svg'; +import { Activity, useCommunityActivity, Topic } from '../config'; +import MenuItem from '../Menu/MenuItem'; +import MenuTopicItem from '../Menu/MenuTopicItem'; +import MenuSubItem from '../Menu/MenuSubItem'; +import { SideBarContext } from '@modules/analyze/context/SideBarContext'; +import Chaoss from '@common/components/PoweredBy/Chaoss'; + +const Robustness = () => { + const { t } = useTranslation(); + + const menu = ( + <> + + {t('metrics_models:contributor_reputation.title')} + + + {t('metrics_models:user_reputation.title')} + + + ); + + return ( + + + + } + menus={menu} + > + {t('analyze:topic.robustness')} + + ); +}; + +export default Robustness; diff --git a/apps/web/src/modules/analyze/components/SideBar/Contributor/index.tsx b/apps/web/src/modules/analyze/components/SideBar/Contributor/index.tsx new file mode 100644 index 00000000..fbacc217 --- /dev/null +++ b/apps/web/src/modules/analyze/components/SideBar/Contributor/index.tsx @@ -0,0 +1,21 @@ +import React from 'react'; +import TopicProductivity from '@modules/analyze/components/SideBar/Contributor/TopicProductivity'; +import TopicRobustness from '@modules/analyze/components/SideBar/Contributor/TopicRobustness'; +import TopicNicheCreation from '@modules/analyze/components/SideBar/Contributor/TopicNicheCreation'; + +const Divider = () => ( +
+); +const Contributor = () => { + return ( + <> + + + + + + + + ); +}; +export default Contributor; diff --git a/apps/web/src/modules/analyze/components/SideBar/TopicTab.tsx b/apps/web/src/modules/analyze/components/SideBar/TopicTab.tsx new file mode 100644 index 00000000..9d233ec6 --- /dev/null +++ b/apps/web/src/modules/analyze/components/SideBar/TopicTab.tsx @@ -0,0 +1,32 @@ +import React from 'react'; +import { useTranslation } from 'next-i18next'; +import MyTab from '@common/components/Tab'; +import { useTopicType, setTopicType, TopicType } from '@modules/analyze/store'; +import { useSnapshot } from 'valtio'; + +const TopicTab = () => { + const { t } = useTranslation(); + const { topicType } = useSnapshot(useTopicType); + const tabOptions = [ + { + label: t('analyze:collaboration'), + value: 'collaboration', + }, + { label: t('analyze:contributor'), value: 'contributor' }, + { label: t('analyze:software'), value: 'software', disable: true }, + ]; + + return ( +
+
+ setTopicType(v as TopicType)} + /> +
+
+ ); +}; + +export default TopicTab; diff --git a/apps/web/src/modules/analyze/components/SideBar/config.ts b/apps/web/src/modules/analyze/components/SideBar/config.ts index 5e8d9737..90335ced 100644 --- a/apps/web/src/modules/analyze/components/SideBar/config.ts +++ b/apps/web/src/modules/analyze/components/SideBar/config.ts @@ -46,7 +46,12 @@ export enum Organizations { // MeetingFrequency= 'MeetingFrequency', // MeetingAttendeeCount = "MeetingAttendeeCount" } - +export enum ContributorsPersona { + Overview = 'contributors_persona_overview', + Contributor = 'contributors_persona_contributor', + Issue = 'contributors_persona_issue', + Pr = 'contributors_persona_pr', +} export enum Topic { Overview = 'topic_overview', Productivity = 'topic_productivity', @@ -59,7 +64,7 @@ export enum Section { CommunityServiceAndSupport = 'community_service_support', CommunityActivity = 'community_activity', OrganizationsActivity = 'organizations_activity', - StarterProjectHealth = 'starter_project_health', + ContributorsPersona = 'contributors_persona', } export const useCollaborationDevelopmentIndex = () => { @@ -263,3 +268,25 @@ export const useOrganizationsActivity = () => { ], }; }; +export const useContributorsPersona = () => { + const { t } = useTranslation(); + return { + topic: Topic.NicheCreation, + name: t('metrics_models:contributors_persona.title'), + id: Organizations.Overview, + groups: [ + { + name: t('metrics_models:contributors_persona.metrics.contributor'), + id: ContributorsPersona.Contributor, + }, + { + name: t('metrics_models:contributors_persona.metrics.issue'), + id: ContributorsPersona.Issue, + }, + { + name: t('metrics_models:contributors_persona.metrics.pr'), + id: ContributorsPersona.Pr, + }, + ], + }; +}; diff --git a/apps/web/src/modules/analyze/components/SideBar/index.tsx b/apps/web/src/modules/analyze/components/SideBar/index.tsx index 02c51beb..571f74f9 100644 --- a/apps/web/src/modules/analyze/components/SideBar/index.tsx +++ b/apps/web/src/modules/analyze/components/SideBar/index.tsx @@ -7,13 +7,15 @@ import { checkIsPending } from '@modules/analyze/constant'; import useHashchangeEvent from '@common/hooks/useHashchangeEvent'; import MenuLoading from '@modules/analyze/components/SideBar/Menu/MenuLoading'; import TopicOverview from '@modules/analyze/components/SideBar/TopicOverview'; -import TopicProductivity from '@modules/analyze/components/SideBar/TopicProductivity'; -import TopicRobustness from '@modules/analyze/components/SideBar/TopicRobustness'; -import TopicNicheCreation from '@modules/analyze/components/SideBar/TopicNicheCreation'; +import TopicTab from '@modules/analyze/components/SideBar/TopicTab'; +import Collaboration from '@modules/analyze/components/SideBar/Collaboration'; +import Contributor from '@modules/analyze/components/SideBar/Contributor'; import useActiveMenuId from '@modules/analyze/components/SideBar/useActiveMenuId'; import NoSsr from '@common/components/NoSsr'; import { SideBarContextProvider } from '@modules/analyze/context/SideBarContext'; import ErrorFallback from '@common/components/ErrorFallback'; +import { useTopicType } from '@modules/analyze/store'; +import { useSnapshot } from 'valtio'; const Divider = () => (
@@ -22,15 +24,19 @@ const Divider = () => ( const SideBarMenuContent = () => { const activeId = useHashchangeEvent(); const active = useActiveMenuId(activeId); + const { topicType } = useSnapshot(useTopicType); + + let source; + if (topicType === 'collaboration') { + source = ; + } else { + source = ; + } return ( + - - - - - - + {source} ); }; diff --git a/apps/web/src/modules/analyze/hooks/useQueryDateRange.ts b/apps/web/src/modules/analyze/hooks/useQueryDateRange.ts index 615da9d3..dff8fa9b 100644 --- a/apps/web/src/modules/analyze/hooks/useQueryDateRange.ts +++ b/apps/web/src/modules/analyze/hooks/useQueryDateRange.ts @@ -1,12 +1,20 @@ import { useMemo } from 'react'; import { useRouter } from 'next/router'; import { RangeTag, rangeTags, timeRange } from '../constant'; +import { useTopicType } from '@modules/analyze/store'; +import { useSnapshot } from 'valtio'; +import useVerifyDetailRange from '@modules/analyze/hooks/useVerifyDetailRange'; const defaultVal = { range: '6M' as RangeTag, timeStart: timeRange['6M'].start, timeEnd: timeRange['6M'].end, }; +const contributorDefaultVal = { + range: '1M' as RangeTag, + timeStart: timeRange['1M'].start, + timeEnd: timeRange['1M'].end, +}; export const isDateRange = (range: string) => { if (range.includes(' ~ ')) { const start = range.split(' ~ ')[0]; @@ -23,7 +31,13 @@ export const isDateRange = (range: string) => { const useQueryDateRange = () => { const router = useRouter(); const range = router.query.range as RangeTag; + const { topicType } = useSnapshot(useTopicType); + const { isLoading, data } = useVerifyDetailRange(); + return useMemo(() => { + if (topicType === 'contributor' && !data?.verifyDetailDataRange?.status) { + return contributorDefaultVal; + } if (!range) { return defaultVal; } else if (rangeTags.includes(range)) { @@ -42,7 +56,7 @@ const useQueryDateRange = () => { } else { return defaultVal; } - }, [range]); + }, [range, topicType, data]); }; export default useQueryDateRange; diff --git a/apps/web/src/modules/analyze/hooks/useVerifyDetailRange.ts b/apps/web/src/modules/analyze/hooks/useVerifyDetailRange.ts new file mode 100644 index 00000000..61cfca87 --- /dev/null +++ b/apps/web/src/modules/analyze/hooks/useVerifyDetailRange.ts @@ -0,0 +1,15 @@ +import client from '@common/gqlClient'; +import { useVerifyDetailDataRangeQuery } from '@oss-compass/graphql'; +import useExtractShortIds from './useExtractShortIds'; + +const useVerifyDetailRange = () => { + const { shortIds } = useExtractShortIds(); + + const { data, isLoading } = useVerifyDetailDataRangeQuery(client, { + shortCode: shortIds[0], + }); + + return { isLoading, data }; +}; + +export default useVerifyDetailRange; diff --git a/apps/web/src/modules/analyze/store/index.ts b/apps/web/src/modules/analyze/store/index.ts index 5927bfda..3ac8c645 100644 --- a/apps/web/src/modules/analyze/store/index.ts +++ b/apps/web/src/modules/analyze/store/index.ts @@ -1,2 +1,3 @@ export * from './chartTheme'; export * from './chartUserSetting'; +export * from './topicType'; diff --git a/apps/web/src/modules/analyze/store/topicType.ts b/apps/web/src/modules/analyze/store/topicType.ts new file mode 100644 index 00000000..7acdf776 --- /dev/null +++ b/apps/web/src/modules/analyze/store/topicType.ts @@ -0,0 +1,12 @@ +import { proxy } from 'valtio'; + +export type TopicType = 'collaboration' | 'contributor' | null; +export const useTopicType = proxy<{ + topicType: TopicType; +}>({ + topicType: 'collaboration', +}); + +export const setTopicType = (v: TopicType) => { + useTopicType.topicType = v; +}; diff --git a/apps/web/src/pages/analyze/metric/[slugs].tsx b/apps/web/src/pages/analyze/metric/[slugs].tsx deleted file mode 100644 index 342ebbab..00000000 --- a/apps/web/src/pages/analyze/metric/[slugs].tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React from 'react'; -import { GetServerSideProps } from 'next'; -import getLocalesFile from '@common/utils/getLocalesFile'; -import MetricDetailPage from '@modules/analyze/MetricDetailPage'; -import AuthRequire from '@modules/auth/AuthRequire'; - -export const getServerSideProps: GetServerSideProps = async ({ req, res }) => { - return { - props: { - ...(await getLocalesFile(req.cookies, ['analyze', 'metrics_models'])), - }, - }; -}; - -const MetricDetail = () => { - return ( - - - - ); -}; - -export default MetricDetail; diff --git a/apps/web/src/styles/antd.scss b/apps/web/src/styles/antd.scss new file mode 100644 index 00000000..baa3e8b0 --- /dev/null +++ b/apps/web/src/styles/antd.scss @@ -0,0 +1,30 @@ +:where(.css-dev-only-do-not-override-pr0fja).ant-btn-primary { + background-color: #1677ff !important; +} +.ant-spin-nested-loading { + height: 100%; + .ant-spin-container { + height: 100%; + display: flex; + flex-direction: column; + } + .ant-table-container { + height: 100%; + display: flex; + flex-direction: column; + .ant-table-body { + position: relative; + flex: 1; + table { + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + } + } + } + .ant-table { + flex: 1; + } +} diff --git a/apps/web/src/styles/globals.scss b/apps/web/src/styles/globals.scss index a342a942..5700d8c6 100644 --- a/apps/web/src/styles/globals.scss +++ b/apps/web/src/styles/globals.scss @@ -1,4 +1,5 @@ @import 'tailwind.css'; +@import 'antd.scss'; html, body { @@ -77,6 +78,3 @@ input[type='submit'] { .viewer-backdrop { background-color: rgba(0, 0, 0, 70%); } -:where(.css-dev-only-do-not-override-pr0fja).ant-btn-primary { - background-color: #1677ff !important; -} diff --git a/packages/graphql/src/generated.ts b/packages/graphql/src/generated.ts index 139b9360..dc415cde 100644 --- a/packages/graphql/src/generated.ts +++ b/packages/graphql/src/generated.ts @@ -1401,8 +1401,6 @@ export type Query = { metricGroupActivity: Array; /** Get overview data of metrics set on compass lab */ metricSetOverview?: Maybe>; - /** Get starter project health metrics data of compass */ - metricStarterProjectHealth: Array; /** Get my member permissions of a lab model */ myMemberPermission?: Maybe; /** Get detail data of my lab models */ @@ -1424,6 +1422,8 @@ export type Query = { summaryGroupActivity: Array; /** Get trending data of compass */ trending: Array; + /** Check if the data range is valid */ + verifyDetailDataRange: ValidDataRange; }; export type QueryAnalysisStatusArgs = { @@ -1647,13 +1647,6 @@ export type QueryMetricGroupActivityArgs = { repoType?: InputMaybe; }; -export type QueryMetricStarterProjectHealthArgs = { - beginDate?: InputMaybe; - endDate?: InputMaybe; - label: Scalars['String']; - level?: InputMaybe; -}; - export type QueryMyMemberPermissionArgs = { modelId?: InputMaybe; }; @@ -1718,6 +1711,13 @@ export type QueryTrendingArgs = { level?: InputMaybe; }; +export type QueryVerifyDetailDataRangeArgs = { + beginDate?: InputMaybe; + endDate?: InputMaybe; + label?: InputMaybe; + shortCode?: InputMaybe; +}; + export type Repo = { __typename?: 'Repo'; backend?: Maybe; @@ -1822,46 +1822,6 @@ export type SortOptionInput = { type: Scalars['String']; }; -export type StarterProjectHealthMetric = { - __typename?: 'StarterProjectHealthMetric'; - /** the smallest number of people that make 50% of contributions */ - busFactor?: Maybe; - /** the change request closure ratio same period */ - changeRequestClosedCountAllPeriod?: Maybe; - /** the change request closed count recently */ - changeRequestClosedCountRecently?: Maybe; - /** the change request closure ratio all period */ - changeRequestClosureRatioAllPeriod?: Maybe; - /** the change request closure ratio recently */ - changeRequestClosureRatioRecently?: Maybe; - /** the change request created count all period */ - changeRequestCreatedCountAllPeriod?: Maybe; - /** the change request created count recently */ - changeRequestCreatedCountRecently?: Maybe; - /** metric model creatiton time */ - grimoireCreationDate?: Maybe; - /** metric model object identification */ - label?: Maybe; - /** metric model object level */ - level?: Maybe; - /** mean of pull request time to close */ - prTimeToCloseAvg?: Maybe; - /** middle of pull request time to close */ - prTimeToCloseMid?: Maybe; - /** mean of pull request time to first response */ - prTimeToFirstResponseAvg?: Maybe; - /** middle of pull request time to first response */ - prTimeToFirstResponseMid?: Maybe; - /** the frequency of project releases (including point releases with bug fixes) */ - releaseFrequency?: Maybe; - /** metric model object short code */ - shortCode?: Maybe; - /** score of starter project health model */ - starterProjectHealth?: Maybe; - /** metric scores for repositories type, only for community (software-artifact/governance) */ - type?: Maybe; -}; - export type SubjectSubscriptionCount = { __typename?: 'SubjectSubscriptionCount'; count: Scalars['Int']; @@ -2078,6 +2038,22 @@ export type UserUnbindPayload = { status: Scalars['String']; }; +export type ValidDataRange = { + __typename?: 'ValidDataRange'; + /** metric model object identification */ + label?: Maybe; + /** metric model object level (project or repo) */ + level?: Maybe; + /** max valid date */ + max?: Maybe; + /** min valid date */ + min?: Maybe; + /** metric model object short code */ + shortCode?: Maybe; + /** whether it is a valid data range */ + status?: Maybe; +}; + export type CommentFragment = { __typename?: 'ModelComment'; content: string; @@ -4060,38 +4036,6 @@ export type SummaryQuery = { }>; }; -export type LabMetricQueryVariables = Exact<{ - label: Scalars['String']; - level?: InputMaybe; - start?: InputMaybe; - end?: InputMaybe; -}>; - -export type LabMetricQuery = { - __typename?: 'Query'; - metricStarterProjectHealth: Array<{ - __typename?: 'StarterProjectHealthMetric'; - busFactor?: number | null; - changeRequestClosedCountAllPeriod?: number | null; - changeRequestClosedCountRecently?: number | null; - changeRequestClosureRatioAllPeriod?: number | null; - changeRequestClosureRatioRecently?: number | null; - changeRequestCreatedCountAllPeriod?: number | null; - changeRequestCreatedCountRecently?: number | null; - grimoireCreationDate?: any | null; - label?: string | null; - level?: string | null; - shortCode?: string | null; - prTimeToCloseAvg?: number | null; - prTimeToCloseMid?: number | null; - prTimeToFirstResponseAvg?: number | null; - prTimeToFirstResponseMid?: number | null; - releaseFrequency?: number | null; - starterProjectHealth?: number | null; - type?: string | null; - }>; -}; - export type MetricStatFragment = { __typename?: 'MetricStat'; mean?: number | null; @@ -4560,6 +4504,23 @@ export type PullsCommentQuery = { }; }; +export type VerifyDetailDataRangeQueryVariables = Exact<{ + label?: InputMaybe; + shortCode?: InputMaybe; + beginDate?: InputMaybe; + endDate?: InputMaybe; +}>; + +export type VerifyDetailDataRangeQuery = { + __typename?: 'Query'; + verifyDetailDataRange: { + __typename?: 'ValidDataRange'; + status?: boolean | null; + max?: any | null; + min?: any | null; + }; +}; + export const MetricsFragmentDoc = /*#__PURE__*/ ` fragment metrics on ModelMetric { category @@ -7363,67 +7324,6 @@ useSummaryQuery.fetcher = ( variables, headers ); -export const LabMetricDocument = /*#__PURE__*/ ` - query labMetric($label: String!, $level: String = "repo", $start: ISO8601DateTime, $end: ISO8601DateTime) { - metricStarterProjectHealth( - label: $label - level: $level - beginDate: $start - endDate: $end - ) { - busFactor - changeRequestClosedCountAllPeriod - changeRequestClosedCountRecently - changeRequestClosureRatioAllPeriod - changeRequestClosureRatioRecently - changeRequestCreatedCountAllPeriod - changeRequestCreatedCountRecently - grimoireCreationDate - label - level - shortCode - prTimeToCloseAvg - prTimeToCloseMid - prTimeToFirstResponseAvg - prTimeToFirstResponseMid - releaseFrequency - starterProjectHealth - type - } -} - `; -export const useLabMetricQuery = ( - client: GraphQLClient, - variables: LabMetricQueryVariables, - options?: UseQueryOptions, - headers?: RequestInit['headers'] -) => - useQuery( - ['labMetric', variables], - fetcher( - client, - LabMetricDocument, - variables, - headers - ), - options - ); - -useLabMetricQuery.getKey = (variables: LabMetricQueryVariables) => [ - 'labMetric', - variables, -]; -useLabMetricQuery.fetcher = ( - client: GraphQLClient, - variables: LabMetricQueryVariables, - headers?: RequestInit['headers'] -) => - fetcher( - client, - LabMetricDocument, - variables, - headers - ); export const CollectionHottestDocument = /*#__PURE__*/ ` query collectionHottest($ident: String!, $limit: Int) { collectionHottest(ident: $ident, limit: $limit) { @@ -8420,3 +8320,56 @@ usePullsCommentQuery.fetcher = ( variables, headers ); +export const VerifyDetailDataRangeDocument = /*#__PURE__*/ ` + query verifyDetailDataRange($label: String, $shortCode: String, $beginDate: ISO8601DateTime, $endDate: ISO8601DateTime) { + verifyDetailDataRange( + label: $label + shortCode: $shortCode + beginDate: $beginDate + endDate: $endDate + ) { + status + max + min + } +} + `; +export const useVerifyDetailDataRangeQuery = < + TData = VerifyDetailDataRangeQuery, + TError = unknown +>( + client: GraphQLClient, + variables?: VerifyDetailDataRangeQueryVariables, + options?: UseQueryOptions, + headers?: RequestInit['headers'] +) => + useQuery( + variables === undefined + ? ['verifyDetailDataRange'] + : ['verifyDetailDataRange', variables], + fetcher( + client, + VerifyDetailDataRangeDocument, + variables, + headers + ), + options + ); + +useVerifyDetailDataRangeQuery.getKey = ( + variables?: VerifyDetailDataRangeQueryVariables +) => + variables === undefined + ? ['verifyDetailDataRange'] + : ['verifyDetailDataRange', variables]; +useVerifyDetailDataRangeQuery.fetcher = ( + client: GraphQLClient, + variables?: VerifyDetailDataRangeQueryVariables, + headers?: RequestInit['headers'] +) => + fetcher( + client, + VerifyDetailDataRangeDocument, + variables, + headers + ); diff --git a/packages/graphql/src/gql/query.graphql b/packages/graphql/src/gql/query.graphql index 1526bd4b..7f43afb8 100644 --- a/packages/graphql/src/gql/query.graphql +++ b/packages/graphql/src/gql/query.graphql @@ -422,38 +422,38 @@ query summary($start: ISO8601DateTime, $end: ISO8601DateTime) { # } } -query labMetric( - $label: String! - $level: String = "repo" - $start: ISO8601DateTime - $end: ISO8601DateTime -) { - metricStarterProjectHealth( - label: $label - level: $level - beginDate: $start - endDate: $end - ) { - busFactor - changeRequestClosedCountAllPeriod - changeRequestClosedCountRecently - changeRequestClosureRatioAllPeriod - changeRequestClosureRatioRecently - changeRequestCreatedCountAllPeriod - changeRequestCreatedCountRecently - grimoireCreationDate - label - level - shortCode - prTimeToCloseAvg - prTimeToCloseMid - prTimeToFirstResponseAvg - prTimeToFirstResponseMid - releaseFrequency - starterProjectHealth - type - } -} +# query labMetric( +# $label: String! +# $level: String = "repo" +# $start: ISO8601DateTime +# $end: ISO8601DateTime +# ) { +# metricStarterProjectHealth( +# label: $label +# level: $level +# beginDate: $start +# endDate: $end +# ) { +# busFactor +# changeRequestClosedCountAllPeriod +# changeRequestClosedCountRecently +# changeRequestClosureRatioAllPeriod +# changeRequestClosureRatioRecently +# changeRequestCreatedCountAllPeriod +# changeRequestCreatedCountRecently +# grimoireCreationDate +# label +# level +# shortCode +# prTimeToCloseAvg +# prTimeToCloseMid +# prTimeToFirstResponseAvg +# prTimeToFirstResponseMid +# releaseFrequency +# starterProjectHealth +# type +# } +# } fragment metricStat on MetricStat { mean @@ -879,3 +879,20 @@ query pullsComment( } } } +query verifyDetailDataRange( + $label: String + $shortCode: String + $beginDate: ISO8601DateTime + $endDate: ISO8601DateTime +) { + verifyDetailDataRange( + label: $label + shortCode: $shortCode + beginDate: $beginDate + endDate: $endDate + ) { + status + max + min + } +} From 38f2e402d57109ec3d7ac90669be6291ef7e4232 Mon Sep 17 00:00:00 2001 From: laixingyou Date: Fri, 24 Nov 2023 16:56:16 +0800 Subject: [PATCH 2/3] fix: clean old api Signed-off-by: laixingyou --- .../src/common/transform/transMetricToAxis.ts | 4 ++-- .../DataView/OverviewSummary/index.tsx | 1 - .../src/modules/analyze/MetricDetailPage.tsx | 21 ------------------- 3 files changed, 2 insertions(+), 24 deletions(-) delete mode 100644 apps/web/src/modules/analyze/MetricDetailPage.tsx diff --git a/apps/web/src/common/transform/transMetricToAxis.ts b/apps/web/src/common/transform/transMetricToAxis.ts index 872e9bf2..7c9d7440 100644 --- a/apps/web/src/common/transform/transMetricToAxis.ts +++ b/apps/web/src/common/transform/transMetricToAxis.ts @@ -1,7 +1,7 @@ import parseISO from 'date-fns/parseISO'; import getUnixTime from 'date-fns/getUnixTime'; import { Level } from '@modules/analyze/constant'; -import { MetricQuery, LabMetricQuery } from '@oss-compass/graphql'; +import { MetricQuery } from '@oss-compass/graphql'; import { toFixed } from '@common/utils'; import { TransOpt, TransResult } from '@modules/analyze/type'; import { CommunityRepoType } from '../constant'; @@ -9,7 +9,7 @@ import { CommunityRepoType } from '../constant'; interface DataItem { label: string; level: Level; - result: MetricQuery | LabMetricQuery | undefined; + result: MetricQuery | undefined; } function getDateMap( diff --git a/apps/web/src/modules/analyze/DataView/OverviewSummary/index.tsx b/apps/web/src/modules/analyze/DataView/OverviewSummary/index.tsx index a4bddd3a..1e23dfad 100644 --- a/apps/web/src/modules/analyze/DataView/OverviewSummary/index.tsx +++ b/apps/web/src/modules/analyze/DataView/OverviewSummary/index.tsx @@ -7,7 +7,6 @@ import useMetricQueryData from '@modules//analyze/hooks/useMetricQueryData'; import { withErrorBoundary } from 'react-error-boundary'; import ErrorFallback from '@common/components/ErrorFallback'; import { Level } from '@modules/analyze/constant'; -import MetricDashboard from '@modules/analyze/components/MetricDetail/MetricDashboard'; const Overview: React.FC<{ data: DeepReadonly< diff --git a/apps/web/src/modules/analyze/MetricDetailPage.tsx b/apps/web/src/modules/analyze/MetricDetailPage.tsx deleted file mode 100644 index b867dfde..00000000 --- a/apps/web/src/modules/analyze/MetricDetailPage.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import React from 'react'; -import LegacyLabelRedirect from './components/Container/LegacyLabelRedirect'; -import AnalyzeContainer from './components/Container/AnalyzeContainer'; -import { Main } from '@common/components/Layout'; -import MetricDetailMore from './components/MetricDetail/MetricDetailMore'; -import Header from '@common/components/Header'; - -const Analyze = () => { - return ( - - -
-
- -
- - - ); -}; - -export default Analyze; From d8b40b705b12756b2e7ad60b441da651f3f226fc Mon Sep 17 00:00:00 2001 From: laixingyou Date: Fri, 24 Nov 2023 17:38:29 +0800 Subject: [PATCH 3/3] feat: add homepage banner Signed-off-by: laixingyou --- apps/web/public/images/home/hero.png | Bin 0 -> 636665 bytes apps/web/src/modules/home/Banner/SvgGroup.tsx | 238 ------------------ .../web/src/modules/home/Banner/assets/01.svg | 20 -- .../web/src/modules/home/Banner/assets/02.svg | 14 -- .../web/src/modules/home/Banner/assets/03.svg | 22 -- .../web/src/modules/home/Banner/assets/04.svg | 17 -- .../web/src/modules/home/Banner/assets/05.svg | 17 -- .../web/src/modules/home/Banner/assets/06.svg | 17 -- .../web/src/modules/home/Banner/assets/07.svg | 9 - .../web/src/modules/home/Banner/assets/08.svg | 19 -- .../src/modules/home/Banner/assets/hero.png | Bin 0 -> 636665 bytes apps/web/src/modules/home/Banner/index.tsx | 40 ++- 12 files changed, 14 insertions(+), 399 deletions(-) create mode 100644 apps/web/public/images/home/hero.png delete mode 100644 apps/web/src/modules/home/Banner/SvgGroup.tsx delete mode 100644 apps/web/src/modules/home/Banner/assets/01.svg delete mode 100644 apps/web/src/modules/home/Banner/assets/02.svg delete mode 100644 apps/web/src/modules/home/Banner/assets/03.svg delete mode 100644 apps/web/src/modules/home/Banner/assets/04.svg delete mode 100644 apps/web/src/modules/home/Banner/assets/05.svg delete mode 100644 apps/web/src/modules/home/Banner/assets/06.svg delete mode 100644 apps/web/src/modules/home/Banner/assets/07.svg delete mode 100644 apps/web/src/modules/home/Banner/assets/08.svg create mode 100644 apps/web/src/modules/home/Banner/assets/hero.png diff --git a/apps/web/public/images/home/hero.png b/apps/web/public/images/home/hero.png new file mode 100644 index 0000000000000000000000000000000000000000..1ae80c71d9ce2a27a7871e324222d62a25630c21 GIT binary patch literal 636665 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%0D}5aPbm_{4XCv00+*&jNRaw-s`-6Bcl8 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 LWB{@ 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