diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 3bde102..8882549 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -1,20 +1,16 @@ -# Use the latest LTS version of Node.js FROM node:18-alpine - -# Set the working directory inside the container + WORKDIR /frontend - -# Copy package.json and package-lock.json + +ENV VITE_API_URL=${VITE_API_URL} +ENV VITE_STRIPE_PUBLISHABLE_KEY=${VITE_STRIPE_PUBLISHABLE_KEY} + COPY package*.json ./ - -# Install dependencies + RUN npm install - -# Copy the rest of your application files + COPY . . -# Expose the port your app runs on EXPOSE 5173 - -# Define the command to run your app + CMD ["npm", "run", "dev", "--", "--host"] \ No newline at end of file diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 8151d5a..03c1668 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -24,6 +24,7 @@ "eslint-plugin-react-hooks": "^5.0.0", "eslint-plugin-react-refresh": "^0.4.16", "globals": "^15.14.0", + "lucide-react": "^0.473.0", "postcss": "^8.5.1", "tailwindcss": "^3.4.17", "typescript": "~5.6.2", @@ -3008,6 +3009,16 @@ "yallist": "^3.0.2" } }, + "node_modules/lucide-react": { + "version": "0.473.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.473.0.tgz", + "integrity": "sha512-KW6u5AKeIjkvrxXZ6WuCu9zHE/gEYSXCay+Gre2ZoInD0Je/e3RBtP4OHpJVJ40nDklSvjVKjgH7VU8/e2dzRw==", + "dev": true, + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", diff --git a/frontend/package.json b/frontend/package.json index 6adbaa9..41b8b2e 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -27,11 +27,11 @@ "eslint-plugin-react-hooks": "^5.0.0", "eslint-plugin-react-refresh": "^0.4.16", "globals": "^15.14.0", + "lucide-react": "^0.473.0", "postcss": "^8.5.1", "tailwindcss": "^3.4.17", "typescript": "~5.6.2", "typescript-eslint": "^8.18.2", - "vite": "^6.0.5", - "lucide-react": "0.473.0" + "vite": "^6.0.5" } } diff --git a/frontend/src/components/Checkout/CheckoutForm.tsx b/frontend/src/components/Checkout/CheckoutForm.tsx index 2add983..2140c4a 100644 --- a/frontend/src/components/Checkout/CheckoutForm.tsx +++ b/frontend/src/components/Checkout/CheckoutForm.tsx @@ -76,11 +76,10 @@ const CheckoutForm: React.FC = ({ onClose }) => { > ✕ -
+
diff --git a/frontend/src/components/Layout/Button.tsx b/frontend/src/components/Layout/Button.tsx index af362f1..51cb01e 100644 --- a/frontend/src/components/Layout/Button.tsx +++ b/frontend/src/components/Layout/Button.tsx @@ -11,7 +11,7 @@ const Button: React.FC = ({ }) => { return (
-
diff --git a/frontend/src/pages/HomePage.tsx b/frontend/src/pages/HomePage.tsx index 6b7001f..c5a374e 100644 --- a/frontend/src/pages/HomePage.tsx +++ b/frontend/src/pages/HomePage.tsx @@ -3,7 +3,6 @@ import Navbar from "../components/Layout/Navbar"; import ListRow from "../components/Layout/ListRow"; // import { data, Link } from "react-router-dom"; - const handleStreamClick = (streamId: string) => { // Handle navigation to stream page console.log(`Navigating to stream ${streamId}`); diff --git a/frontend/src/pages/VideoPage.tsx b/frontend/src/pages/VideoPage.tsx index c959c91..c6b5cc4 100644 --- a/frontend/src/pages/VideoPage.tsx +++ b/frontend/src/pages/VideoPage.tsx @@ -1,36 +1,38 @@ -import React, { useState, useEffect } from 'react'; -import Button from '../components/Layout/Button'; -import CheckoutForm, { Return } from '../components/Checkout/CheckoutForm'; +import React, { useState, useEffect } from "react"; +import Button from "../components/Layout/Button"; +import CheckoutForm, { Return } from "../components/Checkout/CheckoutForm"; const VideoPage: React.FC = () => { - const [showCheckout, setShowCheckout] = useState(false); - const showReturn = window.location.search.includes('session_id'); - - useEffect(() => { - if (showCheckout) { - document.body.style.overflow = "hidden"; - } else { - document.body.style.overflow = "unset"; - } - // Cleanup function to ensure overflow is restored when component unmounts - return () => { - document.body.style.overflow = "unset"; - }; - }, [showCheckout]); - - return ( -
-

Hello!

+ const [showCheckout, setShowCheckout] = useState(false); + const showReturn = window.location.search.includes("session_id"); -
- ); +
+ ); }; -export default VideoPage; \ No newline at end of file +export default VideoPage; diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index ab36821..15db853 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -6,5 +6,11 @@ export default defineConfig({ plugins: [react()], server: { allowedHosts: ['frontend'], + proxy: { + '/api': { + target: 'http://localhost:8080', + changeOrigin: true, + } + } }, }) diff --git a/web_server/Dockerfile b/web_server/Dockerfile index 364abc2..e4d1d2d 100644 --- a/web_server/Dockerfile +++ b/web_server/Dockerfile @@ -1,26 +1,19 @@ FROM python:3.10 -# Set the working directory WORKDIR /web_server -# Args that can be passed during build ARG FLASK_SECRET_KEY ARG STRIPE_SECRET_KEY -# Set as environment variables ENV FLASK_SECRET_KEY=${FLASK_SECRET_KEY} ENV STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY} -# Install dependencies COPY requirements.txt requirements.txt RUN pip install --no-cache-dir -r requirements.txt -# Copy application code COPY . . -# Set environment variables ENV FLASK_APP=blueprints.__init__ ENV FLASK_DEBUG=True -# Start the Flask app CMD ["gunicorn", "-b", "0.0.0.0:5000", "blueprints.__init__:create_app()"]