title pages and ...

This commit is contained in:
hamid zarghami
2025-04-22 10:58:32 +03:30
parent c0dc53b5d0
commit 893013df33
10 changed files with 145 additions and 5 deletions
+44
View File
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#ffffff" height="800px" width="800px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 512 512" xml:space="preserve">
<g>
<g>
<path d="M124.631,158.153h-98.69c-9.995,0-18.128,8.132-18.128,18.128v317.048c0,9.995,8.132,18.128,18.128,18.128h98.69
c9.996,0,18.128-8.132,18.128-18.129V176.281C142.759,166.286,134.627,158.153,124.631,158.153z M122.362,491.059h-94.15V178.551
h94.15V491.059z"/>
</g>
</g>
<g>
<g>
<path d="M128.524,22.601C114.293,8.376,95.399,0.54,75.322,0.54C33.789,0.54,0,34.298,0,75.791
C0,117.3,33.789,151.07,75.322,151.07c41.504,0,75.27-33.77,75.27-75.278C150.593,55.719,142.756,36.829,128.524,22.601z
M75.322,130.671c-30.284,0-54.924-24.62-54.924-54.88c0-30.246,24.639-54.852,54.924-54.852c14.63,0,28.403,5.714,38.78,16.089
c10.377,10.374,16.091,24.141,16.091,38.763C130.194,106.052,105.579,130.671,75.322,130.671z"/>
</g>
</g>
<g>
<g>
<path d="M489.199,205.292c-21.531-36.508-59.732-55.019-113.542-55.019c-34.667,0-59.857,11.83-76.618,24.035
c-0.986-9.071-8.693-16.156-18.022-16.156h-94.513c-9.995,0-18.128,8.132-18.128,18.128v317.048
c0,9.995,8.132,18.128,18.128,18.128h98.474c9.996,0,18.128-8.132,18.128-18.128V336.465c0-53.175,14.411-63.254,41.007-63.254
c26.002,0,33.121,14.181,33.121,65.974v154.148c0,9.996,8.132,18.128,18.128,18.128h98.51c9.995,0,18.128-8.132,18.128-18.128
V319.425C512,284.287,509.408,239.561,489.199,205.292z M491.602,491.061h-93.969V339.184c0-20.661-0.574-42.18-7.427-58.268
c-7.943-18.648-23.451-28.104-46.092-28.104c-54.11,0-61.405,42.287-61.405,83.653v154.594h-93.934V178.551h89.972v18.322
c0,4.204,2.58,7.978,6.499,9.504c3.919,1.527,8.371,0.491,11.214-2.607c11.347-12.36,36.724-33.098,79.197-33.098
c101.899,0,115.946,71.494,115.946,148.753V491.061z"/>
</g>
</g>
<g>
<g>
<path d="M48.956,364.112c-5.633,0-10.199,4.566-10.199,10.199v94.853c0,5.633,4.566,10.199,10.199,10.199
s10.199-4.566,10.199-10.199v-94.853C59.155,368.678,54.589,364.112,48.956,364.112z"/>
</g>
</g>
<g>
<g>
<path d="M48.956,321.275c-5.633,0-10.199,4.566-10.199,10.199v9.179c0,5.633,4.566,10.199,10.199,10.199
s10.199-4.566,10.199-10.199v-9.179C59.155,325.841,54.589,321.275,48.956,321.275z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

+14 -1
View File
@@ -5,6 +5,19 @@ import React from 'react'
import Accordion from '@/components/Accordion'
import WhyDanak from '../home/WhyDanak'
export const metadata = {
title: 'داناک | درباره ما',
description: 'درباره ما',
openGraph: {
title: 'داناک | درباره ما',
description: 'درباره ما',
url: 'https://danakcorp.com/about',
siteName: 'داناک',
locale: 'fa_IR',
type: 'website',
},
}
const About: NextPage = () => {
return (
<div className='mt-24'>
@@ -62,7 +75,7 @@ const About: NextPage = () => {
مشاوره استقرار ISMS
</div>
<div className='flex-1 xl:min-w-[30%] min-w-[90%] bg-[#ECEFF6] h-10 rounded-xl font-bold flex justify-center items-center'>
نظام صنفی
نظام صنفی رایانه ای
</div>
<div className='flex-1 xl:min-w-[30%] min-w-[90%] bg-[#ECEFF6] h-10 rounded-xl font-bold flex justify-center items-center'>
GDPR
+17
View File
@@ -1,9 +1,11 @@
import { Metadata } from 'next'
import { Suspense } from 'react'
import { dehydrate, HydrationBoundary, QueryClient } from '@tanstack/react-query'
import { blogSingleQueryOptions, mostVisitedBlogsQueryOptions } from '../hooks/useBlogsData'
import { NextPage } from 'next'
import SingleBlogPage from '../components/SingleBlogPage'
import Loading from './loading'
import { BlogSingleResponse } from '../types/BlogTypes'
interface PageProps {
params: Promise<{
@@ -11,6 +13,21 @@ interface PageProps {
}>
}
export async function generateMetadata(
{ params }: PageProps
): Promise<Metadata> {
const { id } = await params
const queryClient = new QueryClient()
await queryClient.prefetchQuery(blogSingleQueryOptions(id))
const blog = queryClient.getQueryData(blogSingleQueryOptions(id).queryKey) as BlogSingleResponse
return {
title: 'مجله داناک' + ' | ' + blog.data.blog.metaTitle,
description: blog.data.blog.metaDescription,
}
}
const SingleBlog: NextPage<PageProps> = async ({ params }) => {
const { id } = await params
+1 -1
View File
@@ -11,7 +11,7 @@ const ContactUs: FC = () => {
<div className='flex gap-4 mt-6'>
<div className='flex-1 bg-[#0A66C2] text-white rounded-xl p-4'>
<Image
src='/images/linkedin2.svg'
src='/images/linkedin3.svg'
alt='contact us'
width={25}
height={25}
+9 -1
View File
@@ -6,8 +6,16 @@ import Loading from './loading'
import { blogCategoriesQueryOptions, blogsQueryOptions, blogCombinedQueryOptions, mostVisitedBlogsQueryOptions } from './hooks/useBlogsData'
export const metadata = {
title: 'مجله داناک | مقالات و آموزش‌ها',
title: 'مجله داناک | مدیریت ، فناوری ، طراحی',
description: 'مقالات جذاب، نکات آموزشی و اخبار دنیای نرم‌افزار در مجله داناک',
openGraph: {
title: 'مجله داناک | مدیریت ، فناوری ، طراحی',
description: 'مقالات جذاب، نکات آموزشی و اخبار دنیای نرم‌افزار در مجله داناک',
url: 'https://danakcorp.com/blogs',
siteName: 'داناک',
locale: 'fa_IR',
type: 'website',
},
}
export default function BlogsPage() {
+13
View File
@@ -3,6 +3,19 @@ import { Suspense } from 'react'
import Loading from './loading'
import DanakServicesContent from './DanakServicesContent'
export const metadata = {
title: 'داناک | خدمات',
description: 'خدمات ما',
openGraph: {
title: 'داناک | خدمات',
description: 'خدمات ما',
url: 'https://danakcorp.com/danak-services',
siteName: 'داناک',
locale: 'fa_IR',
type: 'website',
},
}
const DanakServices: NextPage = () => {
return (
<Suspense fallback={<Loading />}>
+14
View File
@@ -7,6 +7,20 @@ import { landingQueryOptions } from './home/hooks/useHomeData'
import LangingPage from './home/LangingPage'
import Loading from './loading'
export const metadata = {
title: 'شرکت نرم افزاری داناک',
description: 'ارائه راهکارهای مبتنی بر تکنولوژی نوآورانه برای بهبود کسب‌وکار، افزایش بهره‌وری و رشد پایدار',
openGraph: {
title: 'شرکت نرم افزاری داناک',
description: 'ارائه راهکارهای مبتنی بر تکنولوژی نوآورانه برای بهبود کسب‌وکار، افزایش بهره‌وری و رشد پایدار',
url: 'https://danakcorp.com/',
siteName: 'شرکت نرم افزاری داناک',
locale: 'fa_IR',
type: 'website',
},
}
const Home: NextPage = () => {
return (
<Suspense fallback={<Loading />}>
+18 -1
View File
@@ -1,9 +1,10 @@
import { Suspense } from 'react'
import { dehydrate, HydrationBoundary, QueryClient } from '@tanstack/react-query'
import { detailServiceQueryOptions } from '../hooks/useProductData'
import { NextPage } from 'next'
import { Metadata, NextPage } from 'next'
import DetailService from '../DetailService'
import Loading from './loading'
import { ServiceDetailResponse } from '../types/ProductTypes'
interface PageProps {
params: Promise<{
@@ -11,6 +12,22 @@ interface PageProps {
}>
}
export async function generateMetadata(
{ params }: PageProps
): Promise<Metadata> {
const { id } = await params
const queryClient = new QueryClient()
await queryClient.prefetchQuery(detailServiceQueryOptions(id))
const service = queryClient.getQueryData(detailServiceQueryOptions(id).queryKey) as ServiceDetailResponse
return {
title: 'مجله داناک' + ' | ' + service.data.danakService.name,
description: service.data.danakService.metaDescription,
}
}
const SingleService: NextPage<PageProps> = async ({ params }) => {
const { id } = await params
@@ -77,7 +77,7 @@ const ServiceHeader: FC<Props> = (props: Props) => {
<div className='text-xs whitespace-nowrap flex gap-1 items-center'>
<div className='flex gap-2'>
{
finalPrice !== price &&
finalPrice !== price && !!price &&
<div className='line-through text-xs text-description'>
{NumberFormat(Number(price))}
</div>
+14
View File
@@ -7,6 +7,20 @@ import { categoriesQueryOptions, danakServiceSuggestedQueryOptions, servicesQuer
import Products from './ProductsPage'
import Loading from './loading'
export const metadata = {
title: 'داناک | محصولات',
description: 'محصولات و خدمات ما',
openGraph: {
title: 'داناک | محصولات',
description: 'محصولات و خدمات ما',
url: 'https://danakcorp.com/products',
siteName: 'داناک',
locale: 'fa_IR',
type: 'website',
},
}
const ProductsPage: NextPage = () => {
return (
<Suspense fallback={<Loading />}>