Skip to content

Commit

Permalink
Logs Removed
Browse files Browse the repository at this point in the history
  • Loading branch information
rakib committed Oct 4, 2024
1 parent 2f151e7 commit b186abb
Show file tree
Hide file tree
Showing 6 changed files with 112 additions and 93 deletions.
9 changes: 9 additions & 0 deletions server.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
// ES Lint Ignore Minor Syntax Warnings
// ------------------------------------
/* eslint-disable semi */
/* eslint-disable prefer-const */
/* eslint-disable no-extra-semi */
/* eslint-disable @typescript-eslint/no-unused-vars */
/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable @typescript-eslint/no-inferrable-types */

const express = require("express");
const app = express();
const path = require("path");
Expand Down
159 changes: 82 additions & 77 deletions src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,62 +1,65 @@
import './styles/App.css';

import * as React from 'react';
import { useEffect, useState } from "react";
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
import Auth from './components/Auth/auth';
import Home from './components/Home/home';
import TVShows from './components/TVShows/tvshows';
import { useEffect, useState } from "react";
import Movies from './components/Movies/movies';
import Latest from './components/Latest/latest';
import './styles/App.css';
import TVShows from './components/TVShows/tvshows';
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";

// Global Variables
declare global {
namespace JSX {
interface IntrinsicElements {
'footer': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>,
'footer': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>,
}
}
namespace TSX {
interface IntrinsicElements {
'footer': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>,
'footer': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>,
}
}
}
interface State {
user?: any,
setUser?: any,
email?:any,
setEmail?:any,
email?: any,
setEmail?: any,
updateUser?: any,
movie?:any,
movie?: any,
movies?: any,
setMovie?: any,
setMovies?: any,
index?: any
title?: string,
open?:any,
setOpen?:any,
open?: any,
setOpen?: any,
movieURL?: any,
movieURLS?:any,
movieURLS?: any,
fetchMovie?: any,
bannerMovie?: any,
randomMovieURL?: any,
[key: string]: any
}
}

// Options
export const logs = false;

// Global DOM Elements
export const plus = document.querySelector(`#plus`);
export const minus = document.querySelector(`#minus`);
export const banner = document.querySelector(`#banner`);
export const signUpForm = document.querySelector(`#signUpForm`);
export const signInForm = document.querySelector(`#signInForm`);
export const pageName = window.location.pathname.replace(`/`,``);
export const listItems:any = document.querySelector(`#listItems`);
export const listItems: any = document.querySelector(`#listItems`);
export const emailForm = document.querySelector(`#emailAddressForm`);
export const sliderNext = document.querySelector(`.react-Slidy-next`);

// API Elements
export const APIKey = process.env.REACT_APP_API_KEY || process.env.API_KEY;
console.log(`API Key`, APIKey);
export const baseImageURL = `https://image.tmdb.org/t/p/original`;
export const baseTMDBURL = `https://api.themoviedb.org/3`;
export const movieURLS = {
Expand All @@ -78,18 +81,18 @@ export const randomMovieURL = movieURLArray[Math.floor(Math.random() * lastMovie

// Helper Functions
// Cut Off Long Strings of Text
export const truncate = (string:string,end:number) => {
export const truncate = (string: string, end: number) => {
return string?.length > end ? string?.substring(0, end - 1) + `-` : string;
}

// Capitalize First Letter of Word
export const capitalizeWord = (word?:any) => {
export const capitalizeWord = (word?: any) => {
let capitalizedWord = word?.charAt(0)?.toUpperCase() + word?.slice(1);
return capitalizedWord || word;
}

// Youtube Player Options
export const opts:any = {
export const opts: any = {
width: "100%",
host: "https://www.youtube.com",
height: "400",
Expand All @@ -99,129 +102,131 @@ export const opts:any = {
}

// Remove Duplicate Objects from Array
export const removeDuplicateObjFromArray = (array?:any) => {
const uniqueArray = array?.filter((value?:any, index?:any) => {
const _value = JSON.stringify(value);
return index === array?.findIndex((obj?:any) => {
return JSON.stringify(obj) === _value;
});
export const removeDuplicateObjFromArray = (array?: any) => {
const uniqueArray = array?.filter((value?: any, index?: any) => {
const _value = JSON.stringify(value);
return index === array?.findIndex((obj?: any) => {
return JSON.stringify(obj) === _value;
});
});
return uniqueArray;
}

// State
export const getCurrentUser:any = localStorage.getItem(`User`);
export const currentUser:any = JSON.parse(getCurrentUser);
export const getCurrentUser: any = localStorage.getItem(`User`);
export const currentUser: any = JSON.parse(getCurrentUser);

// Add Movie
export const addMovie = async (movie?:any, user?:any, setUser?:any) => {
export const addMovie = async (movie?: any, user?: any, setUser?: any) => {
const movieName = movie?.name || movie?.title || movie?.original_name;
console.log(`Add Movie`, movieName);
logs && console.log(`Add Movie`, movieName);
const emailAddress = user?.email;
const username = user?.username;
const password = user?.password;
user?.list?.push(movie);
const list = user?.list;
const reversedList = list?.reverse();
setUser({
username,
password,
email: emailAddress,
list: removeDuplicateObjFromArray(reversedList)
username,
password,
email: emailAddress,
list: removeDuplicateObjFromArray(reversedList),
})
}

// Delete Movie
export const deleteMovie = async (movie?:any, user?:any, setUser?:any) => {
export const deleteMovie = async (movie?: any, user?: any, setUser?: any) => {
const movieName = movie?.name || movie?.title || movie?.original_name;
console.log(`Delete Movie`, movieName);
logs && console.log(`Delete Movie`, movieName);
const emailAddress = user?.email;
const username = user?.username;
const movieID = movie?.id;
const filteredArray = user?.list?.filter((item?:any,index?:any) => item.id !== movieID);
const filteredArray = user?.list?.filter((item?: any, index?: any) => item.id !== movieID);
setUser({
username,
email: emailAddress,
password: user?.password,
list: removeDuplicateObjFromArray(filteredArray)
list: removeDuplicateObjFromArray(filteredArray),
})
}

// Update Movies
export const update = async (user?:any, setUser?:any, movie?:any, includes?:any) => {
const getUser:any = localStorage.getItem(`User`);
export const update = async (user?: any, setUser?: any, movie?: any, includes?: any) => {
const getUser: any = localStorage.getItem(`User`);
user = JSON.parse(getUser) || user;
if (includes) {
deleteMovie(movie, user, setUser);
deleteMovie(movie, user, setUser);
} else {
addMovie(movie, user, setUser);
}
localStorage.setItem(`Last User`, JSON.stringify(user));
}

// App Begin
const App:React.FC = () => {
const App: React.FC = () => {

const getUser:any = localStorage.getItem(`User`) || localStorage.getItem(`Last User`);
const getUser: any = localStorage.getItem(`User`) || localStorage.getItem(`Last User`);
const [user, setUser] = useState<any>(JSON.parse(getUser));
const [movie, setMovie] = useState<any>(null);
const [email, setEmail] = useState<any>(null);

useEffect(() => {

const getLastUser:any = localStorage.getItem(`Last User`);
const getLastUser: any = localStorage.getItem(`Last User`);
const lastUser = JSON.parse(getLastUser);
const body = document.body;

// const x = (array?:any) => Math.floor(Math.random() * array.length);
// const randomBanner:any = bannerMovies[x(bannerMovies)];

if (user?.list?.length === 0) {
body?.classList.remove(`items`);
body?.classList.add(`empty`);
} else {
body?.classList.remove(`empty`);
body?.classList.add(`items`);
}
console.log(`List`, user?.list);
console.log(`User`, user);
console.log(`Last User`, lastUser);

logs && console.log(`User`, user);
logs && console.log(`List`, user?.list);
logs && console.log(`Last User`, lastUser);

}, [user])

return (
<div className={`App`}>
<Router>
{!user ? (
<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />
) : (
<Routes>
<Route path={`/`} element={<Home user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={ `/auth`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={`/shows`} element={<TVShows user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={ `/signin`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={`/tvshows`} element={<TVShows user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={`/tv-shows`} element={<TVShows user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={ `/sign-in`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={`/movies`} element={<Movies user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={ `/login`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={ `/log-in`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={ `/signup`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={ `/sign-up`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={ `/register`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={ `/registration`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={ `/authorization`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={`/hot`} element={<Latest user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={`/new`} element={<Latest user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={`/latest`} element={<Latest user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={`/popular`} element={<Latest user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={`/trending`} element={<Latest user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={`/newpopular`} element={<Latest user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={`/new-popular`} element={<Latest user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
</Routes>
)}
</Router>
</div>
<Router>
{!user ? (
<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />
) : (
<Routes>
<Route path={`/`} element={<Home user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={ `/auth`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={`/shows`} element={<TVShows user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={ `/signin`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={`/tvshows`} element={<TVShows user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={`/tv-shows`} element={<TVShows user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={ `/sign-in`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={`/movies`} element={<Movies user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={ `/login`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={ `/log-in`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={ `/signup`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={ `/sign-up`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={ `/register`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={ `/registration`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={ `/authorization`} element={<Auth user={user} setUser={setUser} email={email} setEmail={setEmail} />} />
<Route path={`/hot`} element={<Latest user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={`/new`} element={<Latest user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={`/latest`} element={<Latest user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={`/popular`} element={<Latest user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={`/trending`} element={<Latest user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={`/newpopular`} element={<Latest user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
<Route path={`/new-popular`} element={<Latest user={user} setUser={setUser} movie={movie} setMovie={setMovie} />} />
</Routes>
)}
</Router>
</div>
);
}


export default App
6 changes: 3 additions & 3 deletions src/components/Auth/auth.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import './styles/auth.css';
import 'react-slidy/lib/styles.css';

import * as React from 'react';
import ReactSlidy from 'react-slidy';
import 'react-slidy/lib/styles.css'
import Header from '../Header/header';
import Footer from '../Footer/footer';
import GetStarted from './getstarted';
import Registration from './registration';
import './styles/auth.css';

const Auth:React.FC<State> = ({user, setUser, email, setEmail}) => {

return (
<div className='authCont'>
<Header user={user} setUser={setUser} />
Expand Down
9 changes: 5 additions & 4 deletions src/components/Banner/banner.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import "./styles/banner.css";

import * as React from 'react';
import Moment from 'react-moment';
import YouTube from 'react-youtube';
import{ useEffect, useState } from "react";
import { APIKey, baseTMDBURL, capitalizeWord, truncate, update, opts } from '../../App';
import { Button, Modal } from '@mui/material';
import "./styles/banner.css";
import Moment from 'react-moment';
import Dashboard from '../Dashboard/dashboard';
import { LazyLoadImage } from 'react-lazy-load-image-component';
import YouTube from 'react-youtube';
import { APIKey, baseTMDBURL, capitalizeWord, truncate, update, opts } from '../../App';

// Good Looking Banner Movies
export const bannerMovies = [
Expand Down
8 changes: 5 additions & 3 deletions src/components/Header/header.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import './styles/header.css';

import * as React from 'react';
import MobileMenu from './mobileMenu';
import { Button } from '@mui/material';
import { Link } from 'react-router-dom';
import {useState, useEffect} from "react";
import Dashboard from '../Dashboard/dashboard';
import { capitalizeWord, listItems } from '../../App';
import { LazyLoadImage } from 'react-lazy-load-image-component';
import Dashboard from '../Dashboard/dashboard';
import './styles/header.css';
import MobileMenu from './mobileMenu';

const Header: React.FC<State> = ({user, setUser}) => {

Expand All @@ -23,6 +24,7 @@ const Header: React.FC<State> = ({user, setUser}) => {
useEffect(() => {

localStorage.setItem(`User`, JSON.stringify(user));

window.addEventListener(`scroll`, event => {
transitionHeader();
return () => window.removeEventListener(`scroll`, event => {
Expand Down
Loading

0 comments on commit b186abb

Please sign in to comment.