mirror of
https://github.com/Unleash/unleash.git
synced 2025-02-04 00:18:01 +01:00
feat: feedback for project overview (#6712)
This commit is contained in:
parent
6a0135a482
commit
e8c50f55d5
@ -29,7 +29,7 @@ export const LastSeenProgress = ({ yes, no }: ILastSeenProgressProps) => {
|
|||||||
return <Box />;
|
return <Box />;
|
||||||
}
|
}
|
||||||
|
|
||||||
const progress = (yes / (yes + no)) * 100;
|
const progress = Math.round((yes / (yes + no)) * 100);
|
||||||
return (
|
return (
|
||||||
<ProgressContainer>
|
<ProgressContainer>
|
||||||
<Box sx={{ position: 'relative' }}>
|
<Box sx={{ position: 'relative' }}>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { type FC, useEffect } from 'react';
|
import { type FC, useEffect, useState } from 'react';
|
||||||
import { Box, styled } from '@mui/material';
|
import { Box, styled } from '@mui/material';
|
||||||
import ProjectInfo from './ProjectInfo/ProjectInfo';
|
import ProjectInfo from './ProjectInfo/ProjectInfo';
|
||||||
import { useRequiredPathParam } from 'hooks/useRequiredPathParam';
|
import { useRequiredPathParam } from 'hooks/useRequiredPathParam';
|
||||||
@ -11,6 +11,7 @@ import { usePageTitle } from 'hooks/usePageTitle';
|
|||||||
import { useLastViewedProject } from 'hooks/useLastViewedProject';
|
import { useLastViewedProject } from 'hooks/useLastViewedProject';
|
||||||
import { useUiFlag } from 'hooks/useUiFlag';
|
import { useUiFlag } from 'hooks/useUiFlag';
|
||||||
import { ProjectOverviewChangeRequests } from './ProjectOverviewChangeRequests';
|
import { ProjectOverviewChangeRequests } from './ProjectOverviewChangeRequests';
|
||||||
|
import { useFeedback } from '../../feedbackNew/useFeedback';
|
||||||
import { OldProjectFeatureToggles } from './PaginatedProjectFeatureToggles/OldProjectFeatureToggles';
|
import { OldProjectFeatureToggles } from './PaginatedProjectFeatureToggles/OldProjectFeatureToggles';
|
||||||
|
|
||||||
const refreshInterval = 15 * 1000;
|
const refreshInterval = 15 * 1000;
|
||||||
@ -99,6 +100,31 @@ const OldProjectOverview: FC<{
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const useDelayedFeedbackPrompt = () => {
|
||||||
|
const { openFeedback, hasSubmittedFeedback } = useFeedback(
|
||||||
|
'newProjectOverview',
|
||||||
|
'manual',
|
||||||
|
);
|
||||||
|
|
||||||
|
const [seenFeedback, setSeenFeedback] = useState(false);
|
||||||
|
useEffect(() => {
|
||||||
|
const timer = setTimeout(() => {
|
||||||
|
if (!seenFeedback && !hasSubmittedFeedback) {
|
||||||
|
openFeedback({
|
||||||
|
title: 'How easy was it to work with the project overview in Unleash?',
|
||||||
|
positiveLabel:
|
||||||
|
'What do you like most about the updated project overview?',
|
||||||
|
areasForImprovementsLabel:
|
||||||
|
'What improvements are needed in the project overview?',
|
||||||
|
});
|
||||||
|
setSeenFeedback(true);
|
||||||
|
}
|
||||||
|
}, 30000);
|
||||||
|
|
||||||
|
return () => clearTimeout(timer);
|
||||||
|
}, [hasSubmittedFeedback, openFeedback, seenFeedback]);
|
||||||
|
};
|
||||||
|
|
||||||
const NewProjectOverview: FC<{
|
const NewProjectOverview: FC<{
|
||||||
storageKey?: string;
|
storageKey?: string;
|
||||||
}> = ({ storageKey = 'project-overview-v2' }) => {
|
}> = ({ storageKey = 'project-overview-v2' }) => {
|
||||||
@ -108,6 +134,7 @@ const NewProjectOverview: FC<{
|
|||||||
const { project } = useProjectOverview(projectId, {
|
const { project } = useProjectOverview(projectId, {
|
||||||
refreshInterval,
|
refreshInterval,
|
||||||
});
|
});
|
||||||
|
useDelayedFeedbackPrompt();
|
||||||
|
|
||||||
usePageTitle(`Project overview – ${projectName}`);
|
usePageTitle(`Project overview – ${projectName}`);
|
||||||
const { setLastViewed } = useLastViewedProject();
|
const { setLastViewed } = useLastViewedProject();
|
||||||
|
@ -4,7 +4,8 @@ export type IFeedbackCategory =
|
|||||||
| 'search'
|
| 'search'
|
||||||
| 'newStrategyForm'
|
| 'newStrategyForm'
|
||||||
| 'insights'
|
| 'insights'
|
||||||
| 'applicationOverview';
|
| 'applicationOverview'
|
||||||
|
| 'newProjectOverview';
|
||||||
|
|
||||||
export const useUserSubmittedFeedback = (category: IFeedbackCategory) => {
|
export const useUserSubmittedFeedback = (category: IFeedbackCategory) => {
|
||||||
const key = `unleash-userSubmittedFeedback:${category}`;
|
const key = `unleash-userSubmittedFeedback:${category}`;
|
||||||
|
Loading…
Reference in New Issue
Block a user