feat: version history as 10th feature flag, richer upgrade prompts, close unguarded photo-import tab (v0.80.0)
Recipe version history is now gated like the other 9 per-tier features (enabled by default, locked-vs-hidden treatment via isFeatureAvailableAnyTier). UpgradeDialog now shows a tagline + concrete bullet list per feature instead of one generic sentence. Also closes a real gap: the AI-generate dialog's Photo tab hit /api/v1/ai/import-photo directly with no tier check in the UI (server route was already correctly gated) — a locked-out user could fill it in and hit a dead-end error instead of an upgrade prompt. Now threaded through the same lock/hide props as the dedicated PhotoImportButton. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -92,6 +92,8 @@ export function RecipesHeader({
|
||||
sharedUrl,
|
||||
importUrlAvailable = true,
|
||||
importUrlLocked = false,
|
||||
importPhotoAvailable = true,
|
||||
importPhotoLocked = false,
|
||||
}: {
|
||||
count: number;
|
||||
initialQuery?: string;
|
||||
@@ -114,6 +116,9 @@ export function RecipesHeader({
|
||||
* (with a "Pro" upsell) and opens an upgrade prompt instead of the
|
||||
* import dialog. */
|
||||
importUrlLocked?: boolean;
|
||||
/** Same idea, for the AI-generate dialog's Photo tab (recipe_import_photo). */
|
||||
importPhotoAvailable?: boolean;
|
||||
importPhotoLocked?: boolean;
|
||||
}) {
|
||||
const router = useRouter();
|
||||
const pathname = usePathname();
|
||||
@@ -340,7 +345,12 @@ export function RecipesHeader({
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<AiGenerateDialog open={aiOpen} onOpenChange={setAiOpen} />
|
||||
<AiGenerateDialog
|
||||
open={aiOpen}
|
||||
onOpenChange={setAiOpen}
|
||||
photoTabAvailable={importPhotoAvailable}
|
||||
photoTabLocked={importPhotoLocked}
|
||||
/>
|
||||
<UrlImportDialog open={urlOpen} onOpenChange={setUrlOpen} initialUrl={sharedUrl} autoImport={!!sharedUrl && !importUrlLocked} />
|
||||
<UpgradeDialog
|
||||
open={upgradeOpen}
|
||||
|
||||
Reference in New Issue
Block a user