mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-11 20:32:12 +00:00
new feature flag checks
This commit is contained in:
1 parent
096e37047c
commit
42df38617a
5 files changed
+32
-4
No files matched your search
@@ -20,6 +20,7 @@ export interface UserInfo {
|
||||
|
||||
// Rollout feature flags
|
||||
can_access_studio: boolean,
|
||||
maybe_feature_flags: string[],
|
||||
|
||||
// Usage
|
||||
can_use_tts: boolean,
|
||||
|
||||
@@ -56,10 +56,17 @@ export class SessionWrapper {
|
||||
public canAccessStudio(): boolean {
|
||||
const hostnameAllowed = StudioRolloutHostnameAllowed();
|
||||
const userAllowed =
|
||||
this.sessionStateResponse?.user?.can_access_studio || false;
|
||||
this.sessionStateResponse?.user?.can_access_studio ||
|
||||
this.sessionStateResponse?.user?.maybe_feature_flags.includes("studio") ||
|
||||
false;
|
||||
return hostnameAllowed && userAllowed;
|
||||
}
|
||||
|
||||
// Feature flag rollout for Video Style Transfer
|
||||
public canAccessVideoStyleTransfer(): boolean {
|
||||
return this.sessionStateResponse?.user?.maybe_feature_flags.includes("video_style_transfer") || false;
|
||||
}
|
||||
|
||||
// Username is all lowercase
|
||||
public getUsername(): string | undefined {
|
||||
return this.sessionStateResponse?.user?.username;
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
import { DiscordLink2 } from "@storyteller/components/src/elements/DiscordLink2";
|
||||
import { Container } from "components/common";
|
||||
import PageHeader from "components/layout/PageHeader";
|
||||
import React from "react";
|
||||
|
||||
export function VideoStyleTransferNotAvailable() {
|
||||
const subText = (
|
||||
<> Please visit our <DiscordLink2 /> to join the wait list. </>
|
||||
);
|
||||
|
||||
return (
|
||||
<Container type="panel" className="mb-5">
|
||||
<PageHeader
|
||||
title={"Video Style Transfer Features Not Available"}
|
||||
subText={subText}
|
||||
/>
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
import React, { useReducer, useEffect } from "react";
|
||||
|
||||
import { SessionWrapper } from "@storyteller/components/src/session/SessionWrapper";
|
||||
import { StudioNotAvailable } from "v2/view/_common/StudioNotAvailable";
|
||||
import { useInferenceJobs, useLocalize } from "hooks";
|
||||
import {
|
||||
FrontendInferenceJobType,
|
||||
@@ -13,6 +12,7 @@ import { states, reducer } from "./reducer";
|
||||
import SubRoutes from "./routes";
|
||||
import PageHeaderWithImage from "components/layout/PageHeaderWithImage";
|
||||
import { faFilms } from "@fortawesome/pro-solid-svg-icons";
|
||||
import { VideoStyleTransferNotAvailable } from "v2/view/_common/VideoStyleTransferNotAvailable";
|
||||
|
||||
export default function VideoStyleTransfer(props: {
|
||||
enqueueInferenceJob: (
|
||||
@@ -48,8 +48,8 @@ export default function VideoStyleTransfer(props: {
|
||||
}
|
||||
}, [pageState, enqueueInferenceJob]);
|
||||
|
||||
if (!props.sessionWrapper.canAccessStudio()) {
|
||||
return <StudioNotAvailable />;
|
||||
if (!props.sessionWrapper.canAccessVideoStyleTransfer()) {
|
||||
return <VideoStyleTransferNotAvailable />;
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
@@ -48,6 +48,7 @@ export default function VideoWorkflow(props:{
|
||||
}, [pageState, enqueueInferenceJob]);
|
||||
|
||||
if (!props.sessionWrapper.canAccessStudio()) {
|
||||
//return <VideoStyleTransferNotAvailable />
|
||||
return <StudioNotAvailable />
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user