Skip to content

Commit 16fbe16

Browse files
committed
refactor: expose feature check as hook
1 parent c846171 commit 16fbe16

File tree

3 files changed

+8
-7
lines changed

3 files changed

+8
-7
lines changed

lib/static/new-ui/components/RunTest/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {useDispatch, useSelector} from 'react-redux';
88
import {RunTestsFeature} from '@/constants';
99
import {useAnalytics} from '../../hooks/useAnalytics';
1010
import type {BrowserEntity} from '@/static/new-ui/types/store';
11-
import {isFeatureAvailable} from '../../utils/features';
11+
import {useIsFeatureAvailable} from '../../utils/features';
1212

1313
interface RunTestProps {
1414
browser: BrowserEntity | null;
@@ -22,7 +22,7 @@ export const RunTestButton = forwardRef<HTMLButtonElement | HTMLAnchorElement, R
2222

2323
const analytics = useAnalytics();
2424
const dispatch = useDispatch();
25-
const isRunTestsAvailable = isFeatureAvailable(RunTestsFeature);
25+
const isRunTestsAvailable = useIsFeatureAvailable(RunTestsFeature);
2626

2727
const onRetryTestHandler = (): void => {
2828
if (browser) {

lib/static/new-ui/features/suites/components/TestControlPanel/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {getCurrentBrowser, getCurrentResultId, isTimeTravelPlayerAvailable} from
1010
import {RunTestButton} from '@/static/new-ui/components/RunTest';
1111
import {useAnalytics} from '../../../../hooks/useAnalytics';
1212
import {IconButton} from '../../../../components/IconButton';
13-
import {isFeatureAvailable} from '../../../../utils/features';
13+
import {useIsFeatureAvailable} from '../../../../utils/features';
1414
import {RunTestsFeature} from '@/constants';
1515
import {toggleTimeTravelPlayerVisibility} from '@/static/modules/actions/snapshots';
1616

@@ -42,7 +42,7 @@ export function TestControlPanel(props: TestControlPanelProps): ReactNode {
4242
onAttemptChange?.(browserId, resultId, attemptIndex);
4343
};
4444

45-
const isRunTestsAvailable = isFeatureAvailable(RunTestsFeature);
45+
const isRunTestsAvailable = useIsFeatureAvailable(RunTestsFeature);
4646
const isPlayerAvailable = useSelector(isTimeTravelPlayerAvailable);
4747
const isPlayerVisible = useSelector(state => state.ui.suitesPage.isSnapshotsPlayerVisible);
4848

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import {Feature} from '@/constants';
22
import {useSelector} from 'react-redux';
33

4-
export const isFeatureAvailable = (feature: Feature): boolean => {
5-
return Boolean(useSelector(state => state.app.availableFeatures)
6-
.find(f => f.name === feature.name));
4+
export const useIsFeatureAvailable = (feature: Feature): boolean => {
5+
const availableFeatures = useSelector(state => state.app.availableFeatures);
6+
7+
return Boolean(availableFeatures?.find(f => f.name === feature.name));
78
};

0 commit comments

Comments
 (0)