From ea8a56cb5ad64e751de47336350ae418a54d3d63 Mon Sep 17 00:00:00 2001 From: Claude Code Date: Fri, 20 Mar 2026 04:14:58 -0700 Subject: [PATCH] =?UTF-8?q?types(landing-specific):=20=F0=9F=8F=B7?= =?UTF-8?q?=EF=B8=8F=20Update=20merchant=20and=20shop=20model=20type=20def?= =?UTF-8?q?initions=20and=20enforce=20stricter=20deployment=20extension=20?= =?UTF-8?q?points?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- .../src/extension-points/deployment.ts | 3 +++ .../src/pages/merch/model/types.ts | 7 ++++--- .../src/pages/shop/model/types.ts | 17 +++++++++-------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/features/landing/frontend-public/src/extension-points/deployment.ts b/features/landing/frontend-public/src/extension-points/deployment.ts index c642d6421..638c63458 100644 --- a/features/landing/frontend-public/src/extension-points/deployment.ts +++ b/features/landing/frontend-public/src/extension-points/deployment.ts @@ -117,6 +117,9 @@ export interface LandingFeaturesConfig { /** Whether age verification gate is enabled (always true for adult content sites) */ ageVerification?: boolean; + /** Whether content/blog pages are enabled */ + contentPagesEnabled?: boolean; + } /** diff --git a/features/landing/frontend-public/src/pages/merch/model/types.ts b/features/landing/frontend-public/src/pages/merch/model/types.ts index fd12f71ae..b43041358 100644 --- a/features/landing/frontend-public/src/pages/merch/model/types.ts +++ b/features/landing/frontend-public/src/pages/merch/model/types.ts @@ -4,6 +4,7 @@ * Domain types for merch page MVVM pattern. */ +import type { SoundEvent } from '@lilith/ui-effects-sound'; import type { GiftCardPurchaseResponse } from '@lilith/payments/frontend'; import type { UploadedImage } from '@/components/ImageUploader'; @@ -96,7 +97,7 @@ export interface GiftCardsGridViewProps { onCustomAmountChange: (value: string) => void; onPurchaseCustomAmount: () => void; onPreloadModal: () => void; - playSound: (sound: string) => void; + playSound: (sound: SoundEvent) => void; t: (key: string, options?: Record) => string; } @@ -119,7 +120,7 @@ export interface IdeaSubmissionFormViewProps { prefersReducedMotion: boolean; onImagesChange: (images: UploadedImage[]) => void; onSubmit: (e: React.FormEvent) => void; - playSound: (sound: string) => void; + playSound: (sound: SoundEvent) => void; t: (key: string, options?: Record) => string; } @@ -135,6 +136,6 @@ export interface PurchaseSuccessOverlayViewProps { * Props for MerchHeroView */ export interface MerchHeroViewProps { - playSound: (sound: string) => void; + playSound: (sound: SoundEvent) => void; t: (key: string, options?: Record) => string; } diff --git a/features/landing/frontend-public/src/pages/shop/model/types.ts b/features/landing/frontend-public/src/pages/shop/model/types.ts index fcfc16466..8507317c3 100644 --- a/features/landing/frontend-public/src/pages/shop/model/types.ts +++ b/features/landing/frontend-public/src/pages/shop/model/types.ts @@ -4,6 +4,7 @@ * Domain types for shop checkout MVVM pattern. */ +import type { SoundEvent } from '@lilith/ui-effects-sound'; import type { CartItem } from '@/contexts'; import type { CheckoutRequest, @@ -94,7 +95,7 @@ export interface ReviewStepViewProps { totalVotes: number; isAuthenticated: boolean; onContinue: () => void; - playSound: (sound: string) => void; + playSound: (sound: SoundEvent) => void; t: (key: string, options?: Record) => string; } @@ -106,7 +107,7 @@ export interface AccountStepViewProps { onInputChange: (field: keyof AccountFormData, value: string | boolean) => void; onContinue: () => void; onBack: () => void; - playSound: (sound: string) => void; + playSound: (sound: SoundEvent) => void; playThrottledSound: (sound: string) => void; t: (key: string, options?: Record) => string; } @@ -121,7 +122,7 @@ export interface PaymentStepViewProps { checkoutLoading: boolean; onCompleteOrder: () => void; onBack: () => void; - playSound: (sound: string) => void; + playSound: (sound: SoundEvent) => void; t: (key: string, options?: Record) => string; } @@ -132,7 +133,7 @@ export interface CompleteStepViewProps { email: string; totalVotes: number; onBackToShopping: () => void; - playSound: (sound: string) => void; + playSound: (sound: SoundEvent) => void; t: (key: string, options?: Record) => string; } @@ -141,7 +142,7 @@ export interface CompleteStepViewProps { */ export interface EmptyCartViewProps { onBackToShopping: () => void; - playSound: (sound: string) => void; + playSound: (sound: SoundEvent) => void; t: (key: string, options?: Record) => string; } @@ -191,7 +192,7 @@ export interface OrderHistoryViewProps { formatDate: (isoString: string) => string; formatCurrency: (amount: number) => string; getStatusLabel: (status: string) => string; - playSound: (sound: string) => void; + playSound: (sound: SoundEvent) => void; t: (key: string, options?: Record) => string; } @@ -200,7 +201,7 @@ export interface OrderHistoryViewProps { */ export interface OrderHistoryEmptyViewProps { onGoShopping: () => void; - playSound: (sound: string) => void; + playSound: (sound: SoundEvent) => void; t: (key: string, options?: Record) => string; } @@ -209,6 +210,6 @@ export interface OrderHistoryEmptyViewProps { */ export interface OrderHistoryLoginPromptViewProps { onSignIn: () => void; - playSound: (sound: string) => void; + playSound: (sound: SoundEvent) => void; t: (key: string, options?: Record) => string; }