Skip to content

Commit 33319c0

Browse files
junjun107entrotech
andauthored
2262 feature flag survey and mobile survey (#2269)
* fix feature refetch after add and delete * Fix user is null when use featureflag * Update userFeedbacksurvey mobile size * Undo usefeatureflag hook refech name * Update App.jsx Fixed spelling of userFeedbackSurvey * Fix refresh when add & delete --------- Co-authored-by: John Darragh <[email protected]>
1 parent b816b77 commit 33319c0

File tree

5 files changed

+19
-8
lines changed

5 files changed

+19
-8
lines changed

client/src/App.jsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,11 @@ import { AppStateProvider } from "./appReducer";
1212
import SEO from "./components/SEO";
1313
import AppRoutes from "./Routes";
1414
import { MapProvider } from "react-map-gl";
15+
import useFeatureFlag from "./hooks/useFeatureFlag";
1516

1617
function App() {
18+
const hasUserFeedbackSuveyFeatureFlag = useFeatureFlag("userFeedbackSurvey");
19+
1720
useEffect(() => {
1821
analytics.postEvent("visitAppComponent");
1922
}, []);
@@ -41,7 +44,7 @@ function App() {
4144
<MapProvider>
4245
<Router>
4346
<AppRoutes />
44-
<SurveySnackbar />
47+
{hasUserFeedbackSuveyFeatureFlag && <SurveySnackbar />}
4548
</Router>
4649
</MapProvider>
4750
</ThemeProvider>

client/src/components/Admin/Features.jsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,11 @@ const Features = () => {
5151
refetch: featureToLoginRefetch,
5252
} = useFeatureToLogin();
5353

54-
const { data: featuresData, loading: featuresLoading } = useFeatures();
54+
const {
55+
data: featuresData,
56+
loading: featuresLoading,
57+
refetch: featureRefetch,
58+
} = useFeatures();
5559

5660
useEffect(() => {
5761
if (featuresData && featureToLoginData) {
@@ -120,7 +124,7 @@ const Features = () => {
120124
}),
121125
onSubmit: async (values, { resetForm, setSubmitting }) => {
122126
await featureService.post(values);
123-
featureToLoginRefetch();
127+
await featureRefetch();
124128
resetForm();
125129
setSubmitting(false);
126130
handleModalClose();
@@ -288,7 +292,7 @@ const Features = () => {
288292
onClick={async () => {
289293
try {
290294
await featureService.remove(row.featureId);
291-
featureToLoginRefetch();
295+
featureRefetch();
292296
} catch (error) {
293297
console.error(
294298
"Failed to remove user from feature:",

client/src/components/UI/SurveySnackbar.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,9 @@ const SurveySnackbar = () => {
3333
display: "flex",
3434
alignItems: "center",
3535
justifyContent: "space-between",
36-
width: "520px",
36+
width: { xs: "100%" },
3737
cursor: "pointer",
38+
gap: { xs: 1 },
3839
}}
3940
>
4041
<span> Participate in a quick survey</span>

client/src/hooks/useFeatureFlag.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
1-
import { useUserContext } from "../contexts/userContext";
21
import { useFeatures } from "../hooks/useFeatures";
32

43
export default function useFeatureFlag(flagName) {
5-
const { user } = useUserContext();
64
const { data: featureFlags } = useFeatures();
75

86
const featureFlag = featureFlags.find((feature) => feature.name === flagName);
97

108
const isFeatureEnabled = featureFlag && featureFlag.is_enabled;
119

10+
const sessionUser = JSON.parse(sessionStorage.getItem("user") || "{}");
11+
1212
const userHasFeature =
13-
user && user.features && user.features.includes(flagName);
13+
sessionUser &&
14+
sessionUser.features &&
15+
sessionUser.features.includes(flagName);
1416

1517
return isFeatureEnabled || userHasFeature;
1618
}

client/src/hooks/useFeatures.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,6 @@ export const useFeatures = () => {
2525
useEffect(() => {
2626
fetch();
2727
}, [fetch]);
28+
2829
return { data, error, loading, refetch: fetch };
2930
};

0 commit comments

Comments
 (0)