diff --git a/app/[locale]/about/about-narai-detail.tsx b/app/[locale]/about/about-narai-detail.tsx index 4efd5936a..098d19bc6 100644 --- a/app/[locale]/about/about-narai-detail.tsx +++ b/app/[locale]/about/about-narai-detail.tsx @@ -112,6 +112,9 @@ export default function AboutNaraiDetail({ awards }: { awards: string }) {
{t('about.materials.water.body')}
@@ -132,6 +135,9 @@ export default function AboutNaraiDetail({ awards }: { awards: string }) {{t('about.materials.rice.body')}
@@ -152,6 +158,9 @@ export default function AboutNaraiDetail({ awards }: { awards: string }) {{t('about.materials.koji.body')}
@@ -165,7 +174,7 @@ export default function AboutNaraiDetail({ awards }: { awards: string }) {{t('about.irie.title')}
+{t('about.irie.title')}
{t('about.irie.body')}
{t('bar.menu.para001')} @@ -142,7 +144,7 @@ export default function SagyobarDetail() {
{t('bar.clerk.title')}
+{t('bar.clerk.title')}
{t('bar.clerk.001')}
{t('bar.clerk.002')}
- {t('concept.para001')} - {t('concept.para002')} + {t('concept.para001')} {t('concept.para002')}{' '} {t('concept.para003')}
-{t('concept.subtitle001')}
-{t('concept.para004')}
+{t('concept.para004')}
{t('concept.para005')}
+{t('concept.para006')}
- {t('concept.para006')} {t('concept.para007')} {t('concept.para008')} + {t('concept.para007')} {t('concept.para008')}
{t('concept.para009')}
{t('concept.para010')}
diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index c041baa2f..db95f6c5f 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -20,7 +20,8 @@ import SagyobarPreview from 'components/layout/sagyobar-preview'; import Shoplist from 'components/layout/shoplist'; import StoriesPreview from 'components/layout/stories-preview'; import { BLOG_HANDLE } from 'lib/constants'; -import { getCart } from 'lib/shopify'; +import { getCart, getProduct } from 'lib/shopify'; +import { Product } from 'lib/shopify/types'; import { cookies } from 'next/headers'; import Image from 'next/image'; import { Suspense } from 'react'; @@ -48,9 +49,14 @@ export default async function HomePage({ cart = await getCart({ cartId, language: locale?.toUpperCase() }); } + const promotedItem: Product | undefined = await getProduct({ + handle: 'gift-bag-and-postcard-set', + language: locale?.toUpperCase() + }); + return ({t('privacy.pleaseRead')}
{t('privacy.usedFor')}
{t('privacy.definitions.usageData')}
{t('privacy.definitions.you')}
{t('privacy.collectingAndUsing.inScope')}
{t('privacy.usageData.deviceInfo')}
{t('privacy.cookies.doNotAccept')}
{t('privacy.personal.retention.asNecessary')}
{t('privacy.personal.retention.internalAnalysis')}
{t('privacy.personal.transfer.transborder')}
{t('privacy.personal.disclosure.goodFaith')}
{t('privacy.personal.disclosure.noGuarantee')}
{t('privacy.personal.processing.creditCards')}
{t('privacy.personal.processing.cookies')}
{t('privacy.personal.mobile.optOut')}
{t('privacy.personal.doNotTrack.noResponse')}
{t('privacy.personal.doNotTrack.browser')}
{t('privacy.personal.links.external')}
{t('privacy.personal.links.disclaimer')}
{t('privacy.changes.updates')}
{t('privacy.changes.review')}
{t('terms.definitions.socialMedia')}
{t('terms.definitions.you')}
{t('terms.acknowledgment.age')}
{t('terms.acknowledgment.privacy')}
{t('terms.inaccuracies.errorsPossible')}
{t('terms.inaccuracies.noGuarantees')}
{t('terms.prices.changes')}
{t('terms.prices.payments')}
{t('terms.promotions.conflicts')}
{t('terms.ip.trademarks')}
{t('terms.ip.assignment')}
{t('terms.thirdPartyLinks.noControl')}
{t('terms.liability.noSpecialDamages')}
{t('terms.liability.noSpecialDamages')}
{t('terms.disclaimer.asIs')}
{t('terms.disclaimer.conflicts')}
{t('terms.misc.translation')}
{t('terms.misc.changes')}
Taxes
Shipping
Calculated at checkout
diff --git a/components/cart/promoted-cart-item.tsx b/components/cart/promoted-cart-item.tsx new file mode 100644 index 000000000..31be57ffc --- /dev/null +++ b/components/cart/promoted-cart-item.tsx @@ -0,0 +1,99 @@ +'use client'; + +import { addItem } from 'components/cart/actions'; +import LoadingDots from 'components/loading-dots'; +import { ProductVariant } from 'lib/shopify/types'; +import { useTranslations } from 'next-intl'; +import { useRouter, useSearchParams } from 'next/navigation'; +import { useTransition } from 'react'; + +export function PromotedCartItem({ + variants, + availableForSale +}: { + variants: ProductVariant[]; + availableForSale: boolean; +}) { + const router = useRouter(); + const searchParams = useSearchParams(); + const t = useTranslations('Index'); + + const firstVariant = variants?.[0]; + + const [isPending, startTransition] = useTransition(); + const defaultVariantId = variants.length === 1 ? variants[0]?.id : undefined; + const variant = variants.find((variant: ProductVariant) => + variant.selectedOptions.every( + (option) => option.value === searchParams.get(option.name.toLowerCase()) + ) + ); + const selectedVariantId = variant?.id || defaultVariantId; + const title = !availableForSale + ? 'Out of stock' + : !selectedVariantId + ? 'Please select options' + : undefined; + + return firstVariant ? ( + + ) : null; +} diff --git a/components/label.tsx b/components/label.tsx index d0f7dc386..2d9e9c78e 100644 --- a/components/label.tsx +++ b/components/label.tsx @@ -15,7 +15,7 @@ const Label = ({ return (suginomori brewery
長野県塩尻市奈良井551-1
++ 長野県塩尻市奈良井551-1 +
551-1 Narai, Shiojiri, Nagano
杉の森酒造
suginomori brewery
長野県塩尻市奈良井551-1
-551-1 Narai, Shiojiri, Nagano
++ 長野県塩尻市奈良井551-1 +
+551-1 Narai, Shiojiri, Nagano