├── app ├── favicon.ico ├── (root) │ ├── (home) │ │ └── page.tsx │ ├── tv │ │ └── page.tsx │ ├── movies │ │ └── page.tsx │ ├── browse │ │ └── page.tsx │ ├── search │ │ └── [query] │ │ │ └── page.tsx │ └── mylist │ │ └── page.tsx ├── api │ ├── auth │ │ └── [...nextauth] │ │ │ └── route.ts │ ├── account │ │ ├── login │ │ │ └── route.ts │ │ └── route.ts │ └── favourite │ │ └── route.ts ├── layout.tsx └── globals.css ├── postcss.config.js ├── .idea ├── .gitignore ├── vcs.xml ├── modules.xml ├── netflix.iml └── inspectionProfiles │ └── Project_Default.xml ├── components ├── shared │ ├── loader.tsx │ ├── custom-image.tsx │ ├── common.tsx │ ├── movie │ │ ├── movie-row.tsx │ │ ├── movie-item.tsx │ │ └── movie-popup.tsx │ ├── login.tsx │ ├── navbar │ │ ├── search-bar.tsx │ │ └── index.tsx │ ├── banner.tsx │ └── manage-account.tsx ├── ui │ ├── skeleton.tsx │ ├── label.tsx │ ├── input.tsx │ ├── toaster.tsx │ ├── popover.tsx │ ├── button.tsx │ ├── dialog.tsx │ ├── use-toast.ts │ ├── form.tsx │ └── toast.tsx └── form │ ├── login-account-form.tsx │ └── create-account-form.tsx ├── lib ├── utils.ts ├── validation.ts ├── mongoose.ts └── api.ts ├── next.config.js ├── database ├── account.ts └── favourite.ts ├── components.json ├── constants └── index.ts ├── provider └── index.tsx ├── .env ├── .gitignore ├── public ├── vercel.svg └── next.svg ├── tsconfig.json ├── context └── index.tsx ├── README.md ├── package.json ├── tailwind.config.ts └── types └── index.d.ts /app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samarbadriddin0v/netflix-web/HEAD/app/favicon.ico -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Editor-based HTTP Client requests 5 | /httpRequests/ 6 | -------------------------------------------------------------------------------- /components/shared/loader.tsx: -------------------------------------------------------------------------------- 1 | export default function Loader(){ 2 | return
; 3 | } 4 | -------------------------------------------------------------------------------- /app/(root)/(home)/page.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import {redirect} from "next/navigation"; 3 | 4 | const Page = () => { 5 | return redirect('/browse') 6 | }; 7 | 8 | export default Page; -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 |Indulge in our Netflix clone: ultra-fast streaming tailored recommendations and sleek design. Dive into movies and shows effortlessly—your gateway to entertainment perfection!
6 | 7 |1. Install all dependencies
24 | 25 | ``` 26 | npm install | yarn install 27 | ``` 28 | 29 |2. Run application
30 | 31 | ``` 32 | npm run dev | yarn dev 33 | ``` 34 | 35 |3. Write your own environment values
36 | 37 | ``` 38 | .env 39 | ``` 40 | 41 | 42 | 43 |46 | {randomMovie?.overview} 47 |
48 |Sorry about that! Please visit our hompage to get where you need to go.
61 | 70 |
75 | 161 | {body} 162 |
163 | ) 164 | }) 165 | FormMessage.displayName = "FormMessage" 166 | 167 | export { 168 | useFormField, 169 | Form, 170 | FormItem, 171 | FormLabel, 172 | FormControl, 173 | FormDescription, 174 | FormMessage, 175 | FormField, 176 | } 177 | -------------------------------------------------------------------------------- /components/form/create-account-form.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import React, {Dispatch, SetStateAction} from 'react'; 4 | import {useForm} from "react-hook-form"; 5 | import * as z from "zod" 6 | import {createAccountSchema} from "@/lib/validation"; 7 | import {zodResolver} from "@hookform/resolvers/zod"; 8 | import {Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage} from "@/components/ui/form"; 9 | import {Input} from "@/components/ui/input"; 10 | import {Button} from "@/components/ui/button"; 11 | import PinInput from "react-pin-input" 12 | import axios from "axios"; 13 | import {AccountProps, AccountResponse} from "@/types"; 14 | import {toast} from "@/components/ui/use-toast"; 15 | 16 | interface Props{ 17 | uid: string 18 | setOpen: Dispatch
120 | {account && account.name}
121 |
145 | {account.name}
146 |