diff --git a/DocDocs/Frontend/package-lock.json b/DocDocs/Frontend/package-lock.json index 6bcb5a4..afd752a 100644 --- a/DocDocs/Frontend/package-lock.json +++ b/DocDocs/Frontend/package-lock.json @@ -12,6 +12,7 @@ "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "@zoomus/websdk": "^2.18.3", "axios": "^1.7.7", "googleapis": "^144.0.0", "react": "^18.3.1", @@ -4394,6 +4395,16 @@ "@types/node": "*" } }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", + "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", + "license": "MIT", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, "node_modules/@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", @@ -4787,6 +4798,18 @@ "@types/react": "*" } }, + "node_modules/@types/react-redux": { + "version": "7.1.34", + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.34.tgz", + "integrity": "sha512-GdFaVjEbYv4Fthm2ZLvj1VSCedV7TqE5y1kNwnjSdBOTXuRSgowux6J8TAct15T3CKBr63UMk+2CO7ilRhyrAQ==", + "license": "MIT", + "dependencies": { + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" + } + }, "node_modules/@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", @@ -5294,6 +5317,67 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "license": "Apache-2.0" }, + "node_modules/@zoomus/websdk": { + "version": "2.18.3", + "resolved": "https://registry.npmjs.org/@zoomus/websdk/-/websdk-2.18.3.tgz", + "integrity": "sha512-7j/A82AIkc0Xgj6jsnl3x65NMMOylBI8pnjrjF10ytk4HVhRBLj1lQ8x4PQofwl2Ilh0aWVbDLTPfmOHW8fCxw==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "lodash": "^4.17.21", + "react": "16.14.0", + "react-dom": "16.14.0", + "react-redux": "7.2.9", + "redux": "4.2.1", + "redux-thunk": "2.4.2" + }, + "peerDependencies": { + "lodash": "^4.17.21", + "react": "16.14.0", + "react-dom": "16.14.0", + "react-redux": "7.2.9", + "redux": "4.2.1", + "redux-thunk": "2.4.2" + } + }, + "node_modules/@zoomus/websdk/node_modules/react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@zoomus/websdk/node_modules/react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + }, + "peerDependencies": { + "react": "^16.14.0" + } + }, + "node_modules/@zoomus/websdk/node_modules/scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -10147,6 +10231,21 @@ "he": "bin/he" } }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, "node_modules/hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -16636,6 +16735,31 @@ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "license": "MIT" }, + "node_modules/react-redux": { + "version": "7.2.9", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", + "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.15.4", + "@types/react-redux": "^7.1.20", + "hoist-non-react-statics": "^3.3.2", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-is": "^17.0.2" + }, + "peerDependencies": { + "react": "^16.8.3 || ^17 || ^18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, "node_modules/react-refresh": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", @@ -16810,6 +16934,24 @@ "node": ">=8" } }, + "node_modules/redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.9.2" + } + }, + "node_modules/redux-thunk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", + "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "license": "MIT", + "peerDependencies": { + "redux": "^4" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", diff --git a/DocDocs/Frontend/package.json b/DocDocs/Frontend/package.json index 9baead9..8b5cfd0 100644 --- a/DocDocs/Frontend/package.json +++ b/DocDocs/Frontend/package.json @@ -9,6 +9,7 @@ "@testing-library/user-event": "^13.5.0", "axios": "^1.7.7", "googleapis": "^144.0.0", + "@zoomus/websdk": "^2.18.3", "react": "^18.3.1", "react-calendar": "^5.0.0", "react-dom": "^18.3.1", diff --git a/DocDocs/Frontend/src/App.js b/DocDocs/Frontend/src/App.js index f12dcf7..30ab188 100644 --- a/DocDocs/Frontend/src/App.js +++ b/DocDocs/Frontend/src/App.js @@ -2,26 +2,34 @@ import React, { useState } from 'react'; import './App.css'; import Login from './components/Login/Login.js'; -import NavBar from './components/Home/NavBar/NavBar.js'; +import NavBar from './components/Home/NavBar/NavBar.js'; import HomePage from './components/Home/HomePage/HomePage.js'; import MeetingPage from './components/Meeting/MeetingPage.js'; import Notes from './components/Home/Notes/Notes.js'; import ViewNote from './components/Home/ViewNote/ViewNote.js'; // Import ViewNote import EditNotes from './components/Home/EditNotes/EditNotes.js'; // Import EditNotes -import { BrowserRouter as Router, Route, Routes } from 'react-router-dom'; +import { BrowserRouter, Route, Routes } from 'react-router-dom'; +import Meeting from './ZoomSDK/Meetings.js'; + function App() { const [isLoggedIn, setIsLoggedIn] = useState(false); const [meetingInProgress, setMeetingInProgress] = useState(false); - const [isAdmin, setIsAdmin] = useState(false); // Default to false + const [isAdmin, setIsAdmin] = useState(false); // Ensure this is defined const patient = { name: 'John Doe', - pfp: 'https://via.placeholder.com/150', // Replace with actual photo URL + pfp: 'https://via.placeholder.com/150', }; const meetings = 2; + + const handleIsAdmin = () => { + setIsAdmin(!isAdmin); + }; + + const handleLogin = () => { setIsLoggedIn(true); }; @@ -34,39 +42,75 @@ function App() { setMeetingInProgress(true); }; + // Using environment variables for the payload + const payload = { + meetingNumber: process.env.REACT_APP_MEETING_NUMBER, + role: Number(process.env.REACT_APP_ROLE), + sdkKey: process.env.REACT_APP_SDK_KEY, + sdkSecret: process.env.REACT_APP_SDK_SECRET, + passWord: process.env.REACT_APP_PASSWORD, + userName: process.env.REACT_APP_USER_NAME, + userEmail: process.env.REACT_APP_USER_EMAIL, + leaveUrl: process.env.REACT_APP_LEAVE_URL + }; + +/* + return ( +
{data}
- > - ); - } - - // Export an `ErrorBoundary` directly instead of needing to create a React Element from it - export function ErrorBoundary() { - let error = useRouteError(); - return isRouteErrorResponse(error) ? ( -