read current subscriber tier and don't show onboarding note

This commit is contained in:
Abi Raja 2023-12-23 17:35:45 -05:00
parent a974c91c76
commit 5d7fe8b363
5 changed files with 36 additions and 5 deletions

View File

@ -47,7 +47,8 @@
"tailwind-merge": "^2.0.0", "tailwind-merge": "^2.0.0",
"tailwindcss-animate": "^1.0.7", "tailwindcss-animate": "^1.0.7",
"thememirror": "^2.0.1", "thememirror": "^2.0.1",
"vite-plugin-checker": "^0.6.2" "vite-plugin-checker": "^0.6.2",
"zustand": "^4.4.7"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^20.9.0", "@types/node": "^20.9.0",

View File

@ -41,6 +41,7 @@ import { extractHistoryTree } from "./components/history/utils";
import toast from "react-hot-toast"; import toast from "react-hot-toast";
import ImportCodeSection from "./components/ImportCodeSection"; import ImportCodeSection from "./components/ImportCodeSection";
import { useAuth } from "@clerk/clerk-react"; import { useAuth } from "@clerk/clerk-react";
import { useStore } from "./store/store";
const IS_OPENAI_DOWN = false; const IS_OPENAI_DOWN = false;
@ -57,8 +58,10 @@ function App({ navbarComponent }: Props) {
const [updateInstruction, setUpdateInstruction] = useState(""); const [updateInstruction, setUpdateInstruction] = useState("");
const [isImportedFromCode, setIsImportedFromCode] = useState<boolean>(false); const [isImportedFromCode, setIsImportedFromCode] = useState<boolean>(false);
// Relevant for hosted version only
// TODO: Move to AppContainer // TODO: Move to AppContainer
const { getToken } = useAuth(); const { getToken } = useAuth();
const subscriberTier = useStore((state) => state.subscriberTier);
// Settings // Settings
const [settings, setSettings] = usePersistedState<Settings>( const [settings, setSettings] = usePersistedState<Settings>(
@ -357,9 +360,8 @@ function App({ navbarComponent }: Props) {
/> />
{IS_RUNNING_ON_CLOUD && {IS_RUNNING_ON_CLOUD &&
!(settings.openAiApiKey || settings.accessCode) && ( !(settings.openAiApiKey || settings.accessCode) &&
<OnboardingNote /> subscriberTier === "free" && <OnboardingNote />}
)}
{IS_OPENAI_DOWN && ( {IS_OPENAI_DOWN && (
<div className="bg-black text-white dark:bg-white dark:text-black p-3 rounded"> <div className="bg-black text-white dark:bg-white dark:text-black p-3 rounded">

View File

@ -5,11 +5,14 @@ import { AlertDialog } from "@radix-ui/react-alert-dialog";
import { AlertDialogContent } from "../ui/alert-dialog"; import { AlertDialogContent } from "../ui/alert-dialog";
import FullPageSpinner from "../custom-ui/FullPageSpinner"; import FullPageSpinner from "../custom-ui/FullPageSpinner";
import { useAuthenticatedFetch } from "./useAuthenticatedFetch"; import { useAuthenticatedFetch } from "./useAuthenticatedFetch";
import { useStore } from "../../store/store";
function AppContainer() { function AppContainer() {
const [showPopup, setShowPopup] = useState(false); const [showPopup, setShowPopup] = useState(false);
const { isSignedIn, isLoaded } = useUser(); const { isSignedIn, isLoaded } = useUser();
const setSubscriberTier = useStore((state) => state.setSubscriberTier);
// For fetching user // For fetching user
const authenticatedFetch = useAuthenticatedFetch(); const authenticatedFetch = useAuthenticatedFetch();
const isInitRequestInProgress = useRef(false); const isInitRequestInProgress = useRef(false);
@ -34,6 +37,13 @@ function AppContainer() {
// "http://localhost:8001/users/create", // "http://localhost:8001/users/create",
"POST" "POST"
); );
if (!user.subscriber_tier) {
setSubscriberTier("free");
} else {
setSubscriberTier(user.subscriber_tier);
}
console.log(user); console.log(user);
isInitRequestInProgress.current = false; isInitRequestInProgress.current = false;

View File

@ -0,0 +1,11 @@
import { create } from "zustand";
interface Store {
subscriberTier: string;
setSubscriberTier: (tier: string) => void;
}
export const useStore = create<Store>((set) => ({
subscriberTier: "",
setSubscriberTier: (tier: string) => set(() => ({ subscriberTier: tier })),
}));

View File

@ -3660,7 +3660,7 @@ use-sidecar@^1.1.2:
detect-node-es "^1.1.0" detect-node-es "^1.1.0"
tslib "^2.0.0" tslib "^2.0.0"
use-sync-external-store@^1.2.0: use-sync-external-store@1.2.0, use-sync-external-store@^1.2.0:
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a"
integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==
@ -3871,3 +3871,10 @@ yocto-queue@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251"
integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==
zustand@^4.4.7:
version "4.4.7"
resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.4.7.tgz#355406be6b11ab335f59a66d2cf9815e8f24038c"
integrity sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw==
dependencies:
use-sync-external-store "1.2.0"