mirror of
https://github.com/Unleash/unleash.git
synced 2025-02-04 00:18:01 +01:00
feat: uncomplete tracking (#7053)
This commit is contained in:
parent
7730167ea4
commit
701c845f09
@ -4,6 +4,7 @@ import useFeatureLifecycleApi from 'hooks/api/actions/useFeatureLifecycleApi/use
|
|||||||
import { populateCurrentStage } from './populateCurrentStage';
|
import { populateCurrentStage } from './populateCurrentStage';
|
||||||
import type { FC } from 'react';
|
import type { FC } from 'react';
|
||||||
import type { Lifecycle } from 'interfaces/featureToggle';
|
import type { Lifecycle } from 'interfaces/featureToggle';
|
||||||
|
import { usePlausibleTracker } from 'hooks/usePlausibleTracker';
|
||||||
|
|
||||||
export interface LifecycleFeature {
|
export interface LifecycleFeature {
|
||||||
lifecycle?: Lifecycle;
|
lifecycle?: Lifecycle;
|
||||||
@ -27,9 +28,16 @@ export const FeatureLifecycle: FC<{
|
|||||||
|
|
||||||
const { markFeatureUncompleted, loading } = useFeatureLifecycleApi();
|
const { markFeatureUncompleted, loading } = useFeatureLifecycleApi();
|
||||||
|
|
||||||
|
const { trackEvent } = usePlausibleTracker();
|
||||||
|
|
||||||
const onUncompleteHandler = async () => {
|
const onUncompleteHandler = async () => {
|
||||||
await markFeatureUncompleted(feature.name, feature.project);
|
await markFeatureUncompleted(feature.name, feature.project);
|
||||||
onUncomplete();
|
onUncomplete();
|
||||||
|
trackEvent('feature-lifecycle', {
|
||||||
|
props: {
|
||||||
|
eventType: 'uncomplete',
|
||||||
|
},
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
return currentStage ? (
|
return currentStage ? (
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { useCallback } from 'react';
|
import { useCallback } from 'react';
|
||||||
import { useMediaQuery, useTheme } from '@mui/material';
|
import { useMediaQuery, useTheme } from '@mui/material';
|
||||||
import type { VisibilityState } from '@tanstack/react-table';
|
import type { VisibilityState } from '@tanstack/react-table';
|
||||||
|
import { useUiFlag } from 'hooks/useUiFlag';
|
||||||
|
|
||||||
const staticColumns = ['select', 'actions', 'name', 'favorite'];
|
const staticColumns = ['select', 'actions', 'name', 'favorite'];
|
||||||
|
|
||||||
@ -21,6 +22,7 @@ export const useDefaultColumnVisibility = (allColumnIds: string[]) => {
|
|||||||
const isTinyScreen = useMediaQuery(theme.breakpoints.down('sm'));
|
const isTinyScreen = useMediaQuery(theme.breakpoints.down('sm'));
|
||||||
const isSmallScreen = useMediaQuery(theme.breakpoints.down('md'));
|
const isSmallScreen = useMediaQuery(theme.breakpoints.down('md'));
|
||||||
const isMediumScreen = useMediaQuery(theme.breakpoints.down('lg'));
|
const isMediumScreen = useMediaQuery(theme.breakpoints.down('lg'));
|
||||||
|
const featureLifecycleEnabled = useUiFlag('featureLifecycle');
|
||||||
|
|
||||||
const showEnvironments = useCallback(
|
const showEnvironments = useCallback(
|
||||||
(environmentsToShow: number = 0) =>
|
(environmentsToShow: number = 0) =>
|
||||||
@ -53,6 +55,7 @@ export const useDefaultColumnVisibility = (allColumnIds: string[]) => {
|
|||||||
return formatAsColumnVisibility(allColumnIds, [
|
return formatAsColumnVisibility(allColumnIds, [
|
||||||
...staticColumns,
|
...staticColumns,
|
||||||
'lastSeenAt',
|
'lastSeenAt',
|
||||||
|
...(featureLifecycleEnabled ? ['lifecycle'] : []),
|
||||||
'createdAt',
|
'createdAt',
|
||||||
'type',
|
'type',
|
||||||
'tags',
|
'tags',
|
||||||
|
@ -4,14 +4,15 @@ title: Feature Lifecycle
|
|||||||
|
|
||||||
:::info Availability
|
:::info Availability
|
||||||
|
|
||||||
Feature lifecycle was introduced in Unleash 6.1.0
|
Feature lifecycle is currently in beta
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
![Feature Lifecycle example](/img/feature-lifecycle.png 'Feature Lifecycle example')
|
![Feature Lifecycle example](/img/feature-lifecycle.png 'Feature Lifecycle example')
|
||||||
|
|
||||||
Feature Lifecycle facilitates tracking the progression of features through various stages in their development and operational phases.
|
In Unleash, the feature lifecycle encompasses a holistic view of how mature your feature is based on data collected through metrics and interactions with the Unleash system.
|
||||||
This systematic approach helps in identifying potential bottlenecks and improving the overall efficiency of the software development process.
|
As such, the lifecycle mirrors your software development process and allows you to identify bottlenecks at any stage of the lifecycle.
|
||||||
|
These findings may give you insights or clues to improve the efficiency of your software development process. Read more about how Unleash progresses a feature through the lifecycle below.
|
||||||
|
|
||||||
## Lifecycle stages
|
## Lifecycle stages
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user