├── .eslintrc.json ├── src ├── app │ ├── profile │ │ └── page.tsx │ ├── service │ │ ├── component │ │ │ └── freeAndStandart.tsx │ │ └── page.tsx │ ├── tariffs │ │ └── page.tsx │ ├── security │ │ └── page.tsx │ ├── layout.tsx │ ├── bookersBusiness │ │ └── page.tsx │ ├── partnership │ │ └── page.tsx │ ├── globals.css │ ├── about │ │ └── page.tsx │ ├── vacancies │ │ └── page.tsx │ ├── conditions │ │ └── page.tsx │ ├── master-detail │ │ └── page.tsx │ └── booking │ │ └── page.tsx ├── assets │ ├── images │ │ ├── png │ │ │ ├── click.png │ │ │ ├── cloud.png │ │ │ ├── cloud1.png │ │ │ ├── image.png │ │ │ ├── line.png │ │ │ ├── oson.png │ │ │ ├── payme.png │ │ │ ├── sello.png │ │ │ ├── Notfound.png │ │ │ ├── image 17.png │ │ │ ├── uzumbank.png │ │ │ ├── PartnerIcon.png │ │ │ ├── User image.png │ │ │ ├── aboutSlide.png │ │ │ ├── firstHero.png │ │ │ ├── MastersFilter.png │ │ │ ├── vacanciesHero.png │ │ │ └── Rectangle 4193.png │ │ └── svg │ │ │ ├── flag-england-svgrepo-com.svg │ │ │ ├── Done_ring_round.svg │ │ │ ├── flag-ru-svgrepo-com.svg │ │ │ ├── logo.svg │ │ │ ├── Logotip.svg │ │ │ ├── FileDownloadSVG.svg │ │ │ ├── UZB.svg │ │ │ ├── sello.svg │ │ │ └── Union.svg │ └── ImagesConst.tsx ├── Components │ ├── text │ │ ├── subtitle.tsx │ │ └── HeaderBookers.tsx │ ├── Line │ │ └── page.tsx │ ├── DefText │ │ └── DefText.tsx │ ├── HomeNews │ │ └── page.tsx │ ├── SimpleCard │ │ └── Card.tsx │ ├── Textarea │ │ └── page.tsx │ ├── Inputs │ │ ├── TextInput │ │ │ └── page.tsx │ │ ├── PhoneInput │ │ │ └── page.tsx │ │ ├── FileInput │ │ │ └── page.tsx │ │ └── SelectInput │ │ │ └── page.tsx │ ├── checkbox │ │ └── page.tsx │ ├── cards │ │ ├── ServiceCard.tsx │ │ ├── BookingCard.tsx │ │ └── BookersBussines.tsx │ ├── Categorys │ │ ├── BeautyServiciesBookers.tsx │ │ └── Category.tsx │ ├── SearchBar │ │ └── SearchBar.tsx │ ├── Buttons │ │ └── page.tsx │ ├── HomeOffers │ │ ├── HomeOffers.tsx │ │ └── HomeofferAllBookers.tsx │ ├── Modals │ │ ├── FeedbackModal │ │ │ └── page.tsx │ │ ├── Modal │ │ │ └── page.tsx │ │ ├── OTP Modal │ │ │ └── page.tsx │ │ └── OrderModal │ │ │ └── page.tsx │ ├── Navbar │ │ └── Languageoption.tsx │ ├── DatePicker │ │ └── page.tsx │ ├── master-detail │ │ └── InfoCard.tsx │ ├── Masters │ │ └── Location.tsx │ ├── Partners │ │ └── Partners.tsx │ ├── Hero │ │ └── page.tsx │ ├── Dropdown │ │ └── DropdownMenu.tsx │ ├── Tarif │ │ └── Tarif.tsx │ ├── Statistic.tsx │ │ └── Statistic.tsx │ ├── News │ │ └── News.tsx │ ├── footer │ │ └── Footer.tsx │ ├── TimePicker │ │ └── page.tsx │ └── Register │ │ └── page.tsx ├── services │ ├── api.ts │ └── Urls.ts ├── helpers │ ├── const │ │ └── token.tsx │ ├── state_management │ │ ├── TimeState.ts │ │ ├── booking.ts │ │ ├── master-class.ts │ │ └── store.ts │ ├── logic_functions │ │ ├── master-class.tsx │ │ └── booking.tsx │ ├── otziv │ │ └── otziv.tsx │ └── logical │ │ └── api.tsx └── types │ ├── cards.ts │ ├── master-class.ts │ └── booking.ts ├── next.config.mjs ├── postcss.config.mjs ├── .gitignore ├── tsconfig.json ├── package.json ├── README.md └── tailwind.config.ts /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /src/app/profile/page.tsx: -------------------------------------------------------------------------------- 1 | export default function Profile() { 2 | return

Profile

; 3 | } -------------------------------------------------------------------------------- /next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {}; 3 | 4 | export default nextConfig; 5 | -------------------------------------------------------------------------------- /src/assets/images/png/click.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SardorbekCoder07/Bookers_web/HEAD/src/assets/images/png/click.png -------------------------------------------------------------------------------- /src/assets/images/png/cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SardorbekCoder07/Bookers_web/HEAD/src/assets/images/png/cloud.png -------------------------------------------------------------------------------- /src/assets/images/png/cloud1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SardorbekCoder07/Bookers_web/HEAD/src/assets/images/png/cloud1.png -------------------------------------------------------------------------------- /src/assets/images/png/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SardorbekCoder07/Bookers_web/HEAD/src/assets/images/png/image.png -------------------------------------------------------------------------------- /src/assets/images/png/line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SardorbekCoder07/Bookers_web/HEAD/src/assets/images/png/line.png -------------------------------------------------------------------------------- /src/assets/images/png/oson.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SardorbekCoder07/Bookers_web/HEAD/src/assets/images/png/oson.png -------------------------------------------------------------------------------- /src/assets/images/png/payme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SardorbekCoder07/Bookers_web/HEAD/src/assets/images/png/payme.png -------------------------------------------------------------------------------- /src/assets/images/png/sello.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SardorbekCoder07/Bookers_web/HEAD/src/assets/images/png/sello.png -------------------------------------------------------------------------------- /src/assets/images/png/Notfound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SardorbekCoder07/Bookers_web/HEAD/src/assets/images/png/Notfound.png -------------------------------------------------------------------------------- /src/assets/images/png/image 17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SardorbekCoder07/Bookers_web/HEAD/src/assets/images/png/image 17.png -------------------------------------------------------------------------------- /src/assets/images/png/uzumbank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SardorbekCoder07/Bookers_web/HEAD/src/assets/images/png/uzumbank.png -------------------------------------------------------------------------------- /src/assets/images/png/PartnerIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SardorbekCoder07/Bookers_web/HEAD/src/assets/images/png/PartnerIcon.png -------------------------------------------------------------------------------- /src/assets/images/png/User image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SardorbekCoder07/Bookers_web/HEAD/src/assets/images/png/User image.png -------------------------------------------------------------------------------- /src/assets/images/png/aboutSlide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SardorbekCoder07/Bookers_web/HEAD/src/assets/images/png/aboutSlide.png -------------------------------------------------------------------------------- /src/assets/images/png/firstHero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SardorbekCoder07/Bookers_web/HEAD/src/assets/images/png/firstHero.png -------------------------------------------------------------------------------- /src/assets/images/png/MastersFilter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SardorbekCoder07/Bookers_web/HEAD/src/assets/images/png/MastersFilter.png -------------------------------------------------------------------------------- /src/assets/images/png/vacanciesHero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SardorbekCoder07/Bookers_web/HEAD/src/assets/images/png/vacanciesHero.png -------------------------------------------------------------------------------- /src/assets/images/png/Rectangle 4193.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SardorbekCoder07/Bookers_web/HEAD/src/assets/images/png/Rectangle 4193.png -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | }, 6 | }; 7 | 8 | export default config; 9 | -------------------------------------------------------------------------------- /src/app/service/component/freeAndStandart.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | import React from 'react' 3 | 4 | const FreeaAndService = () => { 5 | return ( 6 |
7 | dddddd 8 |
9 | ) 10 | } 11 | 12 | export default FreeaAndService 13 | -------------------------------------------------------------------------------- /src/Components/text/subtitle.tsx: -------------------------------------------------------------------------------- 1 | const Subtitle = ({ text, size }: { text: string, size?: string }) => { 2 | return ( 3 |

4 | {text} 5 |

6 | ) 7 | } 8 | 9 | export default Subtitle; -------------------------------------------------------------------------------- /src/Components/Line/page.tsx: -------------------------------------------------------------------------------- 1 | import Images from "@/assets/ImagesConst" 2 | import Image from "next/image" 3 | 4 | export const Line = () => { 5 | return ( 6 |
7 | img 8 |
9 | ) 10 | } -------------------------------------------------------------------------------- /src/Components/DefText/DefText.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | type DefTextProps = { 4 | text: string; 5 | } 6 | 7 | export default function DefText({ text }: DefTextProps) { 8 | return ( 9 |
10 | {text} 11 |
12 | ) 13 | } 14 | -------------------------------------------------------------------------------- /src/services/api.ts: -------------------------------------------------------------------------------- 1 | import axios from "axios"; 2 | import { BASE_URL } from "./Urls"; 3 | 4 | axios.defaults.baseURL = BASE_URL; 5 | 6 | axios.interceptors.request.use((config) => { 7 | const token = localStorage.getItem("token"); 8 | config.headers.Authorization = token ? token : ""; 9 | return config; 10 | }); 11 | 12 | export default axios; 13 | -------------------------------------------------------------------------------- /src/Components/text/HeaderBookers.tsx: -------------------------------------------------------------------------------- 1 | const HeaderTitles = ({ text, size }: { text: string, size?: string }) => { 2 | return ( 3 |

4 | {text} 5 |

6 | ) 7 | } 8 | 9 | export default HeaderTitles -------------------------------------------------------------------------------- /src/helpers/const/token.tsx: -------------------------------------------------------------------------------- 1 | export const config = { 2 | headers: { 3 | Authorization: localStorage.getItem('token'), 4 | } 5 | } 6 | 7 | export const imgConfig = { 8 | headers: { 9 | 'multipart/type': 'multipart/form-data', 10 | Authorization: ` ${localStorage.getItem('token')}`, 11 | } 12 | } 13 | 14 | export const setConfig = () => config.headers.Authorization = localStorage.getItem('token') 15 | -------------------------------------------------------------------------------- /src/helpers/state_management/TimeState.ts: -------------------------------------------------------------------------------- 1 | import {create} from 'zustand'; 2 | 3 | interface TimeState { 4 | selectedHour: number | null; 5 | selectedMinute: number | null; 6 | setHour: (hour: number | null) => void; 7 | setMinute: (minute: number | null) => void; 8 | } 9 | 10 | export const useTimeStore = create((set) => ({ 11 | selectedHour: null, 12 | selectedMinute: null, 13 | setHour: (hour) => set({ selectedHour: hour }), 14 | setMinute: (minute) => set({ selectedMinute: minute }), 15 | })); 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | # local env files 29 | .env*.local 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /src/assets/images/svg/flag-england-svgrepo-com.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/app/tariffs/page.tsx: -------------------------------------------------------------------------------- 1 | import PricingTable from '@/Components/Tarif/Tarif'; 2 | import HeaderTitles from '@/Components/text/HeaderBookers'; 3 | import React from 'react'; 4 | 5 | const Tarif = () => { 6 | return ( 7 |
8 |
9 | 12 |
13 |
14 | 15 |
16 |
17 | ); 18 | } 19 | 20 | export default Tarif; 21 | -------------------------------------------------------------------------------- /src/Components/HomeNews/page.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Image from 'next/image'; 3 | import Images from '@/assets/ImagesConst'; 4 | 5 | const HomeNews: React.FC<{ title: string }> = ({ title }) => { 6 | return ( 7 |
8 |
9 |
10 | News card image 11 |
12 |
13 |

{title}

14 |
15 |
16 |
17 | ); 18 | }; 19 | 20 | export default HomeNews; 21 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["dom", "dom.iterable", "esnext"], 4 | "allowJs": true, 5 | "skipLibCheck": true, 6 | "strict": true, 7 | "noEmit": true, 8 | "esModuleInterop": true, 9 | "module": "esnext", 10 | "moduleResolution": "bundler", 11 | "resolveJsonModule": true, 12 | "isolatedModules": true, 13 | "jsx": "preserve", 14 | "incremental": true, 15 | "plugins": [ 16 | { 17 | "name": "next" 18 | } 19 | ], 20 | "paths": { 21 | "@/*": ["./src/*"] 22 | } 23 | }, 24 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "src/app/service"], 25 | "exclude": ["node_modules"] 26 | } 27 | -------------------------------------------------------------------------------- /src/assets/images/svg/Done_ring_round.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/Components/SimpleCard/Card.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Button from '../Buttons/page'; 3 | 4 | type CardProps = { 5 | title: string; 6 | description: string; 7 | buttonText: string; 8 | onButtonClick: () => void | any; 9 | }; 10 | 11 | const Card: React.FC = ({ title, description, buttonText, onButtonClick }) => { 12 | return ( 13 |
14 |

{title}

15 |

{description}

16 |
19 | ); 20 | }; 21 | 22 | export default Card; 23 | -------------------------------------------------------------------------------- /src/helpers/logic_functions/master-class.tsx: -------------------------------------------------------------------------------- 1 | import { add_master_class } from "@/services/Urls" 2 | import axios from "axios" 3 | import { config } from "../const/token" 4 | import { toast } from "sonner"; 5 | 6 | export const addMasterClass = async (payload: any, toggleModal: () => void, setSuccess: (val: boolean) => void, openFeedBackModal: () => void) => { 7 | if (config) setSuccess(true) 8 | else setSuccess(false) 9 | try { 10 | const { data } = await axios.post(add_master_class, payload); 11 | if (data.success) { 12 | toggleModal() 13 | openFeedBackModal( ) 14 | toast.success('Zo\'rrrrrrrrr') 15 | } 16 | } catch (error) { 17 | console.log(error); 18 | toast.error('Yommonn') 19 | } finally { 20 | 21 | } 22 | } -------------------------------------------------------------------------------- /src/Components/Textarea/page.tsx: -------------------------------------------------------------------------------- 1 | interface TextAreaProps { 2 | label: string; 3 | id: string; 4 | value?: string; 5 | onChange?: (e: React.ChangeEvent) => void; 6 | required?: boolean; 7 | } 8 | 9 | const TextArea: React.FC = ({ label, id, value, onChange, required = false }) => { 10 | return ( 11 |
12 | 13 |