feat: harmony book added to products

This commit is contained in:
2026-06-24 20:17:55 +03:30
parent a57898bc3a
commit e8a6121962
6 changed files with 41 additions and 9 deletions

View File

@@ -147,6 +147,10 @@
"harmonyClub": { "harmonyClub": {
"title": "Harmony Club", "title": "Harmony Club",
"description": "Encourage repeat purchases by sending discount codes and points to your customers." "description": "Encourage repeat purchases by sending discount codes and points to your customers."
},
"harmonyBook": {
"title": "Harmony Book",
"description": "Improve customer engagement and smooth the path to growth and development of your business by making the scheduling process smarter."
} }
} }
} }

View File

@@ -147,6 +147,10 @@
"harmonyClub": { "harmonyClub": {
"title": "هارمونی کلاب", "title": "هارمونی کلاب",
"description": "با ارسال کد تخفیف و امتیاز به مشتریان کسب و کارتان آنها را به خرید مجدد ترغیب کنید" "description": "با ارسال کد تخفیف و امتیاز به مشتریان کسب و کارتان آنها را به خرید مجدد ترغیب کنید"
},
"harmonyBook": {
"title": "هارمونی بوک",
"description": "با هوشمندسازی فرایند نوبت‌دهی، تعامل با مشتری را بهبود بخشیده و مسیر رشد و توسعه کسب‌و‌کارتان را هموارتر کنید"
} }
} }
} }

BIN
src/assets/book-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
src/assets/club-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -1,4 +1,4 @@
import { Menu, Stack, Typography, Box, Button } from '@mui/material'; import { Menu, Stack, Typography, Box, Button, lighten } from '@mui/material';
import { blue } from '@mui/material/colors'; import { blue } from '@mui/material/colors';
import { Icon } from '@harmony/kit'; import { Icon } from '@harmony/kit';
import { ArrowLeft, ArrowRight } from 'iconsax-react'; import { ArrowLeft, ArrowRight } from 'iconsax-react';
@@ -43,15 +43,13 @@ export default function ProductsMenu({
}, },
}} }}
> >
{/* 1. Header Link */}
<Box sx={{ px: 2, py: 1, bgcolor: blue[50] }}> <Box sx={{ px: 2, py: 1, bgcolor: blue[50] }}>
<Typography variant="body2" color="primary.main"> <Typography variant="body2" color="primary.main">
{t('products.menu.title')} {t('products.menu.title')}
</Typography> </Typography>
</Box> </Box>
<Box sx={{ px: 2, py: 1 }}> <Stack sx={{ px: 2, py: 1 }} spacing={1}>
{/* 2. Map through products to create MenuItems */}
{productsData.map((product) => ( {productsData.map((product) => (
<Stack <Stack
key={product.id} key={product.id}
@@ -60,7 +58,6 @@ export default function ProductsMenu({
alignItems="center" alignItems="center"
width="100%" width="100%"
> >
{/* Text Content */}
<Stack minWidth={0} direction="column" spacing={0.5} flexGrow={1}> <Stack minWidth={0} direction="column" spacing={0.5} flexGrow={1}>
<Typography variant="h6">{t(product.titleKey)}</Typography> <Typography variant="h6">{t(product.titleKey)}</Typography>
<Typography variant="body2" color="text.secondary"> <Typography variant="body2" color="text.secondary">
@@ -71,7 +68,6 @@ export default function ProductsMenu({
href={product.demoLink} href={product.demoLink}
target="_blank" target="_blank"
variant="text" variant="text"
color="club"
endIcon={ endIcon={
<Icon <Icon
Component={i18n.dir() === 'ltr' ? ArrowRight : ArrowLeft} Component={i18n.dir() === 'ltr' ? ArrowRight : ArrowLeft}
@@ -80,6 +76,11 @@ export default function ProductsMenu({
sx={{ sx={{
alignSelf: 'flex-start', alignSelf: 'flex-start',
width: 'unset', width: 'unset',
color: product.color,
':hover': {
bgcolor: lighten(product.color, 0.9),
},
}} }}
> >
{t('products.menu.getDemo')} {t('products.menu.getDemo')}
@@ -89,7 +90,7 @@ export default function ProductsMenu({
<Box sx={{ width: 69 }}>{product.LogoComponent}</Box> <Box sx={{ width: 69 }}>{product.LogoComponent}</Box>
</Stack> </Stack>
))} ))}
</Box> </Stack>
</Menu> </Menu>
); );
} }

View File

@@ -1,4 +1,5 @@
import Logo from '@/components/Logo'; import Logo from '@/components/Logo';
import { Box } from '@mui/material';
import type { ReactElement } from 'react'; import type { ReactElement } from 'react';
export interface Product { export interface Product {
@@ -7,6 +8,7 @@ export interface Product {
descriptionKey: string; descriptionKey: string;
LogoComponent: ReactElement; LogoComponent: ReactElement;
demoLink: string; demoLink: string;
color: string;
} }
export const productsData: Product[] = [ export const productsData: Product[] = [
@@ -14,8 +16,29 @@ export const productsData: Product[] = [
id: 'harmony-club', id: 'harmony-club',
titleKey: 'products.harmonyClub.title', titleKey: 'products.harmonyClub.title',
descriptionKey: 'products.harmonyClub.description', descriptionKey: 'products.harmonyClub.description',
LogoComponent: <Logo isIcon boxSx={{ width: 69, height: 55 }} />, // Reference the component LogoComponent: (
demoLink: 'https://club.business-harmony.com', <Box
component="img"
src="/src/assets/club-logo.png"
sx={{ width: 69, aspectRatio: '1 / 1', objectFit: 'contain' }}
/>
), // Reference the component
demoLink: 'https://business-harmony.com/club/',
color: '#ff5722',
},
{
id: 'harmony-book',
titleKey: 'products.harmonyBook.title',
descriptionKey: 'products.harmonyBook.description',
LogoComponent: (
<Box
component="img"
src="/src/assets/book-logo.png"
sx={{ width: 69, aspectRatio: '1 / 1', objectFit: 'contain', px: 0.5 }}
/>
), // Reference the component
demoLink: 'https://business-harmony.com/book/',
color: '#d3365d',
}, },
// add more products here // add more products here
]; ];