api ulandi

This commit is contained in:
Samandar Turgunboyev
2025-12-22 11:35:55 +05:00
parent 37c7120d1b
commit 9978b4e3fe
75 changed files with 10255 additions and 11924 deletions

View File

@@ -0,0 +1,11 @@
import httpClient from '@/shared/config/api/httpClient';
import { API_URLS } from '@/shared/config/api/URLs';
import { AxiosResponse } from 'axios';
import { FaqList } from './types';
export const faq_api = {
async list(): Promise<AxiosResponse<FaqList[]>> {
const res = await httpClient.get(API_URLS.Faq);
return res;
},
};

View File

@@ -0,0 +1,5 @@
export interface FaqList {
id: string;
question: string;
answer: string;
}

View File

@@ -1,3 +1,5 @@
'use client';
import {
Accordion,
AccordionContent,
@@ -5,158 +7,62 @@ import {
AccordionTrigger,
} from '@/shared/ui/accordion';
import { Card, CardContent } from '@/shared/ui/card';
import { useQuery } from '@tanstack/react-query';
import { useTranslations } from 'next-intl';
import { faq_api } from '../lib/api';
const Faq = () => {
const faqCategories = [
{
category: 'Umumiy Savollar',
questions: [
{
question: 'Gastro Market nima?',
answer:
"Gastro Market - bu gastronomiya dunyosidagi eng so'nggi yangiliklarni, retseptlarni va tendentsiyalarni taqdim etuvchi professional onlayn platforma. Biz o'quvchilarimizga sifatli va qiziqarli kontent taqdim etamiz.",
},
{
question: 'Kontent qanday chastotada yangilanadi?',
answer:
"Biz haftada bir necha marta yangi maqolalar, retseptlar va gastronomiya sohasidagi yangiliklarni nashr qilamiz. Eng so'nggi yangilanishlardan xabardor bo'lish uchun bizning ijtimoiy tarmoqlarimizga obuna bo'ling.",
},
{
question: 'Sizning kontentingiz bepulmi?',
answer:
"Ha, bizning barcha asosiy kontentimiz mutlaqo bepul. Ba'zi maxsus kontent va premium retseptlar premium obuna talab qilishi mumkin, lekin asosiy maqolalar va yangiliklarni hamma o'qiy oladi.",
},
{
question: "Qanday qilib mualliflaringiz bilan bog'lanish mumkin?",
answer:
"Har bir maqola ostida muallif haqida ma'lumot va bog'lanish uchun email manzili ko'rsatilgan. Shuningdek, siz umumiy savollar uchun info@gastromarket.uz manziliga yozishingiz mumkin.",
},
],
const t = useTranslations();
const { data } = useQuery({
queryKey: ['faq_list'],
queryFn: () => faq_api.list(),
select(data) {
return data.data;
},
{
category: 'Hamkorlik',
questions: [
{
question: 'Qanday qilib hamkorlik qilish mumkin?',
answer:
"Hamkorlik uchun bizning About sahifamizdagi formani to'ldiring yoki to'g'ridan-to'g'ri partnership@gastromarket.uz manziliga yozing. Biz sizning taklifingizni ko'rib chiqamiz va tez orada javob beramiz.",
},
{
question: 'Qanday turdagi hamkorlikni qabul qilasiz?',
answer:
"Biz turli xil hamkorlik variantlarini ko'rib chiqamiz: reklama joylashtirish, sponsored content, mahsulot sharhlari, tadbirlar hamkorligi va boshqa formatlar. Har bir taklifni individual ko'rib chiqamiz.",
},
{
question: "Hamkorlik so'roviga javob olish uchun qancha vaqt kerak?",
answer:
"Odatda biz 3-5 ish kuni ichida barcha hamkorlik so'rovlariga javob beramiz. Agar sizning taklifingiz tezkor javob talab qilsa, iltimos so'rovnomada buni ko'rsating.",
},
{
question: 'Hamkorlik uchun minimal talablar bormi?',
answer:
"Biz har qanday o'lchamdagi kompaniyalar bilan hamkorlik qilishga tayyormiz. Asosiy talabimiz - bu gastronomiya sohasiga aloqadorlik va sifatli mahsulot/xizmat taklifi.",
},
],
},
{
category: 'Kontent va Maqolalar',
questions: [
{
question: "O'z retseptimni qanday qilib taklif qilishim mumkin?",
answer:
"Agar sizda qiziqarli retsept yoki maqola g'oyasi bo'lsa, content@gastromarket.uz manziliga yozing. Biz sizning taklifingizni ko'rib chiqamiz va agar u bizning standartlarimizga mos kelsa, nashr qilish imkoniyatini muhokama qilamiz.",
},
{
question: 'Maqolalarni qayta nashr qilish mumkinmi?',
answer:
'Bizning maqolalarimizni qayta nashr qilish uchun oldindan ruxsat olishingiz kerak. Iltimos, permissions@gastromarket.uz manziliga murojaat qiling va qaysi maqolani qanday maqsadda ishlatmoqchi ekanligingizni yozing.',
},
{
question:
"Maqolalardagi ma'lumotlar ishonchli bo'lishi qanday kafolatlanadi?",
answer:
"Barcha maqolalarimiz professional oshpazlar va gastronomiya ekspertlari tomonidan tayyorlanadi va ko'rib chiqiladi. Biz faqat tekshirilgan manba va ma'lumotlardan foydalanamiz.",
},
{
question: "Maxsus mavzu bo'yicha maqola yozishni so'rash mumkinmi?",
answer:
"Ha, albatta! Agar sizni qiziqtirgan maxsus mavzu bo'lsa, request@gastromarket.uz manziliga yozing. Biz sizning taklifingizni ko'rib chiqamiz va mumkin bo'lsa, kelajakdagi nashrlarga kiritamiz.",
},
],
},
{
category: 'Texnik Savollar',
questions: [
{
question:
'Saytdan foydalanishda muammo yuzaga kelsa nima qilish kerak?',
answer:
"Agar texnik muammo yuzaga kelsa, iltimos support@gastromarket.uz manziliga yozing va muammoni batafsil tasvirlab bering. Qaysi brauzer va qurilmadan foydalanayotganingizni ham ko'rsating.",
},
{
question: 'Mobil ilova bormi?',
answer:
"Hozircha bizda maxsus mobil ilova yo'q, lekin saytimiz barcha qurilmalarda yaxshi ishlaydi. Mobil ilovani kelajakda ishlab chiqishni rejalashtirmoqdamiz.",
},
{
question: "Newsletter ga qanday obuna bo'lish mumkin?",
answer:
"Sayt pastki qismida newsletter obuna formasi mavjud. Email manzilingizni kiriting va bizning haftalik yangiliklardan xabardor bo'ling.",
},
{
question: "Hisobimni qanday o'chirish mumkin?",
answer:
"Agar hisobingizni o'chirmoqchi bo'lsangiz, support@gastromarket.uz manziliga yozing. Biz sizning so'rovingizni 7 ish kuni ichida bajaramiz va barcha ma'lumotlaringiz o'chiriladi.",
},
],
},
];
});
return (
<main className="custom-container">
<section className="relative py-5 from-accent/5 to-background">
<div className="container mx-auto max-w-4xl text-center">
<h1 className="text-2xl md:text-5xl font-bold mb-4 text-balance">
{"Tez-tez So'raladigan Savollar"}
{t("Tez-tez So'raladigan Savollar")}
</h1>
<p className="text-lg text-muted-foreground max-w-2xl mx-auto">
{"Gastro Market haqida eng ko'p so'raladigan savollarga javoblar"}
{t(
"Gastro Market haqida eng ko'p so'raladigan savollarga javoblar",
)}
</p>
</div>
</section>
<section className="py-5">
<>
<div className="space-y-8">
{faqCategories.map((category, idx) => (
<div key={idx}>
<h2 className="text-xl font-bold mb-4 text-balance">
{category.category}
</h2>
<Card>
<CardContent>
<Accordion type="single" collapsible className="w-full">
{category.questions.map((faq, qIdx) => (
<div className="space-y-2">
{data &&
data.map((category, idx) => (
<div key={idx}>
<Card className="p-0">
<CardContent>
<Accordion type="single" collapsible className="w-full">
<AccordionItem
key={qIdx}
value={`item-${idx}-${qIdx}`}
value={`item-${idx}`}
className="border-b last:border-b-0"
>
<AccordionTrigger className="text-left hover:no-underline py-4">
<span className="font-semibold text-lg">
{faq.question}
{category.question}
</span>
</AccordionTrigger>
<AccordionContent className="text-muted-foreground leading-relaxed pb-4">
{faq.answer}
{category.answer}
</AccordionContent>
</AccordionItem>
))}
</Accordion>
</CardContent>
</Card>
</div>
))}
</Accordion>
</CardContent>
</Card>
</div>
))}
</div>
</>
</section>