Refactor subscription logic and replace quill-sense references with ritor equivalents

- Updated `getCurrentSubscription` and related functions to reflect terminology changes.
- Adjusted subscription levels and access checks to streamline logic.
- Removed unused cases in `getSubLevel` and optimized conditionals for clarity.
This commit is contained in:
natreex
2026-03-30 21:13:55 -04:00
parent dbbe33b19b
commit e1d87c6997
5 changed files with 14 additions and 17 deletions

View File

@@ -18,7 +18,7 @@ import Button from "@/components/ui/Button";
import QSTextGeneratedPreview from "@/components/ui/QSTextGeneratedPreview";
import {EditorContext, EditorContextProps} from "@/context/EditorContext";
import {useTranslations} from '@/lib/i18n';
import {getSubLevel, isOpenAIEnabled} from "@/lib/utils/quillsense";
import {getSubLevel, isAnthropicEnabled} from "@/lib/utils/quillsense";
import TextInput from "@/components/form/TextInput";
import InputField from "@/components/form/InputField";
import TextAreaInput from "@/components/form/TextAreaInput";
@@ -93,9 +93,9 @@ export default function DraftCompanion() {
const [useExplicit, setUseExplicit] = useState<boolean>(false);
const [useSmart, setUseSmart] = useState<boolean>(false);
const isGPTEnabled: boolean = isOpenAIEnabled(session);
const isSubTierTree: boolean = getSubLevel(session) === 3;
const hasAccess: boolean = (isGPTEnabled || isSubTierTree) && !isCurrentlyOffline() && !book?.localBook;
const isAnthropicKey: boolean = isAnthropicEnabled(session);
const isSubTierTwo: boolean = getSubLevel(session) >= 2;
const hasAccess: boolean = (isAnthropicKey || isSubTierTwo) && !isCurrentlyOffline() && !book?.localBook;
useEffect((): void => {
getDraftContent().then();

View File

@@ -19,7 +19,7 @@ import GhostWriterTags from "@/components/ghostwriter/GhostWriterTags";
import {TiptapNode} from "@/lib/types/chapter";
import {convertTiptapToHTML} from "@/lib/utils/tiptap";
import {useTranslations} from '@/lib/i18n';
import {getSubLevel, isOpenAIEnabled} from "@/lib/utils/quillsense";
import {getSubLevel, isAnthropicEnabled} from "@/lib/utils/quillsense";
import {AIUsageContext, AIUsageContextProps} from "@/context/AIUsageContext";
import {LangContext, LangContextProps} from "@/context/LangContext";
import {configs} from "@/lib/configs";
@@ -52,9 +52,9 @@ export default function GhostWriter() {
const [useExplicit, setUseExplicit] = useState<boolean>(false);
const [useSmart, setUseSmart] = useState<boolean>(false);
const isGPTEnabled: boolean = isOpenAIEnabled(session);
const isSubTierTree: boolean = getSubLevel(session) === 3;
const hasAccess: boolean = isGPTEnabled || isSubTierTree;
const isAnthropicKey: boolean = isAnthropicEnabled(session);
const isSubTierTwo: boolean = getSubLevel(session) >= 2;
const hasAccess: boolean = isAnthropicKey || isSubTierTwo;
async function handleStopGeneration(): Promise<void> {
if (abortController) {

View File

@@ -29,7 +29,7 @@ export default function QuillSenseComponent(): React.JSX.Element {
const subLevel: number = getSubLevel(session)
const isGPTEnabled: boolean = isOpenAIEnabled(session);
const isSubTierTwo: boolean = getSubLevel(session) >= 1;
const isSubTierTwo: boolean = getSubLevel(session) >= 2;
const hasAccess: boolean = isGPTEnabled || isSubTierTwo;
const qsOptions: QSOption[] = [
@@ -77,7 +77,7 @@ export default function QuillSenseComponent(): React.JSX.Element {
</div>
</div>
{
isBYOK || subLevel >= 1 ? (
isBYOK || subLevel >= 2 ? (
<>
{view === 'list' ? (
<QuillList handleSelectConversation={handleSelectConversation}/>

View File

@@ -3,9 +3,9 @@ import {Subscription} from "@/lib/types/user";
import {getCurrentSubscription} from "@/lib/utils/user";
export function getSubLevel(session: SessionProps): number {
let currentSub: Subscription | null = getCurrentSubscription(session?.user, 'quill-sense');
let currentSub: Subscription | null = getCurrentSubscription(session?.user, 'ritor-subscription');
if (!currentSub) {
currentSub = getCurrentSubscription(session?.user, 'quill-trial');
currentSub = getCurrentSubscription(session?.user, 'ritor-trial');
if (!currentSub) {
return 0;
}
@@ -15,8 +15,6 @@ export function getSubLevel(session: SessionProps): number {
return 1;
case 2:
return 2;
case 3:
return 3;
default:
return 0;
}
@@ -24,8 +22,7 @@ export function getSubLevel(session: SessionProps): number {
export function isBringYourKeys(session: SessionProps): boolean {
if (!session?.user) return false;
const currentSub: Subscription | null = getCurrentSubscription(session?.user, 'use-your-keys');
return currentSub?.status || session.user.groupId <= 4;
return session.user.apiKeys.openai || session.user.apiKeys.anthropic || session.user.apiKeys.gemini;
}
export function isGeminiEnabled(session: SessionProps): boolean {

View File

@@ -1,7 +1,7 @@
import {GuideTour, Subscription, UserProps} from "@/lib/types/user";
import {SessionProps} from "@/lib/types/session";
export function getCurrentSubscription(user: UserProps | null, type: "quill-sense" | "use-your-keys" | "quill-trial"): Subscription | null {
export function getCurrentSubscription(user: UserProps | null, type: "ritor-subscription" | "use-your-keys" | "ritor-trial"): Subscription | null {
if (!user || !user.subscription || user.subscription.length === 0) {
return null;
}