mirror of
https://github.com/Unleash/unleash.git
synced 2025-09-24 17:51:14 +02:00
* feat: add a script that generates an OpenAPI client * feat: generate an OpenAPI client * feat: use the generated OpenAPI client * refactor: add an OpenAPI section to the readme * refactor: fix missing interface prefixes * refactor: regenerate OpenAPI client
36 lines
939 B
TypeScript
36 lines
939 B
TypeScript
import { useEffect, useState } from 'react';
|
|
import { Redirect, useParams } from 'react-router-dom';
|
|
import { useFeatures } from 'hooks/api/getters/useFeatures/useFeatures';
|
|
import { getTogglePath } from 'utils/routePathHelpers';
|
|
import { FeatureSchema } from 'openapi';
|
|
|
|
interface IRedirectParams {
|
|
name: string;
|
|
}
|
|
|
|
const RedirectFeatureView = () => {
|
|
const { name } = useParams<IRedirectParams>();
|
|
const { features = [] } = useFeatures();
|
|
const [featureToggle, setFeatureToggle] = useState<FeatureSchema>();
|
|
|
|
useEffect(() => {
|
|
const toggle = features.find(
|
|
(toggle: FeatureSchema) => toggle.name === name
|
|
);
|
|
|
|
setFeatureToggle(toggle);
|
|
}, [features, name]);
|
|
|
|
if (!featureToggle) {
|
|
return null;
|
|
}
|
|
|
|
return (
|
|
<Redirect
|
|
to={getTogglePath(featureToggle?.project, featureToggle?.name)}
|
|
/>
|
|
);
|
|
};
|
|
|
|
export default RedirectFeatureView;
|