mirror of
https://github.com/Unleash/unleash.git
synced 2025-06-14 01:16:17 +02:00
feat: connect welcome to sdk dialog (#8078)
Now welcome screen is connected to sdk dialog.
This commit is contained in:
parent
d220aaec0f
commit
48ddd255d6
@ -1,4 +1,4 @@
|
|||||||
import { useCallback, useMemo } from 'react';
|
import { useCallback, useMemo, useState } from 'react';
|
||||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||||
import { PageContent } from 'component/common/PageContent/PageContent';
|
import { PageContent } from 'component/common/PageContent/PageContent';
|
||||||
import { useRequiredPathParam } from 'hooks/useRequiredPathParam';
|
import { useRequiredPathParam } from 'hooks/useRequiredPathParam';
|
||||||
@ -67,6 +67,7 @@ export const ProjectFeatureToggles = ({
|
|||||||
const onboardingUIEnabled = useUiFlag('onboardingUI');
|
const onboardingUIEnabled = useUiFlag('onboardingUI');
|
||||||
const projectId = useRequiredPathParam('projectId');
|
const projectId = useRequiredPathParam('projectId');
|
||||||
const { project } = useProjectOverview(projectId);
|
const { project } = useProjectOverview(projectId);
|
||||||
|
const [connectSdkOpen, setConnectSdkOpen] = useState(false);
|
||||||
|
|
||||||
const {
|
const {
|
||||||
features,
|
features,
|
||||||
@ -402,7 +403,12 @@ export const ProjectFeatureToggles = ({
|
|||||||
onboardingUIEnabled &&
|
onboardingUIEnabled &&
|
||||||
project.onboardingStatus.status !== 'onboarded'
|
project.onboardingStatus.status !== 'onboarded'
|
||||||
}
|
}
|
||||||
show={<ProjectOnboarding projectId={projectId} />}
|
show={
|
||||||
|
<ProjectOnboarding
|
||||||
|
projectId={projectId}
|
||||||
|
setConnectSdkOpen={setConnectSdkOpen}
|
||||||
|
/>
|
||||||
|
}
|
||||||
/>
|
/>
|
||||||
<PageContent
|
<PageContent
|
||||||
disableLoading
|
disableLoading
|
||||||
@ -497,8 +503,10 @@ export const ProjectFeatureToggles = ({
|
|||||||
{featureToggleModals}
|
{featureToggleModals}
|
||||||
|
|
||||||
<ConnectSdkDialog
|
<ConnectSdkDialog
|
||||||
open={false}
|
open={connectSdkOpen}
|
||||||
onClose={() => {}}
|
onClose={() => {
|
||||||
|
setConnectSdkOpen(false);
|
||||||
|
}}
|
||||||
project={projectId}
|
project={projectId}
|
||||||
environments={environments}
|
environments={environments}
|
||||||
/>
|
/>
|
||||||
|
@ -3,6 +3,7 @@ import { WelcomeToProject } from './WelcomeToProject';
|
|||||||
|
|
||||||
interface IProjectOnboardingProps {
|
interface IProjectOnboardingProps {
|
||||||
projectId: string;
|
projectId: string;
|
||||||
|
setConnectSdkOpen: (open: boolean) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
const Container = styled('div')(({ theme }) => ({
|
const Container = styled('div')(({ theme }) => ({
|
||||||
@ -18,10 +19,16 @@ const SdkExample = styled('div')(({ theme }) => ({
|
|||||||
borderRadius: theme.shape.borderRadiusLarge,
|
borderRadius: theme.shape.borderRadiusLarge,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
export const ProjectOnboarding = ({ projectId }: IProjectOnboardingProps) => {
|
export const ProjectOnboarding = ({
|
||||||
|
projectId,
|
||||||
|
setConnectSdkOpen,
|
||||||
|
}: IProjectOnboardingProps) => {
|
||||||
return (
|
return (
|
||||||
<Container>
|
<Container>
|
||||||
<WelcomeToProject projectId={projectId} />
|
<WelcomeToProject
|
||||||
|
projectId={projectId}
|
||||||
|
setConnectSdkOpen={setConnectSdkOpen}
|
||||||
|
/>
|
||||||
<SdkExample>View SDK example</SdkExample>
|
<SdkExample>View SDK example</SdkExample>
|
||||||
</Container>
|
</Container>
|
||||||
);
|
);
|
||||||
|
@ -17,7 +17,12 @@ test('Project can start onboarding', async () => {
|
|||||||
<Routes>
|
<Routes>
|
||||||
<Route
|
<Route
|
||||||
path={'/projects/:projectId'}
|
path={'/projects/:projectId'}
|
||||||
element={<WelcomeToProject projectId={projectId} />}
|
element={
|
||||||
|
<WelcomeToProject
|
||||||
|
projectId={projectId}
|
||||||
|
setConnectSdkOpen={() => {}}
|
||||||
|
/>
|
||||||
|
}
|
||||||
/>
|
/>
|
||||||
</Routes>,
|
</Routes>,
|
||||||
{
|
{
|
||||||
@ -39,7 +44,12 @@ test('Project can connect SDK', async () => {
|
|||||||
<Routes>
|
<Routes>
|
||||||
<Route
|
<Route
|
||||||
path={'/projects/:projectId'}
|
path={'/projects/:projectId'}
|
||||||
element={<WelcomeToProject projectId={projectId} />}
|
element={
|
||||||
|
<WelcomeToProject
|
||||||
|
projectId={projectId}
|
||||||
|
setConnectSdkOpen={() => {}}
|
||||||
|
/>
|
||||||
|
}
|
||||||
/>
|
/>
|
||||||
</Routes>,
|
</Routes>,
|
||||||
{
|
{
|
||||||
|
@ -12,6 +12,7 @@ import useFeatureTypes from 'hooks/api/getters/useFeatureTypes/useFeatureTypes';
|
|||||||
|
|
||||||
interface IWelcomeToProjectProps {
|
interface IWelcomeToProjectProps {
|
||||||
projectId: string;
|
projectId: string;
|
||||||
|
setConnectSdkOpen: (open: boolean) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface IExistingFlagsProps {
|
interface IExistingFlagsProps {
|
||||||
@ -81,7 +82,10 @@ const StyledLink = styled(Link)({
|
|||||||
justifyContent: 'center',
|
justifyContent: 'center',
|
||||||
});
|
});
|
||||||
|
|
||||||
export const WelcomeToProject = ({ projectId }: IWelcomeToProjectProps) => {
|
export const WelcomeToProject = ({
|
||||||
|
projectId,
|
||||||
|
setConnectSdkOpen,
|
||||||
|
}: IWelcomeToProjectProps) => {
|
||||||
const { project } = useProjectOverview(projectId);
|
const { project } = useProjectOverview(projectId);
|
||||||
const isFirstFlagCreated =
|
const isFirstFlagCreated =
|
||||||
project.onboardingStatus.status === 'first-flag-created';
|
project.onboardingStatus.status === 'first-flag-created';
|
||||||
@ -117,7 +121,9 @@ export const WelcomeToProject = ({ projectId }: IWelcomeToProjectProps) => {
|
|||||||
We have not detected any connected SDKs on this project.
|
We have not detected any connected SDKs on this project.
|
||||||
</Typography>
|
</Typography>
|
||||||
<ResponsiveButton
|
<ResponsiveButton
|
||||||
onClick={() => {}}
|
onClick={() => {
|
||||||
|
setConnectSdkOpen(true);
|
||||||
|
}}
|
||||||
maxWidth='200px'
|
maxWidth='200px'
|
||||||
projectId={projectId}
|
projectId={projectId}
|
||||||
Icon={Add}
|
Icon={Add}
|
||||||
|
Loading…
Reference in New Issue
Block a user